From 880f62f5cb870ce8c2e7fd1441f8c16cec7b9a81 Mon Sep 17 00:00:00 2001 From: str4d Date: Mon, 12 Feb 2018 00:06:31 +0000 Subject: [PATCH] New translations --- i2p2www/translations/ca/LC_MESSAGES/docs.po | 16067 +++++++++++++++ i2p2www/translations/cs/LC_MESSAGES/docs.po | 16068 ++++++++++++++++ .../cs/LC_MESSAGES/get-involved.po | 4101 ++++ i2p2www/translations/id/LC_MESSAGES/blog.po | 8768 +++++++++ i2p2www/translations/nb/LC_MESSAGES/about.po | 2580 +++ .../translations/nb/LC_MESSAGES/priority.po | 2620 +++ i2p2www/translations/sq/LC_MESSAGES/docs.po | 16067 +++++++++++++++ .../sq/LC_MESSAGES/get-involved.po | 4097 ++++ .../zh_TW/LC_MESSAGES/get-involved.po | 4104 ++++ 9 files changed, 74472 insertions(+) create mode 100644 i2p2www/translations/ca/LC_MESSAGES/docs.po create mode 100644 i2p2www/translations/cs/LC_MESSAGES/docs.po create mode 100644 i2p2www/translations/cs/LC_MESSAGES/get-involved.po create mode 100644 i2p2www/translations/id/LC_MESSAGES/blog.po create mode 100644 i2p2www/translations/nb/LC_MESSAGES/about.po create mode 100644 i2p2www/translations/nb/LC_MESSAGES/priority.po create mode 100644 i2p2www/translations/sq/LC_MESSAGES/docs.po create mode 100644 i2p2www/translations/sq/LC_MESSAGES/get-involved.po create mode 100644 i2p2www/translations/zh_TW/LC_MESSAGES/get-involved.po diff --git a/i2p2www/translations/ca/LC_MESSAGES/docs.po b/i2p2www/translations/ca/LC_MESSAGES/docs.po new file mode 100644 index 00000000..e507528a --- /dev/null +++ b/i2p2www/translations/ca/LC_MESSAGES/docs.po @@ -0,0 +1,16067 @@ +# Catalan translations for I2P. +# Copyright (C) 2017 ORGANIZATION +# This file is distributed under the same license as the I2P project. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: I2P\n" +"Report-Msgid-Bugs-To: http://trac.i2p2.de\n" +"POT-Creation-Date: 2017-09-08 12:54+0000\n" +"PO-Revision-Date: 2018-01-07 22:04+0000\n" +"Last-Translator: str4d \n" +"Language-Team: Catalan (http://www.transifex.com/otf/I2P/language/ca/)\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 1.3\n" + +#: i2p2www/pages/site/docs/index.html:2 i2p2www/pages/site/docs/index.html:23 +msgid "Index to Technical Documentation" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:3 i2p2www/pages/site/docs/reseed.html:3 +#: i2p2www/pages/site/docs/how/elgamal-aes.html:3 +msgid "January 2016" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:6 +msgid "Following is an index to the technical documentation for I2P." +msgstr "" + +#: i2p2www/pages/site/docs/index.html:10 +msgid "" +"This index is ordered from the highest to lowest layers.\n" +"The higher layers are for \"clients\" or applications;\n" +"the lower layers are inside the router itself.\n" +"The interface between applications and the router is the I2CP (I2P " +"Control Protocol) API." +msgstr "" + +#: i2p2www/pages/site/docs/index.html:17 +#, python-format +msgid "" +"The I2P Project is committed to maintaining accurate, current " +"documentation.\n" +"If you find any inaccuracies in the documents linked below, please\n" +"enter a ticket identifying the problem." +msgstr "" + +#: i2p2www/pages/site/docs/index.html:25 i2p2www/pages/site/docs/naming.html:6 +#: i2p2www/pages/site/docs/api/bob.html:42 +#: i2p2www/pages/site/docs/api/i2ptunnel.html:7 +#: i2p2www/pages/site/docs/api/streaming.html:6 +#: i2p2www/pages/site/docs/applications/embedding.html:7 +#: i2p2www/pages/site/docs/applications/managed-clients.html:7 +#: i2p2www/pages/site/docs/how/elgamal-aes.html:6 +#: i2p2www/pages/site/docs/how/network-database.html:6 +#: i2p2www/pages/site/docs/how/peer-selection.html:6 +#: i2p2www/pages/site/docs/how/tech-intro.html:9 +#: i2p2www/pages/site/docs/how/tech-intro.html:93 +#: i2p2www/pages/site/docs/how/tunnel-routing.html:6 +#: i2p2www/pages/site/docs/tunnels/implementation.html:67 +#: i2p2www/pages/site/docs/tunnels/unidirectional.html:6 +msgid "Overview" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:27 +msgid "Technical Introduction" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:28 +msgid "A Less-Technical Introduction" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:29 +msgid "Threat model and analysis" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:30 +msgid "Comparisons to other anonymous networks" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:31 +msgid "Specifications" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:32 +msgid "Protocol stack chart" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:33 +msgid "Papers on I2P" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:34 +msgid "Presentations, articles, tutorials, videos, and interviews" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:35 +#, python-format +msgid "" +"Invisible Internet Project (I2P) Project Overview" +" August 28, 2003 (pdf)" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:38 +msgid "Application-Layer Topics" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:41 i2p2www/pages/site/docs/naming.html:2 +msgid "Naming and Addressbook" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:42 +msgid "Plugins Overview" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:43 +msgid "Plugin Specification" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:44 +#: i2p2www/pages/site/docs/applications/managed-clients.html:2 +#: i2p2www/pages/site/docs/applications/managed-clients.html:20 +msgid "Managed Clients" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:45 i2p2www/pages/site/docs/index.html:223 +msgid "Embedding the router in your application" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:46 +#: i2p2www/pages/site/docs/applications/bittorrent.html:2 +msgid "Bittorrent over I2P" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:47 +msgid "I2PControl Plugin API" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:48 +msgid "hostsdb.blockfile Format" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:49 i2p2www/pages/site/docs/index.html:195 +msgid "Configuration File Format" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:52 +msgid "Application Layer API and Protocols" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:53 +msgid "" +"High-level, easy-to-use APIs for applications written in any language to " +"send and receive data." +msgstr "" + +#: i2p2www/pages/site/docs/index.html:55 +msgid "Application Development Overview and Guide" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:59 +#: i2p2www/pages/site/docs/api/i2ptunnel.html:51 +msgid "I2PTunnel Configuration" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:75 +msgid "SAM Protocol" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:77 +msgid "SAMv2 Protocol" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:79 +msgid "SAMv3 Protocol" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:81 +msgid "BOB Protocol" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:84 +msgid "End-to-End Transport API and Protocols" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:85 +msgid "" +"The end-to-end protocols used by clients for reliable and unreliable " +"communication." +msgstr "" + +#: i2p2www/pages/site/docs/index.html:87 +#: i2p2www/pages/site/docs/api/streaming.html:2 +msgid "Streaming Library" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:89 +msgid "Streaming Protocol Specification" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:91 +msgid "Streaming Javadoc" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:93 +#: i2p2www/pages/site/docs/api/datagrams.html:2 +msgid "Datagrams" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:95 +msgid "Datagram Javadoc" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:98 +msgid "Client-to-Router Interface API and Protocol" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:99 +msgid "" +"The lowest-level API used for clients (applications) to send and receive " +"traffic to a router.\n" +"Traditionally used only by Java applications and higher-level APIs." +msgstr "" + +#: i2p2www/pages/site/docs/index.html:104 +msgid "I2CP - I2P Control Protocol / API overview" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:106 +msgid "I2CP Specification" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:108 +msgid "I2CP API Javadoc" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:110 +#: i2p2www/pages/site/docs/index.html:140 +msgid "Common data structures specification" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:112 +#: i2p2www/pages/site/docs/index.html:142 +msgid "Data Structures Javadoc" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:115 +msgid "End-to-End Encryption" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:116 +msgid "How client messages are end-to-end encrypted by the router." +msgstr "" + +#: i2p2www/pages/site/docs/index.html:118 +msgid "ElGamal/AES+SessionTag encryption" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:119 +#: i2p2www/pages/site/docs/index.html:153 +msgid "ElGamal and AES cryptography details" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:122 +#: i2p2www/pages/site/docs/how/tech-intro.html:11 +#: i2p2www/pages/site/docs/how/tech-intro.html:325 +msgid "Network Database" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:123 +msgid "" +"Distributed storage and retrieval of information about routers and " +"clients." +msgstr "" + +#: i2p2www/pages/site/docs/index.html:125 +msgid "Network database overview, details, and threat analysis" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:126 +msgid "Cryptographic hashes" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:127 +msgid "Cryptographic signatures" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:128 +#: i2p2www/pages/site/docs/index.html:187 +msgid "Router reseed specification" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:131 +msgid "Router Message Protocol" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:132 +msgid "" +"I2P is a message-oriented router. The messages sent between routers are " +"defined by the I2NP protocol." +msgstr "" + +#: i2p2www/pages/site/docs/index.html:134 +msgid "I2NP - I2P Network Protocol Overview" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:136 +msgid "I2NP Specification" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:138 +msgid "I2NP Javadoc" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:145 +#: i2p2www/pages/site/docs/how/tech-intro.html:10 +#: i2p2www/pages/site/docs/how/tech-intro.html:224 +msgid "Tunnels" +msgstr "Túnels" + +#: i2p2www/pages/site/docs/index.html:146 +msgid "" +"Selecting peers, requesting tunnels through those peers, and encrypting " +"and routing messages through these tunnels." +msgstr "" + +#: i2p2www/pages/site/docs/index.html:148 +msgid "Peer profiling and selection" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:149 +msgid "Tunnel routing overview" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:150 +msgid "Garlic routing and \"garlic\" terminology" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:151 +msgid "Tunnel building and encryption" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:152 +msgid "ElGamal/AES" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:152 +msgid "for build request encryption" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:154 +msgid "Tunnel building specification" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:155 +msgid "Low-level tunnel message specification" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:156 +#: i2p2www/pages/site/docs/tunnels/unidirectional.html:2 +msgid "Unidirectional Tunnels" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:157 +#: i2p2www/pages/site/docs/how/peer-selection.html:299 +msgid "Peer Profiling and Selection in the I2P Anonymous Network" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:158 +msgid "2009 paper (pdf), not current but still generally accurate" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:161 +msgid "Transport Layer" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:162 +msgid "The protocols for direct (point-to-point) router to router communication." +msgstr "" + +#: i2p2www/pages/site/docs/index.html:164 +msgid "Transport layer overview" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:166 +msgid "TCP-based transport overview and specification" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:168 +msgid "UDP-based transport overview" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:170 +msgid "SSU specification" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:172 +msgid "NTCP transport encryption" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:174 +msgid "SSU transport encryption" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:176 +msgid "Transport Javadoc" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:178 +msgid "NTCP Javadoc" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:180 +msgid "SSU Javadoc" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:183 +msgid "Other Router Topics" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:185 +msgid "Router software updates" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:189 +msgid "Native BigInteger Library" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:191 +msgid "Time synchronization and NTP" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:193 +msgid "Performance" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:200 +msgid "Developer's Guides and Resources" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:202 +msgid "New Developer's Guide" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:204 +msgid "New Translator's Guide" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:206 +msgid "Monotone Guide" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:208 +msgid "Developer Guidelines" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:210 +msgid "Javadocs on the standard internet:" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:211 +#: i2p2www/pages/site/docs/index.html:215 +#: i2p2www/pages/site/docs/index.html:216 +#: i2p2www/pages/site/docs/index.html:217 +#, python-format +msgid "Server %(num)s" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:212 +#: i2p2www/pages/site/docs/index.html:221 +msgid "" +"Note: always verify that javadocs are current by checking the release " +"number." +msgstr "" + +#: i2p2www/pages/site/docs/index.html:214 +msgid "Javadocs inside I2P:" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:225 +msgid "How to Set up a Reseed Server" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:227 +msgid "Ports used by I2P" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:229 +msgid "Automatic updates to development builds inside I2P" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:231 +msgid "Updating the wrapper manually" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:233 +msgid "User forum" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:235 +msgid "Developer forum inside I2P" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:237 +msgid "Bug tracker" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:239 +msgid "Viewmtn inside I2P" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:241 +msgid "I2P Source exported to GitHub" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:243 +msgid "I2P Source Git Repo inside I2P" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:245 +msgid "Source translation at Transifex" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:247 +msgid "Roadmap" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:249 +msgid "To Do List" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:249 +msgid "not current" +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:3 +msgid "May 2016" +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:8 +msgid "" +"I2P ships with a generic naming library and a base implementation \n" +"designed to work off a local name to destination mapping, as well as an\n" +"add-on application called the addressbook. \n" +"I2P also supports Base32 hostnames similar to " +"Tor's .onion addresses." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:15 +msgid "" +"The addressbook is a web-of-trust\n" +"driven secure, distributed, and human readable naming system, sacrificing" +" only\n" +"the call for all human readable names to be globally unique by mandating " +"only\n" +"local uniqueness. While all messages in I2P are cryptographically " +"addressed\n" +"by their destination, different people can have local addressbook entries" +" for\n" +"\"Alice\" which refer to different destinations. People can still " +"discover new\n" +"names by importing published addressbooks of peers specified in their web" +" of trust,\n" +"by adding in the entries provided through a third party, or (if some " +"people organize\n" +"a series of published addressbooks using a first come first serve " +"registration\n" +"system) people can choose to treat these addressbooks as name servers, " +"emulating\n" +"traditional DNS." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:29 +#, python-format +msgid "" +"NOTE: For the reasoning behind the I2P naming system, common arguments " +"against it\n" +"and possible alternatives see the naming" +" discussion\n" +"page." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:36 +msgid "Naming System Components" +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:38 +msgid "" +"There is no central naming authority in I2P.\n" +"All hostnames are local." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:43 +msgid "" +"The naming system is quite simple and most of it is implemented\n" +"in applications external to the router, but bundled with\n" +"the I2P distribution.\n" +"The components are:" +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:51 +msgid "" +"The local naming service which does lookups\n" +"and also handles Base32 hostnames." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:55 +msgid "" +"The HTTP proxy which asks the router for " +"lookups and points\n" +"the user to remote jump services to assist with failed lookups." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:59 +msgid "" +"HTTP host-add forms which allow users to " +"add hosts to their local hosts.txt" +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:62 +msgid "" +"HTTP jump services which provide their own" +" lookups and redirection." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:65 +msgid "" +"The addressbook application which merges " +"external\n" +"host lists, retrieved via HTTP, with the local list." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:69 +msgid "" +"The SusiDNS application which is a simple web " +"front-end\n" +"for addressbook configuration and viewing of the local host lists." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:76 +msgid "Naming Services" +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:78 +#, python-format +msgid "" +"All destinations in I2P are 516-byte (or longer) keys.\n" +"(To be more precise, it is a 256-byte public key plus a 128-byte signing " +"key\n" +"plus a null certificate, which in Base64 representation is 516 bytes.\n" +"Certificates are not " +"used now,\n" +"if they are, the keys will be longer.\n" +"One possible use of certificates is for proof of work.)" +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:87 +msgid "" +"If an application (i2ptunnel or the HTTP proxy) wishes to access\n" +"a destination by name, the router does a very simple local lookup\n" +"to resolve that name." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:93 +msgid "Hosts.txt Naming Service" +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:95 +msgid "" +"The hosts.txt Naming Service does a simple linear search through\n" +"text files. This naming service was the default until\n" +"release 0.8.8 when it was replaced by the Blockfile Naming Service.\n" +"The hosts.txt format had become too slow after the file grew to thousands" +" of entries." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:102 +#, python-format +msgid "" +"It does a linear search through three local files, in order, to\n" +"look up host names and convert them to a 516-byte destination key.\n" +"Each file is in a simple configuration file" +" format, with hostname=base64, one per line.\n" +"The files are:" +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:114 +msgid "Blockfile Naming Service" +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:116 +msgid "" +"The Blockfile Naming Service stores multiple \"addressbooks\" in a single" +"\n" +"database file named hostsdb.blockfile.\n" +"This Naming Service is the default since release 0.8.8." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:122 +#, python-format +msgid "" +"A blockfile is simply on-disk storage of multiple sorted maps (key-value " +"pairs),\n" +"implemented as skiplists.\n" +"The blockfile format is specified on the Blockfile page.\n" +"It provides fast Destination lookup in a compact format. While the " +"blockfile overhead is substantial,\n" +"the destinations are stored in binary rather than in Base 64 as in the " +"hosts.txt format.\n" +"In addition, the blockfile provides the capability of arbitrary metadata " +"storage\n" +"(such as added date, source, and comments) for each entry to implement " +"advanced addressbook features.\n" +"The blockfile storage requirement is a modest increase over the hosts.txt" +" format, and the blockfile provides\n" +"approximately 10x reduction in lookup times." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:134 +msgid "" +"On creation, the naming service imports entries from the three files used" +" by the hosts.txt Naming Service.\n" +"The blockfile mimics the previous implementation by maintaining three " +"maps that\n" +"are searched in-order, named privatehosts.txt, userhosts.txt, and " +"hosts.txt.\n" +"It also maintains a reverse-lookup map to implement rapid reverse lookups." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:141 +msgid "Other Naming Service Facilities" +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:143 +#, python-format +msgid "" +"The lookup is case-insensitive.\n" +"The first match is used, and conflicts are not detected.\n" +"There is no enforcement of naming rules in lookups.\n" +"Lookups are cached for a few minutes.\n" +"Base 32 resolution is described below.\n" +"For a full description of the Naming Service API see the\n" +"Naming Service Javadocs.\n" +"This API was significantly expanded in release 0.8.7 to provide\n" +"adds and removes, storage of arbitrary properties with the hostname,\n" +"and other features." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:156 +msgid "Alternatives and Experimental Naming Services" +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:158 +#, python-format +msgid "" +"The naming service is specified with the configuration property " +"i2p.naming.impl=class.\n" +"Other implementations are possible. For example,\n" +"there is an experimental facility for real-time lookups (a la DNS) over " +"the network within the router.\n" +"For more information see the alternatives on the discussion" +" page." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:165 +msgid "" +"The HTTP proxy does a lookup via the router for all hostnames ending in " +"'.i2p'.\n" +"Otherwise, it forwards the request to a configured HTTP outproxy.\n" +"Thus, in practice, all HTTP (eepsite) hostnames must end in the pseudo-" +"Top Level Domain '.i2p'." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:171 +#, python-format +msgid "" +"We have applied to reserve the .i2p TLD\n" +"following the procedures specified in RFC " +"6761." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:177 +msgid "" +"If the router fails to resolve the hostname, the HTTP proxy returns\n" +"an error page to the user with links to several \"jump\" services.\n" +"See below for details." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:183 +msgid "Addressbook" +msgstr "Agenda d'adreces" + +#: i2p2www/pages/site/docs/naming.html:184 +msgid "Incoming Subscriptions and Merging" +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:186 +msgid "" +"The addressbook application periodically\n" +"retrieves other users' hosts.txt files and merges\n" +"them with the local hosts.txt, after several checks.\n" +"Naming conflicts are resolved on a first-come first-served\n" +"basis." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:194 +msgid "" +"Subscribing to another user's hosts.txt file involves\n" +"giving them a certain amount of trust.\n" +"You do not want them, for example, 'hijacking' a new site\n" +"by quickly entering in their own key for a new site before\n" +"passing the new host/key entry to you." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:202 +msgid "" +"For this reason, the only subscription configured by\n" +"default is http://i2p-projekt.i2p/hosts.txt " +"(http://udhdrtrcetjm5sxzskjyr5ztpeszydbh4dpl3pl4utgqqw2v4jna.b32.i2p/hosts.txt)," +" \n" +"which contains a copy of the hosts.txt included\n" +"in the I2P release.\n" +"Users must configure additional subscriptions in their\n" +"local addressbook application (via subscriptions.txt or SusiDNS)." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:211 +msgid "Some other public addressbook subscription links:" +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:218 +msgid "" +"The operators of these services may have various policies for listing " +"hosts.\n" +"Presence on this list does not imply endorsement." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:223 +#: i2p2www/pages/site/docs/naming.html:235 +msgid "Naming Rules" +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:224 +msgid "" +"While there are hopefully not any technical limitations within I2P on " +"host names,\n" +"the addressbook enforces several restrictions on host names\n" +"imported from subscriptions.\n" +"It does this for basic typographical sanity and compatibility with " +"browsers,\n" +"and for security.\n" +"The rules are essentially the same as those in RFC2396 Section 3.2.2.\n" +"Any hostnames violating these rules may not be propagated\n" +"to other routers." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:239 +msgid "Names are converted to lower case on import." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:243 +msgid "" +"Names are checked for conflict with existing names in the existing " +"userhosts.txt and hosts.txt\n" +"(but not privatehosts.txt) after conversion to lower case." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:248 +msgid "Must contain only [a-z] [0-9] '.' and '-' after conversion to lower case." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:252 +msgid "Must not start with '.' or '-'." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:256 +msgid "Must end with '.i2p'." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:260 +msgid "67 characters maximum, including the '.i2p'." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:264 +msgid "Must not contain '..'." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:268 +msgid "Must not contain '.-' or '-.' (as of 0.6.1.33)." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:272 +msgid "Must not contain '--' except in 'xn--' for IDN." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:276 +msgid "" +"Base32 hostnames (*.b32.i2p) are reserved for base 32 use and so are not " +"allowed to be imported." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:280 +msgid "" +"Certain hostnames reserved for project use are not allowed\n" +"(proxy.i2p, router.i2p, console.i2p, *.proxy.i2p, *.router.i2p, " +"*.console.i2p, and others)" +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:285 +msgid "Keys are checked for base64 validity." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:289 +msgid "" +"Keys are checked for conflict with existing keys in hosts.txt (but not " +"privatehosts.txt)." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:293 +msgid "Minimum key length 516 bytes." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:297 +msgid "Maximum key length 616 bytes (to account for certs up to 100 bytes)." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:302 +msgid "" +"Any name received via subscription that passes all the checks is added " +"via the local naming service." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:306 +msgid "" +"Note that the '.' symbols in a host name are of no significance,\n" +"and do not denote any actual naming or trust hierarchy.\n" +"If the name 'host.i2p' already exists, there is nothing\n" +"to prevent anybody from adding a name 'a.host.i2p' to their hosts.txt,\n" +"and this name can be imported by others' addressbook.\n" +"Methods to deny subdomains to non-domain 'owners' (certificates?),\n" +"and the desirability and feasibility of these methods,\n" +"are topics for future discussion." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:317 +msgid "" +"International Domain Names (IDN) also work in i2p (using punycode 'xn--' " +"form).\n" +"To see IDN .i2p domain names rendered correctly in Firefox's location " +"bar,\n" +"add 'network.IDN.whitelist.i2p (boolean) = true' in about:config." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:323 +msgid "" +"As the addressbook application does not use privatehosts.txt at all, in " +"practice\n" +"this file is the only place where it is appropriate to place private " +"aliases or\n" +"\"pet names\" for sites already in hosts.txt." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:329 +msgid "Advanced Subscription Feed Format" +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:337 +msgid "Outgoing Subscriptions" +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:338 +msgid "" +"Addressbook will publish the merged hosts.txt to a location\n" +"(traditionally hosts.txt in the local eepsite's home directory) to be " +"accessed by others\n" +"for their subscriptions.\n" +"This step is optional and is disabled by default." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:346 +msgid "" +"The addressbook application, together with eepget, saves the Etag and/or " +"Last-Modified\n" +"information returned by the web server of the subscription.\n" +"This greatly reduces the bandwidth required, as the web server will\n" +"return a '304 Not Modified' on the next fetch if nothing has changed." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:353 +msgid "" +"However the entire hosts.txt is downloaded if it has changed.\n" +"See below for discussion on this issue." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:358 +msgid "" +"Hosts serving a static hosts.txt or an equivalent CGI application\n" +"are strongly encouraged to deliver\n" +"a Content-Length header, and either an Etag or Last-Modified header.\n" +"Also ensure that the server delivers a '304 Not Modified' when " +"appropriate.\n" +"This will dramatically reduce the network bandwidth, and\n" +"reduce chances of corruption." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:367 +msgid "Host Add Services" +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:368 +msgid "" +"A host add service is a simple CGI application that takes a hostname and " +"a Base64 key as parameters\n" +"and adds that to its local hosts.txt.\n" +"If other routers subscribe to that hosts.txt, the new hostname/key\n" +"will be propagated through the network." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:375 +msgid "" +"It is recommended that host add services impose, at a minimum, the " +"restrictions imposed by the addressbook application listed above.\n" +"Host add services may impose additional restrictions on hostnames and " +"keys, for example:" +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:380 +msgid "A limit on number of 'subdomains'." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:384 +msgid "Authorization for 'subdomains' through various methods." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:388 +msgid "Hashcash or signed certificates." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:392 +msgid "Editorial review of host names and/or content." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:396 +msgid "Categorization of hosts by content." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:400 +msgid "Reservation or rejection of certain host names." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:404 +msgid "Restrictions on the number of names registered in a given time period." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:408 +msgid "Delays between registration and publication." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:412 +msgid "Requirement that the host be up for verification." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:416 +msgid "Expiration and/or revocation." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:420 +msgid "IDN spoof rejection." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:425 +msgid "Jump Services" +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:426 +msgid "" +"A jump service is a simple CGI application that takes a hostname as a " +"parameter\n" +"and returns a 301 redirect to the proper URL with a " +"?i2paddresshelper=key\n" +"string appended.\n" +"The HTTP proxy will interpret the appended string and\n" +"use that key as the actual destination.\n" +"In addition, the proxy will cache that key so the\n" +"address helper is not necessary until restart." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:436 +msgid "" +"Note that, like with subscriptions, using a jump service\n" +"implies a certain amount of trust, as a jump service could maliciously\n" +"redirect a user to an incorrect destination." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:442 +msgid "" +"To provide the best service, a jump service should be subscribed to\n" +"several hosts.txt providers so that its local host list is current." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:448 +msgid "" +"SusiDNS is simply a web interface front-end to configuring addressbook " +"subscriptions\n" +"and accessing the four addressbook files.\n" +"All the real work is done by the 'addressbook' application." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:454 +msgid "" +"Currently, there is little enforcement of addressbook naming rules within" +" SusiDNS,\n" +"so a user may enter hostnames locally that would be rejected by\n" +"the addressbook subscription rules." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:460 +msgid "Base32 Names" +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:461 +msgid "" +"I2P supports Base32 hostnames similar to Tor's .onion addresses.\n" +"Base32 addresses are much shorter and easier to handle than the\n" +"full 516-character Base64 Destinations or addresshelpers.\n" +"Example: " +"ukeu3k5oycgaauneqgtnvselmt4yemvoilkln7jpvamvfx7dnkdq.b32.i2p" +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:468 +#, python-format +msgid "" +"In Tor, the address is 16 characters (80 bits), or half of the SHA-1 " +"hash.\n" +"I2P uses 52 characters (256 bits) to represent the full SHA-256 hash.\n" +"The form is {52 chars}.b32.i2p.\n" +"Tor has recently published a\n" +"proposal\n" +"to convert to an identical format of {52 chars}.onion for their hidden " +"services.\n" +"Base32 is implemented in the naming service, which queries the\n" +"router over I2CP to lookup the LeaseSet to get the full Destination.\n" +"Base32 lookups will only be successful when the Destination is up and " +"publishing\n" +"a LeaseSet.\n" +"Because resolution may require a network database lookup, it may take " +"significantly\n" +"longer than a local address book lookup." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:483 +msgid "" +"Base32 addresses can be used in most places where hostnames or full " +"destinations\n" +"are used, however there are some exceptions where they may fail if the\n" +"name does not immediately resolve. I2PTunnel will fail, for example, if\n" +"the name does not resolve to a destination." +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:2 +msgid "Plugins" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:3 +msgid "June 2012" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:6 +msgid "General Information" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:7 +msgid "" +"I2P includes a plugin architecture\n" +"to support easy development and installation of additional software." +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:12 +msgid "" +"There are now plugins available that support distributed email, blogs, " +"IRC\n" +"clients, distributed file storage, wikis, and more." +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:17 +msgid "Benefits to i2p users and app developers:" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:22 +msgid "Easy distribution of applications" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:26 +msgid "" +"Allows innovation and use of additional libraries without worrying about\n" +"increasing the size of i2pupdate.sud" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:31 +msgid "" +"Support large or special-purpose applications that would never be bundled" +"\n" +"with the I2P installation" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:36 +msgid "Cryptographically signed and verified applications" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:40 +msgid "Automatic updates of applications, just like for the router" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:44 +msgid "" +"Separate initial install and update packages, if desired, for smaller " +"update downloads" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:48 +msgid "" +"One-click installation of applications. No more asking users to modify\n" +"wrapper.config or clients.config" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:53 +msgid "Isolate applications from the base $I2P installation" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:57 +msgid "" +"Automatic compatibility checking for I2P version, Java version, Jetty\n" +"version, and previous installed application version" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:62 +msgid "Automatic link addition in console" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:66 +msgid "" +"Automatic startup of application, including modifying classpath, without " +"requiring a restart" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:70 +msgid "Automatic integration and startup of webapps into console Jetty instance" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:74 +#, python-format +msgid "" +"Facilitate creation of 'app stores' like the one at\n" +"%(pluginsite)s" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:79 +msgid "One-click uninstall" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:83 +msgid "Language and theme packs for the console" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:87 +msgid "Bring detailed application information to the router console" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:91 +msgid "Non-java applications also supported" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:97 +msgid "Required I2P version" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:98 +msgid "0.7.12 or newer." +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:100 +msgid "Installation" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:101 +msgid "" +"To install and start a plugin, copy the .xpi2p install link " +"to\n" +"the form at the bottom of\n" +"configclients.jsp" +" in\n" +"your router console and click the \"install plugin\" button. After a" +"\n" +"plugin is installed and started, a link to the plugin will usually appear" +" at\n" +"the top of your summary bar." +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:110 +msgid "" +"To update a plugin to the latest version, just click the update button on" +"\n" +"configclients.jsp." +"\n" +"There is also a button to check if the plugin has a more recent version, " +"as\n" +"well as a button to check for updates for all plugins. Plugins will be " +"checked\n" +"for updates automatically when updating to a new I2P release (not " +"including dev\n" +"builds)." +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:120 +msgid "Development" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:121 +#, python-format +msgid "" +"See the latest plugin specification and " +"the\n" +"plugin forum on %(zzz)s." +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:126 +#, python-format +msgid "" +"See also the sources for plugins developed by various people. Some " +"plugins, such\n" +"as snowman, were " +"developed\n" +"specifically as examples." +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:132 +msgid "" +"Developers wanted! Plugins are a great way to learn more about I2P" +"\n" +"or easily add some feature." +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:137 +msgid "Getting Started" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:138 +#, python-format +msgid "" +"To create a plugin from an existing binary package you will need to get\n" +"makeplugin.sh from the i2p.scripts branch in " +"monotone." +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:144 +msgid "Known Issues" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:145 +msgid "" +"Note that the router's plugin architecture does NOT currently\n" +"provide any additional security isolation or sandboxing of plugins." +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:151 +msgid "" +"Updates of a plugin with included jars (not wars) won't be recognized if\n" +"the plugin was already run, as it requires class loader trickery to flush" +" the\n" +"class cache; a full router restart is required." +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:157 +msgid "The stop button may be displayed even if there is nothing to stop." +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:161 +msgid "" +"Plugins running in a separate JVM create a logs/ directory " +"in\n" +"$CWD." +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:166 +msgid "" +"No initial keys are present, except for those of jrandom and zzz (using " +"the\n" +"same keys as for router update), so the first key seen for a signer is\n" +"automatically accepted—there is no signing key authority." +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:172 +msgid "" +"When deleting a plugin, the directory is not always deleted, especially " +"on\n" +"Windows." +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:177 +msgid "" +"Installing a plugin requiring Java 1.6 on a Java 1.5 machine will result " +"in a\n" +"\"plugin is corrupt\" message if pack200 compression of the plugin file " +"is used." +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:182 +msgid "Theme and translation plugins are untested." +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:186 +msgid "Disabling autostart doesn't always work." +msgstr "" + +#: i2p2www/pages/site/docs/ports.html:2 +msgid "Ports Used by I2P" +msgstr "" + +#: i2p2www/pages/site/docs/ports.html:3 +msgid "December 2015" +msgstr "" + +#: i2p2www/pages/site/docs/ports.html:7 +msgid "" +"These are the ports used or reserved by I2P, including those for known " +"plugins,\n" +"common alternates,\n" +"and some typical related applications." +msgstr "" + +#: i2p2www/pages/site/docs/ports.html:13 +#, python-format +msgid "" +"Note that many of these are not enabled by default.\n" +"There is more information in the FAQ.\n" +"See also the documentation for individual plugins.\n" +"Plugin authors please add any ports you use here.\n" +"For new plugins, we recommend using the next available port\n" +"in the 766x range." +msgstr "" + +#: i2p2www/pages/site/docs/ports.html:53 +msgid "recommended spot for new plugins/applications" +msgstr "" + +#: i2p2www/pages/site/docs/reseed.html:2 +msgid "Reseed Hosts" +msgstr "" + +#: i2p2www/pages/site/docs/reseed.html:8 +msgid "About Reseed hosts" +msgstr "" + +#: i2p2www/pages/site/docs/reseed.html:10 +msgid "" +"Reseed hosts are needed to for bootstrapping, that is, providing the " +"initial set of I2P nodes for your I2P node to talk to. Depending on the " +"status of your node it may need to bootstrap every now and then if many " +"of the nodes it knows of aren't contactable." +msgstr "" + +#: i2p2www/pages/site/docs/reseed.html:14 +msgid "" +"Reseeding is done over an encrypted connection and all of the bootstrap " +"information is signed by the reseed host you connect to, making it " +"impossible for an unauthenticated source to provide you with false " +"information." +msgstr "" + +#: i2p2www/pages/site/docs/reseed.html:19 +msgid "Running a Reseed host" +msgstr "" + +#: i2p2www/pages/site/docs/reseed.html:21 +msgid "" +"The more reseed hosts that are run, the more resilient the I2P network " +"becomes, and the harder it is to prevent users of I2P from connecting to " +"the network." +msgstr "" + +#: i2p2www/pages/site/docs/reseed.html:25 +msgid "" +"There have also been cases where the reseed hosts we had, have been under" +" heavy load due to botnet activities." +msgstr "" + +#: i2p2www/pages/site/docs/reseed.html:33 +msgid "Thank you" +msgstr "" + +#: i2p2www/pages/site/docs/reseed.html:35 +msgid "" +"If you are running a reseed server, We would like to thank you for " +"helping to\n" +"make the I2P network stronger and more resilient than ever." +msgstr "" + +#: i2p2www/pages/site/docs/reseed.html:41 +msgid "Thank you." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:2 +msgid "BOB - Basic Open Bridge" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:3 +msgid "August 2016" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:12 +msgid "Technical differences from SAM (for the better?)" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:14 +msgid "" +"BOB has separate command and data channels. \n" +"One, an application command channel socket to router to configure.\n" +"Two, the application data sockets to/from router that carry only data.\n" +"The command channel is only needed for making or setting the initial\n" +"destination key, and to set the destination key to port bindings. \n" +"All connections run in parallel." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:23 +msgid "" +"SAM has one connection that does everything, and you need to parse every " +"packet." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:27 +msgid "" +"BOB does not hold keypair values, nor does the router.\n" +"Your application holds the keypair values. \n" +"This is to reduce any extra complexity in the router code, it also adds " +"to\n" +"your privacy." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:34 +msgid "SAM router stores every keypair you ever make." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:38 +msgid "Those are the important differences." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:44 +msgid "KEYS = keypair public+private, these are BASE64" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:47 +msgid "KEY = public key, also BASE64" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:50 +msgid "" +"ERROR as is implied returns the message \"ERROR " +"\"+DESCRIPTION+\"\\n\", where the DESCRIPTION is what" +" went wrong." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:53 +msgid "" +"OK returns \"OK\", and if data is to be " +"returned, it is on the same line. OK means the command is " +"finished." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:56 +msgid "" +"DATA lines contain information that you requested. There may" +" be multiple DATA lines per request." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:60 +msgid "" +"NOTE: The help command is the ONLY command that has an exception " +"to\n" +"the rules... it can actually return nothing! This is intentional, since\n" +"help is a HUMAN and not an APPLICATION command." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:66 +msgid "Connection and Version" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:68 +msgid "" +"All BOB status output is by lines. Lines may be \\n or \\r\\n terminated," +" depending on the system.\n" +"On connection, BOB outputs two lines:" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:78 +msgid "The current version is:" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:82 +msgid "" +"Note that previous versions used upper-case hex digits and did not " +"conform to I2P versioning standards.\n" +"It is recommended that subsequent versions use digits 0-9 only." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:87 +msgid "Version history" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:92 +msgid "Version" +msgstr "Versió" + +#: i2p2www/pages/site/docs/api/bob.html:93 +msgid "I2P Router Version" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:94 +msgid "Changes" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:97 +msgid "current version" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:100 +msgid "development versions" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:104 +msgid "Commands" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:106 +msgid "" +"PLEASE NOTE:\n" +"For CURRENT details on the commands PLEASE use the built-in help command." +" \n" +"Just telnet to localhost 2827 and type help and you can get full " +"documentation on each command." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:112 +msgid "" +"Commands never get obsoleted or changed, however new commands do get " +"added from time to time." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:117 +msgid "COMMAND" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:117 +msgid "OPERAND" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:117 +msgid "RETURNS" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:145 +msgid "" +"Once set up, all TCP sockets can and will block as needed, and there is " +"no need for any \n" +"additional messages to/from the command channel. This allows the router " +"to pace the\n" +"stream without exploding with OOM like SAM does as it chokes on " +"attempting to shove \n" +"many streams in or out one socket -- that can't scale when you have alot " +"of connections!" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:152 +msgid "" +"What is also nice about this particular interface is that writing " +"anything to interface \n" +"to it, is much much easier than SAM. There is no other processing to do " +"after the set up.\n" +"It's configuration is so simple, that very simple tools, such as nc " +"(netcat) can be used \n" +"to point to some application. The value there is that one could schedule " +"up and down times \n" +"for an application, and not have to change the application to do that, or" +" to even have \n" +"to stop that application. Instead, you can literally \"unplug\" the " +"destination, and \n" +"\"plug it in\" again. As long as the same IP/port addresses and " +"destination keys are used \n" +"when bringing the bridge up, the normal TCP application won't care, and " +"won't notice.\n" +"It will simply be fooled -- the destinations are not reachable, and that " +"nothing is coming in." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:164 +msgid "Examples" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:166 +msgid "" +"For the following example, we'll setup a very simple local loopback " +"connection, \n" +"with two destinations. Destination \"mouth\" will be the CHARGEN service " +"from \n" +"the INET superserver daemon. Destination \"ear\" will be a local port " +"that you\n" +"can telnet into, and watch the pretty ASCII test puke forth." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:174 +msgid "EXAMPLE SESSION DIALOGUE -- simple telnet 127.0.0.1 2827 works" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:175 +msgid "Application" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:176 +msgid "BOB's Command response." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:178 +#: i2p2www/pages/site/docs/api/bob.html:192 +#: i2p2www/pages/site/docs/api/bob.html:212 +#: i2p2www/pages/site/docs/api/bob.html:322 +#: i2p2www/pages/site/docs/api/bob.html:334 +#: i2p2www/pages/site/docs/api/bob.html:349 +msgid "FROM" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:178 +#: i2p2www/pages/site/docs/api/bob.html:192 +#: i2p2www/pages/site/docs/api/bob.html:212 +#: i2p2www/pages/site/docs/api/bob.html:322 +#: i2p2www/pages/site/docs/api/bob.html:334 +#: i2p2www/pages/site/docs/api/bob.html:349 +msgid "TO" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:178 +#: i2p2www/pages/site/docs/api/bob.html:192 +#: i2p2www/pages/site/docs/api/bob.html:212 +#: i2p2www/pages/site/docs/api/bob.html:322 +#: i2p2www/pages/site/docs/api/bob.html:334 +#: i2p2www/pages/site/docs/api/bob.html:349 +msgid "DIALOGUE" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:187 +msgid "MAKE NOTE OF THE ABOVE DESTINATION KEY, YOURS WILL BE DIFFERENT!" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:201 +msgid "" +"At this point, there was no error, a destination with a nickname of " +"\"mouth\" \n" +"is set up. When you contact the destination provided, you actually " +"connect \n" +"to the CHARGEN service on 19/TCP." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:207 +msgid "Now for the other half, so that we can actually contact this destination." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:229 +msgid "" +"Now all we need to do is telnet into 127.0.0.1, port 37337,\n" +"send the destination key or host address from addressbook we want to " +"contact.\n" +"In this case, we want to contact \"mouth\", all we do is paste in the\n" +"key and it goes." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:236 +msgid "" +"NOTE: The \"quit\" command in the command channel does NOT " +"disconnect the tunnels like SAM." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:253 +msgid "After a few virtual miles of this spew, press Control-]" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:265 +msgid "Here is what happened..." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:273 +msgid "You can connect to EEPSITES too!" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:306 +msgid "" +"Pretty cool isn't it? Try some other well known EEPSITES if you like, " +"nonexistent ones, \n" +"etc, to get a feel for what kind of output to expect in different " +"situations. \n" +"For the most part, it is suggested that you ignore any of the error " +"messages. \n" +"They would be meaningless to the application, and are only presented for " +"human debugging." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:313 +msgid "Let's put down our destinations now that we are all done with them." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:317 +msgid "First, lets see what destination nicknames we have." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:329 +msgid "Alright, there they are. First, let's remove \"mouth\"." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:343 +msgid "" +"Now to remove \"ear\", note that this is what happens when you type too " +"fast,\n" +"and shows you what typical ERROR messages looks like." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:362 +msgid "" +"I won't bother to show an example of the receiver end of a bridge\n" +"because it is very simple. There are two possible settings for it, and\n" +"it is toggled with the \"quiet\" command." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:368 +msgid "" +"The default is NOT quiet, and the first data to come into your\n" +"listening socket is the destination that is making the contact. It is a\n" +"single line consisting of the BASE64 address followed by a newline.\n" +"Everything after that is for the application to actually consume." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:375 +msgid "" +"In quiet mode, think of it as a regular Internet connection. No\n" +"extra data comes in at all. It's just as if you are plain connected to\n" +"the regular Internet. This mode allows a form of transparency much like\n" +"is available on the router console tunnel settings pages, so that you\n" +"can use BOB to point a destination at a web server, for example, and\n" +"you would not have to modify the web server at all." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:384 +msgid "" +"The advantage with using BOB for this is as discussed\n" +"previously. You could schedule random uptimes for the application,\n" +"redirect to a different machine, etc. One use of this may be something\n" +"like wanting to try to goof up router-to-destination upness guessing.\n" +"You could stop and start the destination with a totally different\n" +"process to make random up and down times on services. That way you\n" +"would only be stopping the ability to contact such a service, and not\n" +"have to bother shutting it down and restarting it. You could redirect\n" +"and point to a different machine on your LAN while you do updates, or\n" +"point to a set of backup machines depending on what is running, etc,\n" +"etc. Only your imagination limits what you could do with BOB." +msgstr "" + +#: i2p2www/pages/site/docs/api/datagrams.html:3 +#: i2p2www/pages/site/docs/protocol/index.html:3 +msgid "August 2010" +msgstr "" + +#: i2p2www/pages/site/docs/api/datagrams.html:6 +msgid "Datagram Overview" +msgstr "" + +#: i2p2www/pages/site/docs/api/datagrams.html:7 +#, python-format +msgid "" +"Datagrams build upon the base I2CP to provide " +"authenticated\n" +"and repliable messages in a standard format. This lets applications " +"reliably read\n" +"the \"from\" address out of a datagram and know that the address really " +"sent the\n" +"message. This is necessary for some applications since the base I2P " +"message is\n" +"completely raw - it has no \"from\" address (unlike IP packets). In " +"addition, the\n" +"message and sender are authenticated by signing the payload." +msgstr "" + +#: i2p2www/pages/site/docs/api/datagrams.html:16 +#, python-format +msgid "" +"Datagrams, like streaming library packets,\n" +"are an application-level construct.\n" +"These protocols are independent of the low-level transports;\n" +"the protocols are converted to I2NP messages by the router, and\n" +"either protocol may be carried by either transport." +msgstr "" + +#: i2p2www/pages/site/docs/api/datagrams.html:25 +msgid "Application Guide" +msgstr "" + +#: i2p2www/pages/site/docs/api/datagrams.html:26 +#, python-format +msgid "" +"Applications written in Java may use the \n" +"datagram API,\n" +"while applications in other languages \n" +"can use SAM's datagram support.\n" +"There is also limited support in i2ptunnel in the SOCKS proxy,\n" +"the 'streamr' tunnel types, and udpTunnel classes." +msgstr "" + +#: i2p2www/pages/site/docs/api/datagrams.html:37 +msgid "Datagram Length" +msgstr "" + +#: i2p2www/pages/site/docs/api/datagrams.html:38 +msgid "" +"The application designer should carefully consider the tradeoff of " +"repliable vs. non-repliable\n" +"datagrams. Also, the datagram size will affect reliability, due to tunnel" +" fragmentation into 1KB\n" +"tunnel messages. The more message fragments, the more likely that one of " +"them will be dropped\n" +"by an intermediate hop. Messages larger than a few KB are not " +"recommended.\n" +"Over about 10 KB, the delivery probablility drops dramatically.\n" +"Messages over 16 KB cannot be delivered over NTCP, dropping delivery " +"chances even more." +msgstr "" + +#: i2p2www/pages/site/docs/api/datagrams.html:47 +#, python-format +msgid "" +"Also note that the various overheads added by lower layers, in particular" +" asymmetric\n" +"ElGamal/AES, place a large burden on " +"intermittent messages\n" +"such as used by a Kademlia-over-UDP application. The implementations are " +"currently tuned\n" +"for frequent traffic using the streaming library. There are a high number" +"\n" +"of session tags delivered, and a short session tag lifetime, for example." +"\n" +"There are currently no configuration parameters available within I2CP to " +"tune\n" +"the ElGamal Session Tag parameters." +msgstr "" + +#: i2p2www/pages/site/docs/api/datagrams.html:57 +msgid "I2CP Protocol Number and Ports" +msgstr "" + +#: i2p2www/pages/site/docs/api/datagrams.html:58 +msgid "" +"The standard I2CP protocol number for datagrams is PROTO_DATAGRAM (17).\n" +"Applications may or may not choose to set the\n" +"protocol in the I2CP header. It is not set by default.\n" +"It must be set to demultiplex datagram and streaming traffic received on " +"the same Destination." +msgstr "" + +#: i2p2www/pages/site/docs/api/datagrams.html:65 +#, python-format +msgid "" +"As datagrams are not connection-oriented, the application may require\n" +"port numbers to correlate datagrams with particular peers or " +"communications sessions,\n" +"as is traditional with UDP over IP.\n" +"Applications may add 'from' and 'to' ports to the I2CP (gzip) header as " +"described in\n" +"the I2CP page." +msgstr "" + +#: i2p2www/pages/site/docs/api/datagrams.html:73 +#, python-format +msgid "" +"There is no method within the datagram API to specify whether it is non-" +"repliable (raw)\n" +"or repliable. The application should be designed to expect the " +"appropriate type.\n" +"The I2CP protocol number or port should be used by the application to\n" +"indicate datagram type.\n" +"The I2CP protocol numbers PROTO_DATAGRAM (signed) and PROTO_DATAGRAM_RAW " +"are defined in the\n" +"I2PSession API\n" +"for this purpose. A common design pattern in client/server datagram " +"applications is to\n" +"use signed datagrams for a request which includes a nonce, and use a raw " +"datagram\n" +"for the reply, returning the nonce from the request." +msgstr "" + +#: i2p2www/pages/site/docs/api/datagrams.html:85 +#, python-format +msgid "" +"The protocols and ports may be set in I2CP's\n" +"I2PSession API,\n" +"as implemented in\n" +"I2PSessionMuxedImpl." +msgstr "" + +#: i2p2www/pages/site/docs/api/datagrams.html:93 +#: i2p2www/pages/site/docs/api/streaming.html:404 +msgid "Data Integrity" +msgstr "" + +#: i2p2www/pages/site/docs/api/datagrams.html:94 +#, python-format +msgid "" +"Data integrity is assured by the gzip CRC-32 checksum implemented in\n" +"the I2CP layer.\n" +"There is no checksum field in the datagram protocol." +msgstr "" + +#: i2p2www/pages/site/docs/api/datagrams.html:100 +#: i2p2www/pages/site/docs/api/streaming.html:412 +msgid "Packet Encapsulation" +msgstr "" + +#: i2p2www/pages/site/docs/api/datagrams.html:101 +#, python-format +msgid "" +"Each datagram is sent through I2P as a single message (or as an " +"individual clove in a\n" +"Garlic Message).\n" +"Message encapsulation is implemented in the underlying\n" +"I2CP,\n" +"I2NP, and\n" +"tunnel message layers.\n" +"There is no packet delimiter mechanism or length field in the datagram " +"protocol." +msgstr "" + +#: i2p2www/pages/site/docs/api/datagrams.html:114 +#: i2p2www/pages/site/docs/transport/ssu.html:644 +msgid "Specification" +msgstr "" + +#: i2p2www/pages/site/docs/api/datagrams.html:116 +msgid "See the Datagrams Specification page." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:2 +msgid "I2PControl - Remote Control Service" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:4 +#, python-format +msgid "" +"I2P enables a JSONRPC2 interface via the plugin I2PControl.\n" +"The aim of the interface is to provide simple way to interface with a " +"running I2P node. A client, itoopie, has been developed in parallel.\n" +"The JSONRPC2 implementation for the client as well as the plugin is " +"provided by the java libraries JSON-RPC 2.0. \n" +"A list of implementations of JSON-RPC for various languages can be found " +"at the JSON-RPC " +"wiki." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:11 +msgid "I2PControl is by default listening on https://localhost:7650" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:13 +msgid "API, version 1." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:14 +msgid "Parameters are only provided in a named way (maps)." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:18 +msgid "JSON-RPC 2 format" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:19 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:44 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:57 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:67 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:76 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:86 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:101 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:154 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:175 +msgid "Request:" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:32 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:49 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:61 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:71 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:81 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:92 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:118 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:164 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:190 +msgid "Response:" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:43 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:45 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:46 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:50 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:51 +#: i2p2www/pages/site/docs/protocol/i2cp.html:108 +#: i2p2www/pages/site/docs/protocol/i2cp.html:483 +msgid "Description" +msgstr "Descripció" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:47 +msgid "" +"Token used for authenticating every request (excluding the 'Authenticate'" +" RPC method)" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:55 +msgid "Implemented methods" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:56 +msgid "" +"Creates and returns an authentication token used for further " +"communication." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:58 +msgid "The version of the I2PControl API used by the client." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:59 +msgid "The password used for authenticating against the remote server." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:62 +msgid "The primary I2PControl API version implemented by the server." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:63 +msgid "The token used for further communication." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:66 +msgid "Echoes the value of the echo key, used for debugging and testing." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:68 +msgid "Value will be returned in response." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:69 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:79 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:90 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:116 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:162 +msgid "" +"Token used for authenticating the client. Is provided by the server via " +"the 'Authenticate' RPC method." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:72 +msgid "Value of the key 'echo' in the request." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:75 +msgid "" +"Fetches rateStat from router statManager. Creates stat if not already " +"created." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:77 +#, python-format +msgid "" +"Determines which rateStat to fetch, see ratestats." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:78 +msgid "Determines which period a stat is fetched for. Measured in ms." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:82 +msgid "Returns the average value for the reuested rateStat and period." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:85 +msgid "Manages I2PControl. Ports, passwords and the like." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:87 +msgid "" +"Sets a new listen address for I2PControl (only 127.0.0.1 and 0.0.0.0 are " +"implemented in I2PControl currently)." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:88 +msgid "" +"Sets a new password for I2PControl, all Authentication tokens will be " +"revoked." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:89 +msgid "Switches which port I2PControl will listen for connections on." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:93 +msgid "Returned if address was changed" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:94 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:95 +msgid "Returned if setting was changed" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:96 +msgid "Returns true if any changes were made." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:97 +msgid "Returns true if any changes requiring a restart to take effect were made." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:100 +msgid "Fetches basic information about the I2P router. Uptime, version etc." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:119 +msgid "What the status of the router is." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:120 +msgid "What the uptime of the router is in ms." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:121 +msgid "What version of I2P the router is running." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:122 +msgid "The 1 second average inbound bandwidth in Bps." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:123 +msgid "The 15 second average inbound bandwidth in Bps." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:124 +msgid "The 1 second average outbound bandwidth in Bps." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:125 +msgid "The 15 second average outbound bandwidth in Bps." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:126 +msgid "What the current network status is. According to the below enum:" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:145 +msgid "How many tunnels on the I2P net are we participating in." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:146 +msgid "How many peers have we communicated with recently." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:147 +msgid "How many peers are considered 'fast'." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:148 +msgid "How many peers are considered 'high capacity'." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:149 +msgid "Is the router reseeding hosts to its NetDB?" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:150 +msgid "How many peers are known to us (listed in our NetDB)." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:153 +msgid "Manages I2P router restart/shutdown." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:155 +msgid "Blocking. Initiates a search for signed updates." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:156 +msgid "" +"Initiates a router reseed, fetching peers into our NetDB from a remote " +"host." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:157 +msgid "Restarts the router." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:158 +msgid "" +"Restarts the router gracefully (waits for participating tunnels to " +"expire)." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:159 +msgid "Shuts down the router." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:160 +msgid "" +"Shuts down the router gracefully (waits for participating tunnels to " +"expire)." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:161 +msgid "Initiates a router update from signed sources." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:165 +msgid "Blocking. Returns true iff a signed update has been found." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:166 +msgid "If requested, verifies that a reseed has been initiated." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:167 +msgid "If requested, verifies that a restart has been initiated." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:168 +msgid "If requested, verifies that a graceful restart has been initiated." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:169 +msgid "If requested, verifies that a shutdown has been initiated" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:170 +msgid "If requested, verifies that a graceful shutdown has been initiated" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:171 +msgid "Blocking. If requested, returns the status of the the update" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:174 +msgid "Fetches or sets various network related settings. Ports, addresses etc." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:176 +msgid "" +"What port is used for the TCP transport. If null is submitted, current " +"setting will be returned." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:177 +msgid "" +"What hostname is used for the TCP transport. If null is submitted, " +"current setting will be returned." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:178 +msgid "" +"Use automatically detected ip for TCP transport. If null is submitted, " +"current setting will be returned." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:179 +msgid "" +"What port is used for the UDP transport. If null is submitted, current " +"setting will be returned." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:180 +msgid "" +"What hostname is used for the UDP transport. If null is submitted, " +"current setting will be returned." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:181 +msgid "" +"Which methods should be used for detecting the ip address of the UDP " +"transport. If null is submitted, current setting will be returned." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:182 +msgid "What ip has been detected by the UDP transport." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:183 +msgid "Is UPnP enabled. If null is submitted, current setting will be returned." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:184 +msgid "" +"How many percent of bandwidth is usable for participating tunnels. If " +"null is submitted, current setting will be returned." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:185 +msgid "" +"How many KB/s of inbound bandwidth is allowed. If null is submitted, " +"current setting will be returned." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:186 +msgid "" +"How many KB/s of outbound bandwidth is allowed. If null is submitted, " +"current setting will be returned." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:187 +msgid "" +"Is laptop mode enabled (change router identity and UDP port when IP " +"changes ). If null is submitted, current setting will be returned." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:188 +msgid "" +"Token used for authenticating the client. Is provided by the server via " +"the 'Authenticate' RPC method. If null is submitted, current setting will" +" be returned." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:191 +msgid "If requested, returns the port used for the TCP transport." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:192 +msgid "If requested, returns the hostname used for the TCP transport." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:193 +msgid "" +"If requested, returns the method used for automatically detecting ip for " +"the TCP transport." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:194 +msgid "If requested, returns the port used for the UDP transport." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:195 +msgid "If requested, returns the hostname used for the UDP transport." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:196 +msgid "" +"If requested, returns methods used for detecting the ip address of the " +"UDP transport." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:197 +msgid "If requested, returns what ip has been detected by the UDP transport." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:198 +msgid "If requested, returns the UPNP setting." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:199 +msgid "" +"If requested, returns how many percent of bandwidth is usable for " +"participating tunnels." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:200 +msgid "If requested, returns how many KB/s of inbound bandwidth is allowed." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:201 +msgid "If requested, returns how many KB/s of outbound bandwidth is allowed." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:202 +msgid "If requested, returns the laptop mode." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:203 +msgid "Have the provided settings been saved." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:204 +msgid "Is a restart needed for the new settings to be used." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:207 +msgid "Allows for manipulation of advanced i2p settings" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:208 +msgid "Set:" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:208 +msgid "Set the sent key-value pairs" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:211 +msgid "SetAll:" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:211 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:214 +msgid "Set the sent key-value pairs, remove everything else" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:214 +msgid "Get:" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:217 +msgid "GetAall:" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:220 +msgid "denotes an optional value." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:221 +msgid "denotes a possibly occuring return value" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:223 +msgid "Error codes" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:224 +msgid "Standard JSON-RPC2 error codes." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:225 +msgid "JSON parse error." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:226 +msgid "Invalid request." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:227 +msgid "Method not found." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:228 +msgid "Invalid parameters." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:229 +msgid "Internal error." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:231 +msgid "I2PControl specific error codes." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:232 +msgid "Invalid password provided." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:233 +msgid "No authentication token presented." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:234 +msgid "Authentication token doesn't exist." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:235 +msgid "The provided authentication token was expired and will be removed." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:236 +msgid "" +"The version of the I2PControl API used wasn't specified, but is required " +"to be specified." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:237 +msgid "" +"The version of the I2PControl API specified is not supported by " +"I2PControl." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:8 +#, python-format +msgid "" +"I2PTunnel is a tool for interfacing with and providing services on I2P.\n" +"Destination of an I2PTunnel can be defined using a hostname,\n" +"Base32, or a full 516-byte destination " +"key.\n" +"An established I2PTunnel will be available on your client machine as " +"localhost:port.\n" +"If you wish to provide a service on I2P network, you simply create " +"I2PTunnel to the\n" +"appropriate ip_address:port. A corresponding 516-byte destination key " +"will be generated\n" +"for the service and it will become avaliable throughout I2P.\n" +"A web interface for I2PTunnel management is avaliable on\n" +"localhost:7657/i2ptunnel/." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:20 +msgid "Default Services" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:21 +msgid "Server tunnels" +msgstr "Servidor de túnels" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:23 +msgid "" +"I2P Webserver - A tunnel pointed to a Jetty webserver run\n" +"on localhost:7658 for convenient " +"and quick hosting on I2P.\n" +"
The document root is:" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:31 +msgid "Client tunnels" +msgstr "Túnels de client" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:33 +msgid "" +"A HTTP proxy used for browsing I2P and the regular internet anonymously " +"through I2P. \n" +"Browsing internet through I2P uses a random proxy specified by the " +"\"Outproxies:\" option." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:37 +msgid "An IRC tunnel to the default anonymous IRC network, Irc2P." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:38 +#, python-format +msgid "" +"The anonymous monotone\n" +"sourcecode repository for I2P" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:42 +#, python-format +msgid "" +"A SMTP service provided by postman at %(postman)s" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:45 +#, python-format +msgid "" +"The accompanying POP sevice of postman at %(postman)s" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:50 +msgid "Configuration" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:54 +msgid "Client Modes" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:55 +#: i2p2www/pages/site/docs/api/i2ptunnel.html:165 +msgid "Standard" +msgstr "Estàndard" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:56 +msgid "" +"Opens a local TCP port that connects to a service (like HTTP, FTP or " +"SMTP) on a destination inside of I2P.\n" +"The tunnel is directed to a random host from the comma seperated (\", \")" +" list of destinations." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:62 +msgid "" +"A HTTP-client tunnel. The tunnel connects to the destination specified by" +" the URL\n" +"in a HTTP request. Supports proxying onto internet if an outproxy is " +"provided. Strips HTTP connections of the following headers:" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:67 +msgid "" +"Accept, Accept-Charset, Accept-Language\n" +" and Accept-Ranges as they vary greatly between browsers and can be " +"used as an identifier." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:90 +msgid "" +"Depending on if the tunnel is using an outproxy or not it will append the" +" following User-Agent:" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:94 +msgid "Outproxy:" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:95 +msgid "Internal I2P use:" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:100 +msgid "" +"Creates a connection to a random IRC server specified by the comma " +"seprated (\", \") \n" +"list of destinations. Only a whitelisted subset of IRC commands are " +"allowed due to anonymity concerns." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:105 +msgid "Whitelist:" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:139 +msgid "Enables using the I2P router as a SOCKS proxy." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:144 +msgid "" +"Enables using the I2P router as a SOCKS proxy with the command whitelist " +"specified by\n" +"IRC client mode." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:150 +msgid "" +"Creates a HTTP tunnel and uses the HTTP request method \"CONNECT\" \n" +"to build a TCP tunnel that usually is used for SSL and HTTPS." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:156 +msgid "" +"Creates a UDP-server attached to a Streamr client I2PTunnel. The streamr " +"client tunnel will \n" +"subscribe to a streamr server tunnel." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:164 +msgid "Server Modes" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:166 +msgid "Creates a destination to a local ip:port with an open TCP port." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:171 +msgid "" +"Creates a destination to a local HTTP server ip:port. Supports gzip for " +"requests with \n" +"Accept-encoding: x-i2p-gzip, replies with Content-encoding: x-i2p-gzip in" +" such a request." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:177 +msgid "" +"Functions as both a I2PTunnel HTTP Server, and a I2PTunnel HTTP client " +"with no outproxying\n" +"capabilities. An example application would be a web application that does" +" client-type\n" +"requests, or loopback-testing an eepsite as a diagnostic tool." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:184 +msgid "" +"Creates a destination that filters the reqistration sequence of a client " +"and passes \n" +"the clients destination key as a hostname to the IRC-server." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:190 +msgid "" +"A UDP-client that connects to a media server is created. The UDP-Client " +"is coupled with a Streamr server I2PTunnel." +msgstr "" + +#: i2p2www/pages/site/docs/api/ministreaming.html:2 +#: i2p2www/pages/site/docs/api/ministreaming.html:17 +msgid "Ministreaming Library" +msgstr "" + +#: i2p2www/pages/site/docs/api/ministreaming.html:5 +msgid "Note" +msgstr "" + +#: i2p2www/pages/site/docs/api/ministreaming.html:7 +#, python-format +msgid "" +"The ministreaming library has been enhanced and extended by the\n" +"\"full\" streaming library.\n" +"Ministreaming is deprecated and is incompatible with today's " +"applications.\n" +"The following documentation is old.\n" +"Also note that streaming extends ministreaming in the same Java package " +"(net.i2p.client.streaming),\n" +"so the current API documentation contains both.\n" +"Obsolete ministreaming classes and methods are clearly marked as " +"deprecated in the Javadocs." +msgstr "" + +#: i2p2www/pages/site/docs/api/ministreaming.html:19 +#, python-format +msgid "" +"\n" +"The ministreaming library is a layer on top of the core \n" +"I2CP that allows reliable, in order, and " +"authenticated streams\n" +"of messages to operate across an unreliable, unordered, and " +"unauthenticated \n" +"message layer. Just like the TCP to IP relationship, this streaming \n" +"functionality has a whole series of tradeoffs and optimizations " +"available, but\n" +"rather than embed that functionality into the base I2P code, it has been " +"factored\n" +"off into its own library both to keep the TCP-esque complexities separate" +" and to\n" +"allow alternative optimized implementations." +msgstr "" + +#: i2p2www/pages/site/docs/api/ministreaming.html:30 +#, python-format +msgid "" +"The ministreaming library was written by mihi as a part of his \n" +"I2PTunnel application and then factored out" +" and released\n" +"under the BSD license. It is called the \"mini\"streaming library " +"because it makes\n" +"some simplifications in the implementation, while a more robust streaming" +" library\n" +"could be further optimized for operation over I2P. The two main issues " +"with \n" +"the ministreaming library are its use of the traditional TCP two phase \n" +"establishment protocol and the current fixed window size of 1. The " +"establishment\n" +"issue is minor for long lived streams, but for short ones, such as quick " +"HTTP\n" +"requests, the impact can be significant. As " +"for the window\n" +"size, the ministreaming library doesn't maintain any ID or ordering " +"within the \n" +"messages sent (or include any application level ACK or SACK), so it must " +"wait \n" +"on average twice the time it takes to send a message before sending " +"another." +msgstr "" + +#: i2p2www/pages/site/docs/api/ministreaming.html:45 +#, python-format +msgid "" +"Even with those issues, the ministreaming library performs quite well in " +"many\n" +"situations, and its API\n" +"is both quite simple and capable of remaining unchanged as different " +"streaming\n" +"implementations are introduced. The library is deployed in its own \n" +"ministreaming.jar.\n" +"Developers in Java who would like to use it can\n" +"access the API directly, while developers in other languages can use it " +"through\n" +"SAM's streaming support." +msgstr "" + +#: i2p2www/pages/site/docs/api/socks.html:4 +msgid "SOCKS and SOCKS proxies" +msgstr "" + +#: i2p2www/pages/site/docs/api/socks.html:5 +msgid "" +"\n" +"The SOCKS proxy is working as of release 0.7.1. SOCKS 4/4a/5 are " +"supported.\n" +"Enable SOCKS by creating a SOCKS client tunnel in i2ptunnel.\n" +"Both shared-clients and non-shared are supported.\n" +"There is no SOCKS outproxy so it is of limited use." +msgstr "" + +#: i2p2www/pages/site/docs/api/socks.html:12 +#, python-format +msgid "" +"\n" +"As it says on the FAQ:" +msgstr "" + +#: i2p2www/pages/site/docs/api/socks.html:15 +msgid "" +"Many applications leak sensitive\n" +"information that could identify you on the Internet. I2P only filters\n" +"connection data, but if the program you intend to run sends this\n" +"information as content, I2P has no way to protect your anonymity. For\n" +"example, some mail applications will send the IP address of the machine\n" +"they are running on to a mail server. There is no way for I2P to filter\n" +"this, thus using I2P to 'socksify' existing applications is possible, but" +"\n" +"extremely dangerous." +msgstr "" + +#: i2p2www/pages/site/docs/api/socks.html:25 +msgid "And quoting from a 2005 email:" +msgstr "" + +#: i2p2www/pages/site/docs/api/socks.html:28 +msgid "" +"... there is a reason why human and\n" +"others have both built and abandoned the SOCKS proxies. Forwarding\n" +"arbitrary traffic is just plain unsafe, and it behooves us as\n" +"developers of anonymity and security software to have the safety of\n" +"our end users foremost in our minds." +msgstr "" + +#: i2p2www/pages/site/docs/api/socks.html:36 +msgid "" +"Hoping that we can simply strap an arbitrary client on top of I2P\n" +"without auditing both its behavior and its exposed protocols for\n" +"security and anonymity is naive. Pretty much *every* application\n" +"and protocol violates anonymity, unless it was designed for it\n" +"specifically, and even then, most of those do too. That's the\n" +"reality. End users are better served with systems designed for\n" +"anonymity and security. Modifying existing systems to work in\n" +"anonymous environments is no small feat, orders of magnitude more\n" +"work that simply using the existing I2P APIs." +msgstr "" + +#: i2p2www/pages/site/docs/api/socks.html:48 +msgid "" +"The SOCKS proxy\n" +"supports standard addressbook names, but not Base64 destinations.\n" +"Base32 hashes should work as of release 0.7.\n" +"It supports outgoing connections only, i.e. an I2PTunnel Client.\n" +"UDP support is stubbed out but not working yet.\n" +"Outproxy selection by port number is stubbed out." +msgstr "" + +#: i2p2www/pages/site/docs/api/socks.html:57 +#: i2p2www/pages/site/docs/how/network-database.html:183 +#: i2p2www/pages/site/docs/how/tunnel-routing.html:281 +msgid "See Also" +msgstr "" + +#: i2p2www/pages/site/docs/api/socks.html:59 +#, python-format +msgid "" +"The notes for Meeting 81 and\n" +"Meeting 82 in March 2004." +msgstr "" + +#: i2p2www/pages/site/docs/api/socks.html:69 +msgid "If You Do Get Something Working" +msgstr "" + +#: i2p2www/pages/site/docs/api/socks.html:70 +msgid "" +"Please let us know. And please provide substantial warnings about the\n" +"risks of socks proxies." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:3 +msgid "February 2017" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:8 +#, python-format +msgid "" +"The streaming library is technically part of the \"application\" layer,\n" +"as it is not a core router function.\n" +"In practice, however, it provides a vital function for almost all\n" +"existing I2P applications, by providing a TCP-like\n" +"streams over I2P, and allowing existing apps to be easily ported to I2P.\n" +"The other end-to-end transport library for client communication is the\n" +"datagram library." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:18 +#, python-format +msgid "" +"The streaming library is a layer on top of the core \n" +"I2CP API that allows reliable, in-order, and " +"authenticated streams\n" +"of messages to operate across an unreliable, unordered, and " +"unauthenticated \n" +"message layer. Just like the TCP to IP relationship, this streaming \n" +"functionality has a whole series of tradeoffs and optimizations " +"available, but\n" +"rather than embed that functionality into the base I2P code, it has been " +"factored\n" +"off into its own library both to keep the TCP-esque complexities separate" +" and to\n" +"allow alternative optimized implementations." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:29 +msgid "" +"In consideration of the relatively high cost of messages, \n" +"the streaming library's protocol for scheduling and delivering those " +"messages has been optimized to\n" +"allow individual messages passed to contain as much information as is " +"available.\n" +"For instance, a small HTTP transaction proxied through the streaming " +"library can\n" +"be completed in a single round trip - the first messages bundle a SYN, " +"FIN, and\n" +"the small HTTP request payload, and the reply bundles the SYN,\n" +"FIN, ACK, and the HTTP response payload. While an additional\n" +"ACK must be transmitted to tell the HTTP server that the SYN/FIN/ACK has " +"been\n" +"received, the local HTTP proxy can often deliver the full response to the" +" browser \n" +"immediately." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:42 +msgid "" +"The streaming library bears much resemblance to an \n" +"abstraction of TCP, with its sliding windows, congestion control " +"algorithms\n" +"(both slow start and congestion avoidance), and general packet behavior " +"(ACK,\n" +"SYN, FIN, RST, rto calculation, etc)." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:49 +msgid "" +"The streaming library is\n" +"a robust library\n" +"which is optimized for operation over I2P.\n" +"It has a one-phase setup, and\n" +"it contains a full windowing implementation." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:58 +msgid "API" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:60 +#, python-format +msgid "" +"The streaming library API provides a standard socket paradigm to Java " +"applications.\n" +"The lower-level I2CP API is completely hidden, " +"except that\n" +"applications may pass I2CP parameters " +"through the\n" +"streaming library, to be interpreted by I2CP." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:67 +#, python-format +msgid "" +"The standard interface to the streaming lib is for the application to use" +" the\n" +"I2PSocketManagerFactory to create an\n" +"I2PSocketManager. The application then asks " +"the\n" +"socket manager for an I2PSession, which will " +"cause\n" +"a connection to the router via I2CP. The " +"application\n" +"can then setup connections with an I2PSocket " +"or\n" +"receive connections with an I2PServerSocket." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:82 +#, python-format +msgid "Here are the full streaming library Javadocs." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:86 +msgid "For a good example of usage, see the i2psnark code." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:91 +msgid "Options and Defaults" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:92 +#, python-format +msgid "" +"The options and current default values are listed below.\n" +"Options are case-sensitive and may be set for the whole router, for a " +"particular client, or for an individual socket on a\n" +"per-connection basis.\n" +"Many values are tuned for HTTP performance over typical I2P conditions. " +"Other applications such\n" +"as peer-to-peer services are strongly encouraged to\n" +"modify as necessary, by setting the options and passing them via the call" +" to\n" +"I2PSocketManagerFactory.createManager(_i2cpHost," +" _i2cpPort, opts).\n" +"Time values are in ms." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:103 +#, python-format +msgid "" +"Note that higher-layer APIs, such as SAM,\n" +"BOB, and I2PTunnel," +"\n" +"may override these defaults with their own defaults.\n" +"Also note that many options only apply to servers listening for incoming " +"connections." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:110 +msgid "" +"As of release 0.9.1, most, but not all, options may be changed on an " +"active socket manager or session.\n" +"See the javadocs for details." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:117 +#: i2p2www/pages/site/docs/protocol/i2cp.html:103 +#: i2p2www/pages/site/docs/protocol/i2cp.html:478 +msgid "Option" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:117 +#: i2p2www/pages/site/docs/protocol/i2cp.html:107 +#: i2p2www/pages/site/docs/protocol/i2cp.html:482 +msgid "Default" +msgstr "Per defecte" + +#: i2p2www/pages/site/docs/api/streaming.html:117 +#: i2p2www/pages/site/docs/how/elgamal-aes.html:264 +#: i2p2www/pages/site/docs/how/peer-selection.html:282 +msgid "Notes" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:119 +msgid "" +"Comma- or space-separated list of Base64 peer Hashes used for either " +"access list or blacklist." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:121 +#: i2p2www/pages/site/docs/api/streaming.html:129 +#: i2p2www/pages/site/docs/api/streaming.html:135 +#: i2p2www/pages/site/docs/api/streaming.html:141 +#: i2p2www/pages/site/docs/api/streaming.html:148 +#: i2p2www/pages/site/docs/api/streaming.html:160 +#: i2p2www/pages/site/docs/api/streaming.html:171 +#: i2p2www/pages/site/docs/api/streaming.html:200 +#: i2p2www/pages/site/docs/api/streaming.html:212 +#: i2p2www/pages/site/docs/api/streaming.html:220 +#: i2p2www/pages/site/docs/api/streaming.html:243 +#: i2p2www/pages/site/docs/api/streaming.html:260 +#: i2p2www/pages/site/docs/api/streaming.html:272 +#: i2p2www/pages/site/docs/api/streaming.html:278 +#: i2p2www/pages/site/docs/api/streaming.html:284 +#: i2p2www/pages/site/docs/api/streaming.html:298 +#: i2p2www/pages/site/docs/api/streaming.html:305 +#: i2p2www/pages/site/docs/api/streaming.html:312 +#: i2p2www/pages/site/docs/api/streaming.html:337 +#: i2p2www/pages/site/docs/api/streaming.html:344 +#: i2p2www/pages/site/docs/api/streaming.html:351 +#, python-format +msgid "As of release %(release)s." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:125 +#: i2p2www/pages/site/docs/api/streaming.html:133 +msgid "Use the access list as a whitelist for incoming connections." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:127 +msgid "The name or number of the signature type for a transient destination." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:139 +msgid "Use the access list as a blacklist for incoming connections." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:153 +msgid "Whether to respond to incoming pings" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:165 +msgid "" +"Comma- or space-separated list of Base64 peer Hashes to be\n" +"blacklisted for incoming connections to ALL destinations in the context.\n" +"This option must be set in the context properties, NOT in the " +"createManager() options argument.\n" +"Note that setting this in the router context will not affect clients " +"outside the\n" +"router in a separate JVM and context." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:175 +msgid "" +"How much transmit data (in bytes) will be accepted that hasn't been " +"written out yet." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:179 +msgid "" +"When we're in congestion avoidance, we grow the window size at the rate\n" +"of 1/(windowSize*factor). In standard TCP, window sizes are" +" in bytes,\n" +"while in I2P, window sizes are in messages.\n" +"A higher number means slower growth." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:186 +msgid "" +"How long to wait after instantiating a new con \n" +"before actually attempting to connect. If this is\n" +"<= 0, connect immediately with no initial data. If greater than 0, " +"wait\n" +"until the output stream is flushed, the buffer fills, \n" +"or that many milliseconds pass, and include any initial data with the SYN." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:194 +msgid "" +"How long to block on connect, in milliseconds. Negative means " +"indefinitely. Default is 5 minutes." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:198 +msgid "" +"Whether to disable warnings in the logs when an incoming connection is " +"rejected due to connection limits." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:204 +msgid "" +"Comma- or space-separated list of Base64 peer Hashes or host names to be\n" +"contacted using an alternate DSA destination.\n" +"Only applies if multisession is enabled and the primary session is non-" +"DSA\n" +"(generally for shared clients only).\n" +"This option must be set in the context properties, NOT in the " +"createManager() options argument.\n" +"Note that setting this in the router context will not affect clients " +"outside the\n" +"router in a separate JVM and context." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:216 +msgid "" +"Whether to listen only for the streaming protocol.\n" +"Setting to true will prohibit communication with Destinations earlier " +"than release 0.7.1\n" +"(released March 2009). Set to true if running multiple protocols on this " +"Destination." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:224 +msgid "" +"(0=noop, 1=disconnect)\n" +"What to do on an inactivity timeout - do nothing, disconnect, or send a " +"duplicate ack." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:230 +msgid "Idle time before sending a keepalive" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:233 +msgid "Delay before sending an ack" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:235 +msgid "" +"The initial value of the resend delay field in the packet header, times " +"1000.\n" +"Not fully implemented; see below." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:240 +msgid "" +"Initial timeout\n" +"(if no sharing data available)." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:247 +msgid "" +"Initial round trip time estimate\n" +"(if no sharing data available).\n" +"Disabled as of release 0.9.8; uses actual RTT." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:253 +msgid "if no sharing data available" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:253 +msgid "" +"In standard TCP, window sizes are in bytes, while in I2P, window sizes " +"are in messages." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:265 +msgid "" +"(0 or negative value means unlimited)\n" +"This is a total limit for incoming and outgoing combined." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:270 +msgid "Incoming connection limit (per peer; 0 means disabled)" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:276 +#: i2p2www/pages/site/docs/api/streaming.html:282 +msgid "(per peer; 0 means disabled)" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:288 +msgid "The MTU in bytes." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:292 +msgid "Maximum number of retransmissions before failure." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:296 +msgid "Incoming connection limit (all peers; 0 means disabled)" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:302 +#: i2p2www/pages/site/docs/api/streaming.html:309 +msgid "" +"(all peers; 0 means disabled)\n" +"Use with caution as exceeding this will disable a server for a long time." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:318 +msgid "" +"(2=interactive not supported)\n" +"This doesn't currently do anything, but setting it to a value other than " +"1 will cause an error." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:323 +msgid "How long to block on read, in milliseconds. Negative means indefinitely." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:327 +msgid "" +"When we're in slow start, we grow the window size at the rate\n" +"of 1/(factor). In standard TCP, window sizes are in bytes,\n" +"while in I2P, window sizes are in messages.\n" +"A higher number means slower growth." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:334 +#: i2p2www/pages/site/docs/api/streaming.html:341 +#: i2p2www/pages/site/docs/api/streaming.html:348 +msgid "" +"Ref: RFC 2140. Floating point value.\n" +"May be set only via context properties, not connection options." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:355 +msgid "" +"How long to block on write/flush, in milliseconds. Negative means " +"indefinitely." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:363 +msgid "Protocol Specification" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:365 +msgid "See the Streaming Library Specification page." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:369 +msgid "Implementation Details" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:371 +msgid "Setup" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:372 +msgid "" +"The initiator sends a packet with the SYNCHRONIZE flag set. This packet " +"may contain the initial data as well.\n" +"The peer replies with a packet with the SYNCHRONIZE flag set. This packet" +" may contain the initial response data as well." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:377 +msgid "" +"The initiator may send additional data packets, up to the initial window " +"size, before receiving the SYNCHRONIZE response.\n" +"These packets will also have the send Stream ID field set to 0.\n" +"Recipients must buffer packets received on unknown streams for a short " +"period of time, as they may\n" +"arrive out of order, in advance of the SYNCHRONIZE packet." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:384 +msgid "MTU Selection and Negotiation" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:385 +msgid "" +"The maximum message size (also called the MTU / MRU) is negotiated to the" +" lower value supported by\n" +"the two peers. As tunnel messages are padded to 1KB, a poor MTU selection" +" will lead to\n" +"a large amount of overhead.\n" +"The MTU is specified by the option i2p.streaming.maxMessageSize.\n" +"The current default MTU of 1730 was chosen to fit precisely into two 1K " +"I2NP tunnel messages,\n" +"including overhead for the typical case." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:394 +msgid "" +"The first message in a connection includes a 387 byte (typical) " +"Destination added by the streaming layer,\n" +"and usually a 898 byte (typical) LeaseSet, and Session keys, bundled in " +"the Garlic message by the router.\n" +"(The LeaseSet and Session Keys will not be bundled if an ElGamal Session " +"was previously established).\n" +"Therefore, the goal of fitting a complete HTTP request in a single 1KB " +"I2NP message is not always attainable.\n" +"However, the selection of the MTU, together with careful implementation " +"of fragmentation\n" +"and batching strategies in the tunnel gateway processor, are important " +"factors in network bandwidth,\n" +"latency, reliability, and efficiency, especially for long-lived " +"connections." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:405 +#, python-format +msgid "" +"Data integrity is assured by the gzip CRC-32 checksum implemented in\n" +"the I2CP layer.\n" +"There is no checksum field in the streaming protocol." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:413 +#, python-format +msgid "" +"Each packet is sent through I2P as a single message (or as an individual " +"clove in a\n" +"Garlic Message). Message encapsulation " +"is implemented\n" +"in the underlying I2CP, I2NP, and\n" +"tunnel message layers. There is no " +"packet delimiter\n" +"mechanism or payload length field in the streaming protocol." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:423 +msgid "Optional Delay" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:424 +msgid "" +"Data packets may include an optional delay field specifying the requested" +" delay,\n" +"in ms, before the receiver should ack the packet.\n" +"Valid values are 0 to 60000 inclusive.\n" +"A value of 0 requests an immediate ack.\n" +"This is advisory only, and receivers should delay slightly so that\n" +"additional packets may be acknowledged with a single ack.\n" +"Some implementations may include an advisory value of (measured RTT / 2) " +"in this field.\n" +"For nonzero optional delay values, receivers should limit the maximum " +"delay\n" +"before sending an ack to a few seconds at most.\n" +"Optional delay values greater than 60000 indicate choking, see below." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:438 +msgid "Receive Window and Choking" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:439 +msgid "" +"TCP headers include the receive window in bytes.\n" +"The streaming protocol does not contain a receive window, it uses only a " +"simple choke/unchoke indication.\n" +"Each endpoint must maintain its own estimate of the far-end receive " +"window, in either bytes or packets.\n" +"The recommended minimum buffer size for receiver implementations is 128 " +"packets or 217 KB (approximately 128x1730).\n" +"Because of I2P netowrk latency, packet drops, and the resulting " +"congestion control,\n" +"a buffer of this size is rarely filled.\n" +"Overflow is, however, likely to occur on high-bandwidth \"local " +"loopback\" (same-router) connections." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:448 +msgid "" +"To quickly indicate and smoothly recover from overflow conditions,\n" +"there is a simple mechanism for pushback in the streaming protocol.\n" +"If a packet is received with an optional delay field of value of 60001 or" +" higher,\n" +"that indicates \"choking\" or a receive window of zero.\n" +"A packet with an optional delay field of value of 60000 or less indicates" +" \"unchoking\".\n" +"Packets without an optional delay field do not affect the choke/unchoke " +"state." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:456 +msgid "" +"After being choked, no more packets with data should be sent until the " +"transmitter is unchoked,\n" +"except for occasional \"probe\" data packets to compensate for possible " +"lost unchoke packets.\n" +"The choked endpoint should start a \"persist timer\" to control the " +"probing, as in TCP.\n" +"The unchoking endpoint should send several packets with this field set,\n" +"or continue sending them periodically until data packets are received " +"again.\n" +"Maximum time to wait for unchoking is implementation-dependent.\n" +"Transmitter window size and congestion control strategy after being " +"unchoked is implementation-dependent." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:467 +msgid "Congestion Control" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:468 +msgid "" +"The streaming lib uses standard slow-start (exponential window growth) " +"and congestion avoidance (linear window growth)\n" +"phases, with exponential backoff.\n" +"Windowing and acknowledgments use packet count, not byte count." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:475 +msgid "Close" +msgstr "Tanca" + +#: i2p2www/pages/site/docs/api/streaming.html:476 +msgid "" +"Any packet, including one with the SYNCHRONIZE flag set, may have the " +"CLOSE flag sent as well.\n" +"The connection is not closed until the peer responds with the CLOSE flag." +"\n" +"CLOSE packets may contain data as well." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:484 +msgid "" +"There is no ping function at the I2CP layer (equivalent to ICMP echo) or " +"in datagrams.\n" +"This function is provided in streaming.\n" +"Pings and pongs may not be combined with a standard streaming packet;\n" +"if the ECHO option is set, then\n" +"most other flags, options, ackThrough, sequenceNum, NACKs, etc. are " +"ignored." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:492 +msgid "" +"A ping packet must have the ECHO, SIGNATURE_INCLUDED, and FROM_INCLUDED " +"flags set.\n" +"The sendStreamId must be greater than zero, and the receiveStreamId is " +"ignored.\n" +"The sendStreamId may or may not correspond to an existing connection." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:498 +msgid "" +"A pong packet must have the ECHO flag set.\n" +"The sendStreamId must be zero, and the receiveStreamId is the " +"sendStreamId from the ping.\n" +"Prior to release 0.9.18, the pong packet does not include any payload " +"that was contained in the ping." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:504 +msgid "" +"As of release 0.9.18, pings and pongs may contain a payload.\n" +"The payload in the ping, up to a maximum of 32 bytes, is returned in the " +"pong." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:509 +msgid "" +"Streaming may be configured to disable sending pongs with the " +"configuration i2p.streaming.answerPings=false." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:514 +msgid "Control Block Sharing" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:515 +msgid "" +"The streaming lib supports \"TCP\" Control Block sharing.\n" +"This shares three important streaming lib parameters\n" +"(window size, round trip time, round trip time variance)\n" +"across connections to the same remote peer.\n" +"This is used for \"temporal\" sharing at connection open/close time,\n" +"not \"ensemble\" sharing during a connection (See\n" +"RFC 2140).\n" +"There is a separate share per ConnectionManager (i.e. per local " +"Destination)\n" +"so that there is no information leakage to other Destinations on the\n" +"same router.\n" +"The share data for a given peer expires after a few minutes.\n" +"The following Control Block Sharing parameters can be set per router:" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:536 +msgid "Other Parameters" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:537 +msgid "" +"The following parameters are hardcoded, but may be of interest for " +"analysis:" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:556 +#: i2p2www/pages/site/docs/how/network-database.html:897 +msgid "History" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:557 +msgid "" +"The streaming library has grown organically for I2P - first mihi " +"implemented the\n" +"\"mini streaming library\" as part of I2PTunnel, which was limited to a " +"window\n" +"size of 1 message (requiring an ACK before sending the next one), and " +"then it was\n" +"refactored out into a generic streaming interface (mirroring TCP sockets)" +" and the\n" +"full streaming implementation was deployed with a sliding window protocol" +" and \n" +"optimizations to take into account the high bandwidth x delay product. " +"Individual\n" +"streams may adjust the maximum packet size and other options. The default" +"\n" +"message size is selected to fit precisely in two 1K I2NP tunnel messages," +"\n" +"and is a reasonable tradeoff between the bandwidth costs of \n" +"retransmitting lost messages, and the latency and overhead of multiple " +"messages." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:571 +#: i2p2www/pages/site/docs/how/elgamal-aes.html:344 +#: i2p2www/pages/site/docs/how/garlic-routing.html:251 +#: i2p2www/pages/site/docs/how/network-database.html:902 +#: i2p2www/pages/site/docs/how/peer-selection.html:265 +#: i2p2www/pages/site/docs/how/tunnel-routing.html:255 +#: i2p2www/pages/site/docs/protocol/i2cp.html:723 +#: i2p2www/pages/site/docs/protocol/i2np.html:226 +#: i2p2www/pages/site/docs/transport/ntcp.html:545 +#: i2p2www/pages/site/docs/transport/ssu.html:579 +#: i2p2www/pages/site/docs/tunnels/implementation.html:506 +msgid "Future Work" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:572 +msgid "" +"The behavior of the streaming library has a profound impact on\n" +"application-level performance, and as such, is an important\n" +"area for further analysis." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:578 +msgid "Additional tuning of the streaming lib parameters may be necessary." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:581 +#, python-format +msgid "" +"Another area for research is the interaction of the streaming lib with " +"the\n" +"NTCP and SSU transport layers.\n" +"See the NTCP discussion page for details." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:586 +msgid "" +"The interaction of the routing algorithms with the streaming lib strongly" +" affects performance.\n" +"In particular, random distribution of messages to multiple tunnels in a " +"pool\n" +"leads to a high degree of out-of-order delivery which results in smaller " +"window\n" +"sizes than would otherwise be the case. The router currently routes \n" +"messages for a single from/to destination pair through a consistent set \n" +"of tunnels, until tunnel expiration or delivery failure. The router's \n" +"failure and tunnel selection algorithms should be reviewed for possible \n" +"improvements." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:596 +msgid "The data in the first SYN packet may exceed the receiver's MTU." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:599 +msgid "The DELAY_REQUESTED field could be used more." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:602 +msgid "" +"Duplicate initial SYNCHRONIZE packets on short-lived streams may not be " +"recognized and removed." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:605 +msgid "Don't send the MTU in a retransmission." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:608 +msgid "" +"Data is sent along unless the outbound window is full.\n" +"(i.e. no-Nagle or TCP_NODELAY)\n" +"Probably should have a configuration option for this." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:613 +msgid "" +"zzz has added debug code to the streaming library to log packets in a " +"wireshark-compatible\n" +"(pcap) format; Use this to further analyze performance.\n" +"The format may require enhancement to map more streaming lib parameters " +"to TCP fields." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:618 +msgid "" +"There are proposals to replace the streaming lib with standard TCP\n" +"(or perhaps a null layer together with raw sockets).\n" +"This would unfortunately be incompatible with the streaming lib\n" +"but it would be good to compare the performance of the two." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:3 +msgid "January 2017" +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:7 +msgid "" +"There are several bittorrent clients and trackers on I2P.\n" +"As I2P addressing uses a Destination instead of an IP and port, minor\n" +"changes are required to tracker and client software for operation on I2P." +"\n" +"These changes are specified below.\n" +"Note carefully the guidelines for compatibility with older I2P clients " +"and trackers." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:15 +msgid "" +"This page specifies protocol details common to all clients and trackers.\n" +"Specific clients and trackers may implement other unique features or " +"protocols." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:20 +msgid "We welcome additional ports of client and tracker software to I2P." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:26 +msgid "Announces" +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:27 +msgid "" +"Clients generally include a fake port=6881 parameter in the announce, for" +" compatibility with older trackers.\n" +"Trackers may ignore the port parameter, and should not require it." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:32 +#, python-format +msgid "" +"The ip parameter is the base 64 of the client's\n" +"Destination,\n" +"using the I2P Base 64 alphabet [A-Z][a-z][0-9]-~.\n" +"Destinations\n" +"are 387+ bytes, so the Base 64 is 516+ bytes.\n" +"Clients generally append \".i2p\" to the Base 64 Destination for " +"compatibility with older trackers.\n" +"Trackers should not require an appended \".i2p\"." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:42 +msgid "Other parameters are the same as in standard bittorrent." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:46 +msgid "" +"Current Destinations for clients are 387 or more bytes (516 or more in " +"Base 64 encoding).\n" +"A reasonable maximum to assume, for now, is 475 bytes.\n" +"As the tracker must decode the Base64 to deliver compact responses (see " +"below),\n" +"the tracker should probably decode and reject bad Base64 when announced." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:53 +msgid "" +"The default response type is non-compact. Clients may request a compact " +"response with\n" +"the parameter compact=1. A tracker may, but is not required to, return\n" +"a compact response when requested." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:59 +msgid "" +"Developers of new I2P clients\n" +"are strongly encouraged to implemenent announces over their own tunnel " +"rather than\n" +"the HTTP client proxy at port 4444. Doing so is both more efficient and " +"it allows\n" +"destination enforcement by the tracker (see below)." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:66 +msgid "" +"There are no known I2P clients or trackers that currently support UDP " +"announce/responses." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:71 +msgid "Non-Compact Tracker Responses" +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:72 +msgid "" +"The non-compact response is just as in standard bittorrent, with an I2P " +"\"ip\"." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:76 +msgid "" +"Trackers generally include a fake port key, or use the port from the " +"announce, for compatibility with older clients.\n" +"Clients must ignore the port parameter, and should not require it." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:81 +#, python-format +msgid "" +"The value of the ip key is the base 64 of the client's\n" +"Destination, as " +"described above.\n" +"Trackers generally append \".i2p\" to the Base 64 Destination if it " +"wasn't in the announce ip, for compatibility with older clients.\n" +"Clients should not require an appended \".i2p\" in the responses." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:88 +msgid "Other response keys and values are the same as in standard bittorrent." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:94 +msgid "Compact Tracker Responses" +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:95 +#, python-format +msgid "" +"In the compact response, the value of the \"peers\" dictionary key is a " +"single byte string,\n" +"whose length is a multiple of 32 bytes.\n" +"This string contains the concatenated\n" +"32-byte SHA-256 Hashes\n" +"of the binary\n" +"Destinations\n" +"of the peers.\n" +"This hash must be computed by the tracker, unless destination enforcement" +"\n" +"(see below) is used, in which case the hash delivered in the X-I2P-" +"DestHash\n" +"or X-I2P-DestB32 HTTP headers may be converted to binary and stored.\n" +"The peers key may be absent, or the peers value may be zero-length." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:109 +msgid "" +"While compact response support is optional for both clients and trackers," +" it is highly\n" +"recommended as it reduces the nominal response size by over 90%." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:116 +msgid "Destination Enforcement" +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:117 +#, python-format +msgid "" +"Some, but not all, I2P bittorrent clients announce over their own " +"tunnels.\n" +"Trackers may choose to prevent spoofing by requiring this, and verifying " +"the\n" +"client's\n" +"Destination\n" +"using HTTP headers added by the I2PTunnel HTTP Server tunnel.\n" +"The headers are X-I2P-DestHash, X-I2P-DestB64, and X-I2P-DestB32, which " +"are\n" +"different formats for the same information.\n" +"These headers cannot be spoofed by the client.\n" +"A tracker enforcing destinations need not require the ip announce " +"parameter at all." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:129 +msgid "" +"As several clients use the HTTP proxy instead of their own tunnel for " +"announces,\n" +"destination enforcement will prevent usage by those clients unless or " +"until\n" +"those clients are converted to announcing over their own tunnel." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:135 +msgid "" +"Unfortunately, as the network grows, so will the amount of maliciousness," +"\n" +"so we expect that all trackers will eventually enforce destinations.\n" +"Both tracker and client developers should anticipate it." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:143 +msgid "Announce Host Names" +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:144 +#, python-format +msgid "" +"Announce URL host names in torrent files generally follow the\n" +"I2P naming standards.\n" +"In addition to host names from address books and \".b32.i2p\" Base 32 " +"hostnames,\n" +"the full Base 64 Destination (with [or without?] \".i2p\" appended) " +"should be supported.\n" +"Non-open trackers should recognize their own host name in any of these " +"formats." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:152 +msgid "" +"To preserve anonymity,\n" +"clients should generally ignore non-I2P announce URLs in torrent files." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:159 +msgid "Client Connections" +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:160 +msgid "" +"Client-to-client connections use the standard protocol over TCP.\n" +"There are no known I2P clients that currently support uTP communication." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:165 +#, python-format +msgid "" +"I2P uses 387+ byte Destinations\n" +"for addresses, as explained above." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:170 +msgid "" +"If the client has only the hash of the destination (such as from a " +"compact response or PEX), it must perform a lookup\n" +"by encoding it with Base 32, appending \".b32.i2p\", and querying the " +"Naming Service,\n" +"which will return the full Destination if available." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:176 +msgid "" +"If the client has a peer's full Destination it received in a non-compact " +"response, it should use it\n" +"directly in the connection setup.\n" +"Do not convert a Destination back to a Base 32 hash for lookup, this is " +"quite inefficient." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:183 +msgid "Cross-Network Prevention" +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:184 +msgid "" +"To preserve anonymity,\n" +"I2P bittorrent clients generally do not support non-I2P announces or peer" +" connections.\n" +"I2P HTTP outproxies often block announces.\n" +"There are no known SOCKS outproxies supporting bittorrent traffic." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:191 +msgid "" +"To prevent usage by non-I2P clients via an HTTP inproxy, I2P trackers " +"often\n" +"block accesses or announces that contain an X-Forwarded-For HTTP header.\n" +"Trackers should reject standard network announces with IPv4 or IPv6 IPs, " +"and not deliver them in responses." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:200 +#, python-format +msgid "" +"I2P PEX is based on ut_pex.\n" +"As there does not appear to be a formal specification of ut_pex " +"available,\n" +"it may be necessary to review the libtorrent source for assistance.\n" +"It is an extension message, identified as \"i2p_pex\" in\n" +"the extension " +"handshake.\n" +"It contains a bencoded dictionary with up to 3 keys, \"added\", " +"\"added.f\", and \"dropped\".\n" +"The added and dropped values are each a single byte string, whose length " +"is a multiple of 32 bytes.\n" +"These byte strings are the concatenated SHA-256 Hashes of the binary\n" +"Destinations\n" +"of the peers.\n" +"This is the same format as the peers dictionary value in the i2p compact " +"response format specified above.\n" +"The added.f value, if present, is the same as in ut_pex." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:218 +msgid "" +"DHT support is included in the i2psnark client as of version 0.9.2.\n" +"Preliminary differences from\n" +"BEP 5\n" +"are described below, and are subject to change.\n" +"Contact the I2P developers if you wish to develop a client supporting DHT." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:226 +msgid "" +"Unlike standard DHT, I2P DHT does not use a bit in the options handshake," +" or the PORT message.\n" +"It is advertised with an extension message, identified as \"i2p_dht\" in\n" +"the extension " +"handshake.\n" +"It contains a bencoded dictionary with two keys, \"port\" and \"rport\", " +"both integers." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:233 +msgid "" +"The UDP (datagram) port listed in the compact node info is used\n" +"to receive repliable (signed) datagrams.\n" +"This is used for queries, except for announces.\n" +"We call this the \"query port\".\n" +"This is the \"port\" value from the extension message.\n" +"Queries use I2CP protocol number 17." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:242 +msgid "" +"In addition to that UDP port, we use a second datagram\n" +"port equal to the query port + 1. This is used to receive\n" +"unsigned (raw) datagrams for replies, errors, and announces.\n" +"This port provides increased efficiency since replies\n" +"contain tokens sent in the query, and need not be signed.\n" +"We call this the \"response port\".\n" +"This is the \"rport\" value from the extension message.\n" +"It must be 1 + the query port.\n" +"Responses and announces use I2CP protocol number 18." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:254 +msgid "" +"Compact peer info is 32 bytes (32 byte SHA256 Hash)\n" +"instead of 4 byte IP + 2 byte port. There is no peer port.\n" +"In a response, the \"values\" key is a list of strings, each containing a" +" single compact peer info." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:260 +msgid "" +"Compact node info is 54 bytes (20 byte SHA1 Hash + 32 byte SHA256 Hash + " +"2 byte port)\n" +"instead of 20 byte SHA1 Hash + 4 byte IP + 2 byte port.\n" +"In a response, the \"nodes\" key is a\n" +"single byte string with concatenated compact node info." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:267 +msgid "" +"Secure node ID requirement: To make various DHT attacks more difficult,\n" +"the first 4 bytes of the Node ID must match the first 4 bytes of the " +"destination Hash,\n" +"and the next two bytes of the Node ID must match the next two bytes of " +"the\n" +"destination hash exclusive-ORed with the port." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:274 +msgid "" +"In a torrent file,\n" +"the trackerless torrent dictionary \"nodes\" key is TBD.\n" +"It could be a list of\n" +"32 byte binary strings (SHA256 Hashes) instead of a list of lists\n" +"containing a host string and a port integer.\n" +"Alternatives: A single byte string with concatenated hashes,\n" +"or a list of strings alone." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:286 +msgid "Datagram (UDP) Trackers" +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:287 +msgid "" +"UDP tracker support in clients and trackers is not yet available.\n" +"Preliminary differences from\n" +"BEP 15\n" +"are described below, and are subject to change.\n" +"Contact the I2P developers if you wish to develop a client or tracker " +"supporting datagram announces." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:295 +msgid "" +"A UDP tracker listens on two ports.\n" +"The \"query port\" is the advertised port, and is used to receive " +"repliable (signed) datagrams, for the connect request only.\n" +"The \"response port\" is used to receive unsigned (raw) datagrams, and is" +" the source port for all replies.\n" +"The response port is arbitrary.\n" +"A client sends and receives on a single port only.\n" +"It receives only unsigned (raw) datagrams.\n" +"Raw datagrams provides increased efficiency for replies since they " +"contain tokens sent in the query, and need not be signed." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:305 +msgid "" +"In the announce request, the 4-byte IP is replaced by a 32-byte hash, and" +" the port is still present,\n" +"although it may be ignored by the tracker.\n" +"In the announce response, each 4-byte IP and 2-byte port is replaced by a" +" 32-byte hash (compact peer info), and no port is present.\n" +"The client sends the announce request and scrape request to the source " +"port in the announce response packet.\n" +"The connect request, connect response, scrape request, scrape response, " +"and error response are the same as in BEP 15." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:313 +msgid "" +"Source addresses in I2P cannot be spoofed, so it is possible to use a " +"simplified protocol\n" +"with 2 packets instead of 4, omitting the connect request and response.\n" +"In this case, the announce request would be a repliable datagram sent to " +"the tracker's query port,\n" +"and the tracker would not require a response port.\n" +"While this is more efficient, it would be more difficult to modify an " +"existing tracker to support this mode.\n" +"The URL for the 4-packet-mode tracker would use standard \"udp://\" " +"prefix. \n" +"The URL for a modified 2-packet-mode tracker would require a different " +"prefix if both modes are supported in I2P." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:326 +#: i2p2www/pages/site/docs/how/intro.html:184 +msgid "Additional Information" +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:328 +#, python-format +msgid "" +"I2P bittorrent standards are generally discussed on %(zzz)s." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:331 +#, python-format +msgid "" +"A chart of current tracker software capabilities is also available there." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:334 +#, python-format +msgid "" +"The\n" +"I2P bittorrent FAQ" +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:338 +#, python-format +msgid "DHT on I2P discussion" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:2 +msgid "Embedding I2P in your Application" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:3 +msgid "April 2015" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:8 +msgid "" +"This page is about bundling the entire I2P router binary with your " +"application.\n" +"It is not about writing an application to work with I2P (either bundled " +"or external)." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:13 +msgid "" +"Lots of projects are bundling, or talking about bundling, I2P. That's " +"great if done right.\n" +"If done wrong, it could cause real harm to our network.\n" +"The I2P router is complex, and it can be a challenge to hide all the " +"complexity from your users.\n" +"This page discusses some general guidelines." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:23 +msgid "Talk to us" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:24 +msgid "" +"Start a dialog. We're here to help. Applications that embed I2P are the " +"most promising - and exciting -\n" +"opportunities for us to grow the network and improve anonymity for " +"everyone." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:30 +msgid "Choose your router wisely" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:31 +msgid "" +"If your application is in Java or Scala, it's an easy choice - use the " +"Java router.\n" +"If in C/C++, we recommend i2pd. The development of i2pcpp has stopped.\n" +"For apps in other languages, best to use SAM or BOB or SOCKS and bundle " +"the Java router as a separate process.\n" +"Some of the following only applies to the Java router." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:39 +msgid "Licensing" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:40 +msgid "Ensure you meet the license requirements of the software you are bundling." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:45 +msgid "Verify default configuration" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:46 +msgid "" +"A correct default configuration is crucial. Most users will not change " +"the defaults.\n" +"The defaults for your application may need to be different than the " +"defaults for the router you are bundling.\n" +"Override the router defaults if necessary." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:51 +msgid "" +"Some important defaults to review: Max bandwidth, tunnel quantity and " +"length, max participating tunnels.\n" +"A lot of this depends on the expected bandwidth and usage patterns of " +"your app." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:55 +msgid "" +"Configure enough bandwidth and tunnels to allow your users to contribute " +"to the network.\n" +"Consider disabling external I2CP, as you probably don't need it and it " +"would conflict with any other running I2P instance.\n" +"Also look at the configs for disabling killing of the JVM on exit, for " +"example." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:62 +msgid "Participating Traffic Considerations" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:63 +msgid "" +"It may be tempting for you to disable participating traffic.\n" +"There's several ways to do this (hidden mode, setting max tunnels to 0, " +"setting shared bandwidth below 12 KBytes/sec).\n" +"Without participating traffic, you don't have to worry about graceful " +"shutdown,\n" +"your users don't see bandwidth usage not generated by them, etc.\n" +"However, there's lots of reasons why you should allow participating " +"tunnels." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:70 +msgid "" +"First of all, the router doesn't work that well if it doesn't have a " +"chance to \"integrate\" with the network,\n" +"which is helped tremendously by others building tunnels through you." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:74 +msgid "" +"Secondly, over 90% of the routers in the current network allow " +"participating traffic.\n" +"It's the default in the Java router.\n" +"If your application doesn't route for others and it gets really popular, " +"then it's a leech on the network,\n" +"and it upsets the balance we have now.\n" +"If it gets really big, then we become Tor, and spend our time begging for" +" people to enable relaying." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:81 +msgid "" +"Thirdly, participating traffic is cover traffic that helps your users' " +"anonymity." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:84 +msgid "" +"We strongly discourage you from disabling participating traffic by " +"default.\n" +"If you do this and your application gets hugely popular, it could break " +"the network." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:90 +msgid "Persistence" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:91 +msgid "" +"You must save the router's data (netdb, configuration, etc.) between runs" +" of the router.\n" +"I2P does not work well if you must reseed each startup, and that's a huge" +" load on our reseed servers, and not very good for anonymity either.\n" +"Even if you bundle router infos, I2P needs saved profile data for best " +"performance." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:99 +msgid "Configurability" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:100 +msgid "" +"Give your users a way to change the configuration of the important " +"settings.\n" +"We understand that you will probably want to hide most of I2P's " +"complexity, but it's important to show some basic settings.\n" +"In addition to the defaults above, some network settings such as UPnP, " +"IP/port may be helpful." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:108 +msgid "Floodfill Considerations" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:109 +msgid "" +"Above a certain bandwidth setting, and meeting other health criteria, " +"your router will become floodfill,\n" +"which may cause a large increase in connections and memory usage (at " +"least with the Java router).\n" +"Think about whether that's OK. You can disable floodfill, but then your " +"fastest users aren't contributing what they could.\n" +"It also depends on the typical uptime for your application." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:119 +msgid "Reseeding" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:120 +msgid "" +"Decide if you are bundling router infos or using our reseed hosts.\n" +"The Java reseed host list is in the source code, so if you keep your " +"source up to date, the host list will be also.\n" +"Be aware of possible blocking by hostile governments." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:129 +msgid "Reduce Network Resource Usage" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:130 +msgid "" +"Consider setting your application tunnels to delay-open, reduce-on-idle " +"and/or close-on-idle.\n" +"This is straightforward if using i2ptunnel but you'll have to implement " +"some of it yourself if using I2CP directly.\n" +"See i2psnark for code that reduces tunnel count and then closes the " +"tunnel, even in the presence of some background DHT activity." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:138 +msgid "Updatability" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:139 +msgid "" +"Have an auto-update feature if at all possible, or at least auto-" +"notification of a new version.\n" +"Our biggest fear is a huge number of routers out there that can't be " +"updated.\n" +"We have about 6-8 releases a year of the Java router, and it's critical " +"to the health of the network that the users keep up.\n" +"We usually have over 80% of the network on the latest release within " +"6 weeks after the release, and we'd like to keep it that way.\n" +"You don't need to worry about disabling the router's built-in auto-update" +" function, as that code is in the router console,\n" +"which you presumably are not bundling." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:150 +msgid "Rollout" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:151 +msgid "" +"Have a gradual rollout plan. Don't overwhelm the network all at once.\n" +"We currently have approximately 25K unique users per day and 40K uniques " +"per month.\n" +"We are probably able to handle growth of 2-3X per year without too much " +"issue.\n" +"If you anticipate a faster rampup than that, OR the bandwidth " +"distribution (or uptime distribution,\n" +"or any other significant characteristic) of your userbase is " +"significantly different from our current userbase,\n" +"we really need to have a discussion.\n" +"The bigger your growth plans, the more important everthing else in this " +"checklist is." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:163 +msgid "Design for and Encourage Long Uptimes" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:164 +msgid "" +"Tell your users that I2P works best if it keeps running.\n" +"It may be several minutes after startup before it works well, and even " +"more after first install.\n" +"If your average uptime is less than an hour, I2P is probably the wrong " +"solution." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:172 +msgid "Show Status" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:173 +msgid "" +"Provide some indication to the user that the application tunnels are " +"ready. Encourage patience." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:178 +msgid "Graceful Shutdown" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:179 +msgid "" +"If possible, delay the shutdown until your participating tunnels expire.\n" +"Don't let your users break tunnels easily, or at least ask them to " +"confirm." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:185 +msgid "Education and Donation" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:186 +msgid "" +"It would be nice if you give your users links to learn more about I2P and" +" to donate." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:192 +msgid "External Router Option" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:193 +msgid "" +"Depending on your user base and application,\n" +"it may be helpful to provide an option or a separate package to use an " +"external router." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:200 +msgid "Use of other Common Services" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:201 +msgid "" +"If you plan to use or link to other common I2P services (news feeds, " +"hosts.txt subscriptions, trackers, outproxies, etc.),\n" +"make sure you aren't overloading them,\n" +"and talk to the people who are running them to make sure it's ok." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:209 +msgid "Time / NTP Issues" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:210 +msgid "" +"I2P includes an SNTP client. I2P requires correct time to operate.\n" +"It will compensate for a skewed system clock but this may delay startup. " +"You may disable I2P's SNTP queries,\n" +"but this isn't advised unless your application makes sure the system " +"clock is correct." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:218 +msgid "Choose What and How you Bundle" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:219 +msgid "" +"At a minimum you will need i2p.jar, router.jar, streaming.jar, and " +"mstreaming.jar.\n" +"You may omit the two streaming jars for a datagram-only app.\n" +"Some apps may need more, e.g. i2ptunnel.jar or addressbook.jar.\n" +"Don't forget jbigi.jar, or a subset of it for the platforms you support, " +"to make the crypto much faster.\n" +"We are currently building them for Java 6, as of 0.9.14. The source is " +"mostly compatible with Java 5 if you want to do your own compile,\n" +"but we may start using Java 6 features at any time without notice.\n" +"We plan to migrate to Java 7 in 2015.\n" +"If you're building Debian / Ubuntu packages, you should require the I2P " +"package from our PPA instead of bundling it.\n" +"You almost certainly do not need susimail, susidns, the router console, " +"and i2psnark, for example." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:230 +msgid "" +"The following files should be included in the I2P installation directory," +" specified with the \"i2p.dir.base\" property.\n" +"Don't forget certificates/reseed and certificates/ssl, required for " +"reseeding, and blocklist.txt for IP validation.\n" +"The geoip directory is optional, but recommended so the router can make " +"decisions based on location.\n" +"The hosts.txt file may be necessary, you may modify it to include any " +"hosts your application uses.\n" +"You may add a router.config file to the base directory to override " +"initial defaults." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:237 +msgid "" +"License requirements may require you to include the LICENSES.txt file and" +" the licenses directory." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:243 +msgid "You may also wish to bundle a hosts.txt file." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:246 +msgid "Be sure to specify a Java 6 bootclasspath if compiling with Java 8." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:254 +msgid "Datagram (DHT) considerations" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:255 +msgid "" +"If your application is using I2P datagrams, e.g. for a DHT,\n" +"there's lots of advanced options available to reduce overhead and " +"increase reliability.\n" +"This may take some time and experimentation to get working well.\n" +"Be aware of size/reliability tradeoffs. Talk to us for help.\n" +"It is possible - and recommended - to use Datagrams and Streaming on the " +"same Destination.\n" +"Don't create separate Destinations for this.\n" +"Don't try to store your unrelated data in the existing network DHTs " +"(iMule, bote, bittorrent, and router).\n" +"Build your own. If you are hardcoding seed nodes, we recommend that you " +"have several." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:268 +msgid "Comarketing" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:269 +msgid "" +"Let's work together. Don't wait until it's done.\n" +"Give us your Twitter handle and start tweeting about it, we will return " +"the favor." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:275 +msgid "Malware" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:276 +msgid "" +"Please don't use I2P for evil.\n" +"It could cause great harm both to our network and our reputation." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:282 +msgid "Join Us" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:283 +msgid "" +"This may be obvious, but join the community. Run I2P 24/7. Start an " +"eepsite about your project.\n" +"Hang out in IRC #i2p-dev. Post on the forums. Spread the word.\n" +"We can help get you users, testers, translators, or even coders." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:291 +msgid "Application Examples" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:292 +msgid "" +"You may wish to install and play with the I2P Android app, and look at " +"its code, for an example of an application that bundles the router.\n" +"See what we expose to the user and what we hide.\n" +"Look at the state machine we use to start and stop the router.\n" +"Other examples are: Vuze, the Nightweb Android app, iMule, TAILS, iCloak," +" and Monero." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:300 +msgid "Code Example" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:301 +msgid "" +"None of the above actually tells you how to write your code to\n" +"bundle the Java router, so following is a brief example." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:331 +msgid "" +"This code is for the case where your application starts the router, as in" +" our Android app.\n" +"You could also have the router start the application via the " +"clients.config and i2ptunnel.config files,\n" +"together with Jetty webapps,\n" +"as is done in our Java packages.\n" +"As always, state management is the difficult part." +msgstr "" + +#: i2p2www/pages/site/docs/applications/managed-clients.html:3 +msgid "February 2014" +msgstr "" + +#: i2p2www/pages/site/docs/applications/managed-clients.html:8 +#, python-format +msgid "" +"Clients may be started directly by the router when they are listed\n" +"in the clients.config file.\n" +"These clients may be \"managed\" or \"unmanaged\".\n" +"This is handled by the ClientAppManager.\n" +"Additionally, managed or unmanaged clients may register with the\n" +"ClientAppManager so that other clients may retrieve a reference to them.\n" +"There is also a simple Port Mapper facility for clients to register an\n" +"internal port that other clients may look up." +msgstr "" + +#: i2p2www/pages/site/docs/applications/managed-clients.html:21 +msgid "" +"As of release 0.9.4, the router supports managed clients.\n" +"Managed clients are instantiated and started by the ClientAppManager.\n" +"The ClientAppManager maintains a reference to the client and receives " +"updates on the client's state.\n" +"Managed clients are preferred, as it is much easier to implement state " +"tracking\n" +"and to start and stop a client. It also is much easier to avoid static " +"references in the client code\n" +"which could lead to excessive memory usage after a client is stopped.\n" +"Managed clients may be started and stopped by the user in the router " +"console,\n" +"and are stopped at router shutdown." +msgstr "" + +#: i2p2www/pages/site/docs/applications/managed-clients.html:31 +msgid "" +"Managed clients implement either the net.i2p.app.ClientApp or " +"net.i2p.router.app.RouterApp interface.\n" +"Clients implementing the ClientApp interface must provide the following " +"constructor:" +msgstr "" + +#: i2p2www/pages/site/docs/applications/managed-clients.html:38 +msgid "" +"Clients implementing the RouterApp interface must provide the following " +"constructor:" +msgstr "" + +#: i2p2www/pages/site/docs/applications/managed-clients.html:44 +msgid "The arguments provided are specified in the clients.config file." +msgstr "" + +#: i2p2www/pages/site/docs/applications/managed-clients.html:48 +msgid "Unmanaged Clients" +msgstr "" + +#: i2p2www/pages/site/docs/applications/managed-clients.html:49 +msgid "" +"If the main class specified in the clients.config file does not implement" +" a managed interface,\n" +"it will be started with main() with the arguments specified,\n" +"and stopped with main() with the arguments specified.\n" +"The router does not maintain a reference, since all interactions are via " +"the static main() method.\n" +"The console cannot provide accurate state information to the user." +msgstr "" + +#: i2p2www/pages/site/docs/applications/managed-clients.html:57 +msgid "Registered Clients" +msgstr "" + +#: i2p2www/pages/site/docs/applications/managed-clients.html:58 +msgid "" +"Clients, whether managed or unmanaged, may register with the " +"ClientAppManager\n" +"so that other clients may retrieve a reference to them.\n" +"Registration is by name.\n" +"Known registered clients are:" +msgstr "" + +#: i2p2www/pages/site/docs/applications/managed-clients.html:68 +msgid "Port Mapper" +msgstr "" + +#: i2p2www/pages/site/docs/applications/managed-clients.html:69 +msgid "" +"The router also provides a simple mechanism for clients to find an " +"internal socket service,\n" +"such as the HTTP proxy. This is provided by the Port Mapper.\n" +"Registration is by name.\n" +"Clients that register generally provide an internal emulated socket on " +"that port." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:2 +msgid "Supported Applications" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:5 +#: i2p2www/pages/site/docs/applications/supported.html:183 +msgid "Blogging, Forums, and Wikis" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:7 +#: i2p2www/pages/site/docs/applications/supported.html:229 +msgid "Decentralized File Storage" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:10 +#: i2p2www/pages/site/docs/applications/supported.html:241 +msgid "Development Tools" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:13 +#: i2p2www/pages/site/docs/applications/supported.html:243 +msgid "Version control" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:17 +#: i2p2www/pages/site/docs/applications/supported.html:262 +msgid "Domain Naming" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:19 +#: i2p2www/pages/site/docs/applications/supported.html:280 +msgid "Email" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:22 +#: i2p2www/pages/site/docs/applications/supported.html:325 +msgid "File Sharing" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:25 +#: i2p2www/pages/site/docs/applications/supported.html:327 +msgid "BitTorrent clients" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:27 +#: i2p2www/pages/site/docs/applications/supported.html:369 +msgid "BitTorrent trackers and indexers" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:36 +#: i2p2www/pages/site/docs/applications/supported.html:436 +msgid "Network Administration" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:39 +#: i2p2www/pages/site/docs/applications/supported.html:438 +msgid "General-purpose socket utilities" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:46 +#: i2p2www/pages/site/docs/applications/supported.html:479 +msgid "Real-time Chat" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:49 +#: i2p2www/pages/site/docs/applications/supported.html:481 +msgid "Instant messaging clients" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:51 +#: i2p2www/pages/site/docs/applications/supported.html:491 +msgid "IRC clients" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:53 +#: i2p2www/pages/site/docs/applications/supported.html:542 +msgid "IRC servers" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:58 +#: i2p2www/pages/site/docs/applications/supported.html:558 +msgid "Web Browsing" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:61 +#: i2p2www/pages/site/docs/applications/supported.html:560 +msgid "Anonymous websites" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:63 +#: i2p2www/pages/site/docs/applications/supported.html:609 +msgid "Proxy software" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:65 +#: i2p2www/pages/site/docs/applications/supported.html:634 +msgid "Inproxies" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:67 +#: i2p2www/pages/site/docs/applications/supported.html:674 +msgid "Outproxies" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:72 +#: i2p2www/pages/site/docs/applications/supported.html:688 +msgid "Website Hosting" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:75 +#: i2p2www/pages/site/docs/applications/supported.html:703 +msgid "Web servers" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:82 +#, python-format +msgid "" +"This is intended to be a comprehensive listing of applications used with\n" +"I2P. If you know of something that's missing please submit a ticket on\n" +"Trac, and be sure to select the\n" +"“www” component in the submission form." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:89 +msgid "" +"\n" +"Supported applications are tagged with one or more of the following:" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:94 +#: i2p2www/pages/site/docs/applications/supported.html:276 +#: i2p2www/pages/site/docs/applications/supported.html:308 +#: i2p2www/pages/site/docs/applications/supported.html:333 +#: i2p2www/pages/site/docs/applications/supported.html:700 +msgid "bundled" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:97 +msgid "" +"Bundled application — I2P ships with a few officially\n" +"supported applications that let new users take immediate advantage of\n" +"some of I2P's more useful capabilities." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:104 +#: i2p2www/pages/site/docs/applications/supported.html:192 +#: i2p2www/pages/site/docs/applications/supported.html:205 +#: i2p2www/pages/site/docs/applications/supported.html:217 +#: i2p2www/pages/site/docs/applications/supported.html:225 +#: i2p2www/pages/site/docs/applications/supported.html:238 +#: i2p2www/pages/site/docs/applications/supported.html:289 +#: i2p2www/pages/site/docs/applications/supported.html:401 +#: i2p2www/pages/site/docs/applications/supported.html:423 +#: i2p2www/pages/site/docs/applications/supported.html:432 +#: i2p2www/pages/site/docs/applications/supported.html:520 +msgid "plugin" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:107 +#, python-format +msgid "" +"Third-party plugin — I2P's plugin system provides convenient\n" +"deployment of I2P-enabled applications and allows tighter integration\n" +"with the router. Plugins are [reviewed by the community](http://%(plugins)s) to identify security and\n" +"anonymity issues." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:118 +#: i2p2www/pages/site/docs/applications/supported.html:217 +#: i2p2www/pages/site/docs/applications/supported.html:225 +#: i2p2www/pages/site/docs/applications/supported.html:238 +#: i2p2www/pages/site/docs/applications/supported.html:249 +#: i2p2www/pages/site/docs/applications/supported.html:258 +#: i2p2www/pages/site/docs/applications/supported.html:321 +#: i2p2www/pages/site/docs/applications/supported.html:339 +#: i2p2www/pages/site/docs/applications/supported.html:350 +#: i2p2www/pages/site/docs/applications/supported.html:365 +#: i2p2www/pages/site/docs/applications/supported.html:411 +#: i2p2www/pages/site/docs/applications/supported.html:423 +#: i2p2www/pages/site/docs/applications/supported.html:432 +#: i2p2www/pages/site/docs/applications/supported.html:447 +#: i2p2www/pages/site/docs/applications/supported.html:453 +#: i2p2www/pages/site/docs/applications/supported.html:459 +#: i2p2www/pages/site/docs/applications/supported.html:469 +#: i2p2www/pages/site/docs/applications/supported.html:475 +#: i2p2www/pages/site/docs/applications/supported.html:487 +#: i2p2www/pages/site/docs/applications/supported.html:520 +#: i2p2www/pages/site/docs/applications/supported.html:526 +#: i2p2www/pages/site/docs/applications/supported.html:532 +#: i2p2www/pages/site/docs/applications/supported.html:538 +#: i2p2www/pages/site/docs/applications/supported.html:615 +#: i2p2www/pages/site/docs/applications/supported.html:624 +#: i2p2www/pages/site/docs/applications/supported.html:630 +#: i2p2www/pages/site/docs/applications/supported.html:700 +#: i2p2www/pages/site/docs/applications/supported.html:715 +#: i2p2www/pages/site/docs/applications/supported.html:721 +#: i2p2www/pages/site/docs/applications/supported.html:727 +#: i2p2www/pages/site/docs/applications/supported.html:733 +msgid "standalone" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:118 +#: i2p2www/pages/site/docs/applications/supported.html:192 +#: i2p2www/pages/site/docs/applications/supported.html:199 +#: i2p2www/pages/site/docs/applications/supported.html:205 +#: i2p2www/pages/site/docs/applications/supported.html:211 +#: i2p2www/pages/site/docs/applications/supported.html:359 +#: i2p2www/pages/site/docs/applications/supported.html:383 +#: i2p2www/pages/site/docs/applications/supported.html:392 +#: i2p2www/pages/site/docs/applications/supported.html:548 +#: i2p2www/pages/site/docs/applications/supported.html:554 +msgid "standalone/mod" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:121 +msgid "" +"Third-party standalone application — Many standard network\n" +"applications only require careful setup and configuration to communicate\n" +"anonymously over I2P. These are tagged with standalone. Some\n" +"applications, tagged with standalone/mod, require patching to\n" +"function properly over I2P or to prevent inadvertent disclosure of\n" +"identifying information such as the user's hostname or external IP\n" +"address." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:132 +#: i2p2www/pages/site/docs/applications/supported.html:299 +#: i2p2www/pages/site/docs/applications/supported.html:568 +#: i2p2www/pages/site/docs/applications/supported.html:578 +#: i2p2www/pages/site/docs/applications/supported.html:587 +#: i2p2www/pages/site/docs/applications/supported.html:593 +#: i2p2www/pages/site/docs/applications/supported.html:599 +#: i2p2www/pages/site/docs/applications/supported.html:605 +#: i2p2www/pages/site/docs/applications/supported.html:646 +#: i2p2www/pages/site/docs/applications/supported.html:654 +#: i2p2www/pages/site/docs/applications/supported.html:663 +#: i2p2www/pages/site/docs/applications/supported.html:670 +#: i2p2www/pages/site/docs/applications/supported.html:684 +msgid "service" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:135 +msgid "" +"Third-party essential network service — Services which on\n" +"the I2P network are analogous to those provided on the public Internet\n" +"by hosting providers, ISPs, and Google: eepsite indexes and jump\n" +"services, search engines, email, DNS-style name services, hosting,\n" +"proxies, etc. These services focus on boosting the usefulness of the\n" +"network as a whole, and making network content more discoverable." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:145 +#: i2p2www/pages/site/docs/applications/supported.html:217 +#: i2p2www/pages/site/docs/applications/supported.html:365 +msgid "unmaintained" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:148 +msgid "" +"Unmaintained — This is used to tag plugins, applications,\n" +"and services which appear to be unmaintained and may be removed from\n" +"this listing in the future." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:156 +#, python-format +msgid "" +"Warning: Using an application, plugin, or service with I2P\n" +"doesn't automatically protect your anonymity. I2P is merely a set of " +"tools\n" +"which can help you mitigate certain identified\n" +"threats to anonymity. We do not and cannot make any guarantees about " +"the\n" +"safety of the applications, plugins, and services listed below. Most\n" +"applications and plugins must be properly configured, and some will need " +"to\n" +"be patched — and even then your anonymity might not be assured. " +"Similarly,\n" +"services could put your anonymity at risk, either by design or through\n" +"carelessness on their part or your own." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:168 +msgid "" +"If you have doubts about the suitability of an application,\n" +"plugin, or service for use with I2P, you are urged to inquire about " +"privacy\n" +"issues with its maintainers, to search its mailing lists and bug tracker " +"if\n" +"one exists, and consult trusted, knowledgeable members of the I2P\n" +"community." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:176 +msgid "" +"Take responsibility for your own anonymity and safety — always\n" +"seek expert advice, educate yourself, practice good judgment, be mindful " +"of\n" +"disclosing personally identifying information, and don't take\n" +"shortcuts." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:198 +msgid "Lightweight forum software." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:204 +msgid "Another lightweight blogging platform." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:210 +msgid "Most popular open source forum software." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:216 +msgid "Distributed forums software, originally developed by jrandom." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:221 +#, python-format +msgid "" +"A Java-based MediaWiki clone. No external database needed.\n" +"Plugin available here." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:233 +#, python-format +msgid "" +"Port of the Tahoe-" +"LAFS\n" +"distributed file system to the I2P network. Controller plugin here." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:248 +msgid "Most popular distributed version control system." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:254 +#, python-format +msgid "" +"Another distributed version control system. Currently\n" +"used in I2P development." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:266 +#, python-format +msgid "" +"Provides management of addressbooks, which are part of a simple,\n" +"user-controlled I2P naming system somewhat\n" +"analogous to the Internet's Domain Name System (DNS). Addressbooks map\n" +"Base64 destinations to short, usually human-readable “domain” names " +"ending\n" +"with a .i2p suffix which the I2P router's HTTP client can resolve back to" +"\n" +"Base64 addresses. (Note: While Base64 destinations are globally\n" +"unique, addressbook “domain” names only resolve to unique destinations\n" +"locally.)" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:285 +msgid "" +"Serverless peer-to-peer email application using a distributed hash table\n" +"(DHT) for secure mail storage." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:294 +msgid "" +"Provides email service within the I2P network via @mail.i2p addresses,\n" +"and email gateway service between the I2P network and the public Internet" +"\n" +"via @i2pmail.org addresses. One of the oldest continuous services on I2P." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:304 +msgid "" +"Simple web browser-based email interface. Configured to use Postman's\n" +"email service by default." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:313 +#, python-format +msgid "" +"Can be configured to use Postman's email service. See\n" +"this comparison of MUAs,\n" +"and configuration settings for\n" +"SMTP and POP3." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:332 +msgid "I2P's integrated BitTorrent client." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:338 +msgid "Modified version of I2PSnark." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:344 +msgid "" +"\n" +"A fork of rufus that uses the Basic Open Bridge (BOB) and has many\n" +"improvements, including using the latest wxwidgets and python. It also\n" +"supports use of seedless if installed for trackerless torrents and\n" +"magnet-link like fetching of torrents within I2P.\n" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:355 +msgid "" +"Clean, full-featured cross-platform BitTorrent client with official\n" +"ports for several GUI toolkits." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:364 +msgid "Has a plugin providing I2P support." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:371 +#, python-format +msgid "" +"For a detailed feature comparison of I2P-enabled trackers/indexers, see\n" +"here." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:379 +msgid "" +"The code that powered one of the first major tracker/indexer sites on the" +"\n" +"Internet. Patched for I2P." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:388 +#, python-format +msgid "" +"Lightweight tracker/indexer. I2P mod available in the i2p.opentracker\n" +"branch of the I2P Monotone repository." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:397 +#, python-format +msgid "" +"zzz's Java-based open tracker. More info\n" +"here." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:410 +msgid "I2P port of the aMule ED2K client." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:419 +#, python-format +msgid "" +"Port of the Phex Gnutella " +"client. Website\n" +"for plugin version here." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:428 +#, python-format +msgid "" +"Cache for Gnutella peers on I2P. Website for plugin version\n" +"here." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:443 +msgid "" +"Unix standard tool for socket relaying. Several clones, ports, and forks\n" +"have appeared over the years." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:452 +msgid "Like netcat but more powerful." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:458 +msgid "" +"Proxy providing simple, transparent SOCKS-ification of network " +"applications." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:468 +msgid "" +"Most popular implementation of the Secure Shell (SSH) protocol and " +"related tools." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:474 +msgid "Open source Secure Shell (SSH) client for Windows." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:486 +msgid "IM client with multiple incarnations." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:493 +msgid "" +"Many IRC clients leak identifying information to servers or other\n" +"clients, so I2P's IRC and SOCKS IRC client tunnels filter certain inbound" +"\n" +"and outbound messages to scrub data such as LAN IP addresses, external IP" +"\n" +"addresses, local hostnames, and the name and version of the IRC client. " +"Two\n" +"message types in particular, DCC and CTCP, can't be sufficiently " +"anonymized\n" +"without changes to the protocols or to IRC client/server code, so they " +"are\n" +"completely blocked, except for CTCP ACTION (the message emitted by the\n" +"/me command) which isn't inherently dangerous." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:504 +msgid "" +"I2P's IRC filtering may not cover every possible leak — users should also" +"\n" +"check if their client is sending their real name or local username. " +"Packet\n" +"sniffers such as Wireshark are\n" +"useful here. Eliminating remaining leaks may be as simple as changing the" +"\n" +"client's default configuration. If that doesn't help, inform the I2P\n" +"developers; they may be able to solve it via additional filtering." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:516 +#, python-format +msgid "" +"Small Java-based IRC client. Plugin available here." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:525 +msgid "Cross-platform graphical IRC client." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:531 +msgid "Unixy terminal-based IRC client." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:537 +msgid "Another Unixy terminal-based IRC client." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:547 +msgid "IRC server developed from scratch." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:553 +msgid "Most popular IRC server." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:565 +msgid "" +"Any website hosted anonymously on I2P, reachable through the I2P router's" +" HTTP proxy." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:573 +msgid "" +"Distributed anonymous websites hosted\n" +"using Tahoe-LAFS-I2P, currently only reachable with Tahoe-LAFS-I2P\n" +"clients or through the Tahoe-LAFS-I2P HTTP proxy." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:583 +#, python-format +msgid "" +"Website for sponge's jump service.\n" +"Source code available." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:592 +msgid "Another jump service." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:598 +msgid "Dynamically updated eepsite index." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:604 +#, python-format +msgid "Website for zzz's jump service." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:614 +msgid "SOCKS-enabled caching web proxy with basic filtering capabilities." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:620 +msgid "" +"Privacy-focused non-caching web proxy with advanced filtering\n" +"capabilities. Excels at removing ads and other junk." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:629 +msgid "Venerable caching web proxy." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:636 +msgid "Gateways allowing users on the public Internet to access eepsites." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:643 +#, python-format +msgid "tino's inproxy on the public Internet." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:651 +#: i2p2www/pages/site/docs/applications/supported.html:660 +#: i2p2www/pages/site/docs/applications/supported.html:667 +msgid "Another inproxy on the public Internet." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:676 +msgid "" +"Gateways allowing I2P users to access content hosted on the public " +"Internet." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:683 +msgid "Publicly advertised outproxy running Squid, located in Europe." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:693 +msgid "" +"Lightweight web server and Java servlet container. I2P is tightly\n" +"integrated with a bundled copy of Jetty which by default is configured to" +"\n" +"host the user's eepsite. The " +"bundled\n" +"Jetty also serves the I2P router console and web applications bundled " +"with\n" +"I2P." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:705 +msgid "" +"In addition to Jetty, any web server should function over I2P without\n" +"modification so long as it's HTTP-compliant. Some web servers known to\n" +"currently serve content on the I2P network are:" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:714 +msgid "Most popular web server on the public WWW." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:720 +msgid "Web server and Java servlet container. More features than Jetty." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:726 +msgid "Fast lightweight web server." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:732 +msgid "High-performance lightweight web server." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:2 +msgid "Naming discussion" +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:4 +#, python-format +msgid "" +"NOTE: The following is a discussion of the reasons behind the I2P naming " +"system,\n" +"common arguments and possible alternatives.\n" +"See the naming page for current documentation." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:10 +msgid "Discarded alternatives" +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:12 +msgid "" +"Naming within I2P has been an oft-debated topic since the very beginning " +"with\n" +"advocates across the spectrum of possibilities. However, given I2P's " +"inherent\n" +"demand for secure communication and decentralized operation, the " +"traditional\n" +"DNS-style naming system is clearly out, as are \"majority rules\" voting " +"systems." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:19 +msgid "" +"I2P does not promote the use of DNS-like services though, as the damage " +"done\n" +"by hijacking a site can be tremendous - and insecure destinations have no" +"\n" +"value. DNSsec itself still falls back on registrars and certificate " +"authorities,\n" +"while with I2P, requests sent to a destination cannot be intercepted or " +"the reply\n" +"spoofed, as they are encrypted to the destination's public keys, and a " +"destination\n" +"itself is just a pair of public keys and a certificate. DNS-style " +"systems on the\n" +"other hand allow any of the name servers on the lookup path to mount " +"simple denial\n" +"of service and spoofing attacks. Adding on a certificate authenticating " +"the\n" +"responses as signed by some centralized certificate authority would " +"address many of\n" +"the hostile nameserver issues but would leave open replay attacks as well" +" as \n" +"hostile certificate authority attacks." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:33 +msgid "" +"Voting style naming is dangerous as well, especially given the " +"effectiveness of\n" +"Sybil attacks in anonymous systems - the attacker can simply create an " +"arbitrarily\n" +"high number of peers and \"vote\" with each to take over a given name. " +"Proof-of-work\n" +"methods can be used to make identity non-free, but as the network grows " +"the load\n" +"required to contact everyone to conduct online voting is implausible, or " +"if the\n" +"full network is not queried, different sets of answers may be reachable." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:42 +msgid "" +"As with the Internet however, I2P is keeping the design and operation of " +"a \n" +"naming system out of the (IP-like) communication layer. The bundled " +"naming library\n" +"includes a simple service provider interface which alternate naming systems can\n" +"plug into, allowing end users to drive what sort of naming tradeoffs they" +" prefer." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:50 +msgid "" +"See also Names: " +"Decentralized, Secure, Human-Meaningful: Choose Two." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:55 +msgid "(adapted from a post in the old Syndie, November 26, 2005)" +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:58 +msgid "" +"Q:\n" +"What to do if some hosts \n" +"do not agree on one address and if some addresses are working, others are" +" not? \n" +"Who is the right source of a name?" +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:64 +msgid "" +"A:\n" +"You don't. This is actually a critical difference between names on I2P " +"and how \n" +"DNS works - names in I2P are human readable, secure, but not globally" +" \n" +"unique. This is by design, and an inherent part of our need for " +"security." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:70 +msgid "" +"If I could somehow convince you to change the destination associated with" +" some \n" +"name, I'd successfully \"take over\" the site, and under no circumstances" +" is that \n" +"acceptable. Instead, what we do is make names locally unique: " +"they are \n" +"what you use to call a site, just as how you can call things " +"whatever \n" +"you want when you add them to your browser's bookmarks, or your IM " +"client's \n" +"buddy list. Who you call \"Boss\" may be who someone else calls " +"\"Sally\"." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:78 +msgid "Names will not, ever, be securely human readable and globally unique." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:83 +msgid "" +"The following from zzz is a review of several common\n" +"complaints about I2P's naming system." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:89 +msgid "" +"Inefficiency:\n" +"The whole hosts.txt is downloaded (if it has changed, since eepget uses " +"the etag and last-modified headers).\n" +"It's about 400K right now for almost 800 hosts." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:94 +msgid "" +"True, but this isn't a lot of traffic in the context of i2p, which is " +"itself wildly inefficient\n" +"(floodfill databases, huge encryption overhead and padding, garlic " +"routing, etc.).\n" +"If you downloaded a hosts.txt file from someone every 12 hours it " +"averages out to about 10 bytes/sec." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:99 +msgid "" +"As is usually the case in i2p, there is a fundamental tradeoff here " +"between anonymity and efficiency.\n" +"Some would say that using the etag and last-modified headers is hazardous" +" because it exposes when you\n" +"last requested the data.\n" +"Others have suggested asking for specific keys only (similar to what jump" +" services do, but\n" +"in a more automated fashion), possibly at a further cost in anonymity." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:106 +#, python-format +msgid "" +"Possible improvements would be a replacement or supplement to addressbook" +" (see %(i2host)sp),\n" +"or something simple like subscribing to http://example.i2p/cgi-" +"bin/recenthosts.cgi rather than http://example.i2p/hosts.txt.\n" +"If a hypothetical recenthosts.cgi distributed all hosts from the last 24 " +"hours, for example,\n" +"that could be both more efficient and more anonymous than the current " +"hosts.txt with last-modified and etag." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:112 +#, python-format +msgid "" +"A sample implementation is on stats.i2p at\n" +"%(url)s.\n" +"This script returns an Etag with a timestamp.\n" +"When a request comes in with the If-None-Match etag,\n" +"the script ONLY returns new hosts since that timestamp, or 304 Not " +"Modified if there are none.\n" +"In this way, the script efficiently returns only the hosts the subscriber" +"\n" +"does not know about, in an addressbook-compatible manner." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:121 +msgid "" +"So the inefficiency is not a big issue and there are several ways to " +"improve things without\n" +"radical change." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:127 +msgid "" +"Not Scalable:\n" +"The 400K hosts.txt (with linear search) isn't that big at the moment and\n" +"we can probably grow by 10x or 100x before it's a problem." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:132 +msgid "" +"As far as network traffic see above.\n" +"But unless you're going to do a slow real-time query over the network for" +"\n" +"a key, you need to have the whole set of keys stored locally, at a cost " +"of about 500 bytes per key." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:139 +msgid "" +"Requires configuration and \"trust\":\n" +"Out-of-the-box addressbook is only subscribed to " +"http://www.i2p2.i2p/hosts.txt, which is rarely updated,\n" +"leading to poor new-user experience." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:144 +msgid "" +"This is very much intentional. jrandom wants a user to \"trust\" a " +"hosts.txt\n" +"provider, and as he likes to say, \"trust is not a boolean\".\n" +"The configuration step attempts to force users to think about issues of " +"trust in an anonymous network." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:149 +msgid "" +"As another example, the \"Eepsite Unknown\" error page in the HTTP Proxy\n" +"lists some jump services, but doesn't \"recommend\" any one in " +"particular,\n" +"and it's up to the user to pick one (or not).\n" +"jrandom would say we trust the listed providers enough to list them but " +"not enough to\n" +"automatically go fetch the key from them." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:156 +msgid "" +"How successful this is, I'm not sure.\n" +"But there must be some sort of hierarchy of trust for the naming system.\n" +"To treat everyone equally may increase the risk of hijacking." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:163 +msgid "It isn't DNS" +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:166 +msgid "" +"Unfortunately real-time lookups over i2p would significantly slow down " +"web browsing." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:169 +msgid "" +"Also, DNS is based on lookups with limited caching and time-to-live, " +"while i2p\n" +"keys are permanent." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:173 +msgid "Sure, we could make it work, but why? It's a bad fit." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:178 +msgid "" +"Not reliable:\n" +"It depends on specific servers for addressbook subscriptions." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:182 +msgid "" +"Yes it depends on a few servers that you have configured.\n" +"Within i2p, servers and services come and go.\n" +"Any other centralized system (for example DNS root servers) would\n" +"have the same problem. A completely decentralized system (everybody is " +"authoritative)\n" +"is possible by implementing an \"everybody is a root DNS server\" " +"solution, or by\n" +"something even simpler, like a script that adds everybody in your " +"hosts.txt to your addressbook." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:190 +msgid "" +"People advocating all-authoritative solutions generally haven't thought " +"through\n" +"the issues of conflicts and hijacking, however." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:196 +msgid "" +"Awkward, not real-time:\n" +"It's a patchwork of hosts.txt providers, key-add web form providers, jump" +" service providers,\n" +"eepsite status reporters.\n" +"Jump servers and subscriptions are a pain, it should just work like DNS." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:202 +msgid "See the reliability and trust sections." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:207 +msgid "" +"So, in summary, the current system is not horribly broken, inefficient, " +"or un-scalable,\n" +"and proposals to \"just use DNS\" aren't well thought-through." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:212 +msgid "Alternatives" +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:213 +msgid "" +"The I2P source contains several pluggable naming systems and supports " +"configuration options\n" +"to enable experimentation with naming systems." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:218 +msgid "" +"Meta - calls two or more other naming systems in order.\n" +"By default, calls PetName then HostsTxt." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:222 +msgid "" +"PetName - Looks up in a petnames.txt file.\n" +"The format for this file is NOT the same as hosts.txt." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:226 +msgid "HostsTxt - Looks up in the following files, in order:" +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:234 +msgid "" +"AddressDB - Each host is listed in a separate file in a addressDb/" +" directory." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:237 +msgid "" +"Eepget - does an HTTP lookup request from an external\n" +"server - must be stacked after the HostsTxt lookup with Meta.\n" +"This could augment or replace the jump system.\n" +"Includes in-memory caching." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:243 +msgid "" +"Exec - calls an external program for lookup, allows\n" +"additional experimentation in lookup schemes, independent of java.\n" +"Can be used after HostsTxt or as the sole naming system.\n" +"Includes in-memory caching." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:249 +msgid "Dummy - used as a fallback for Base64 names, otherwise fails." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:253 +msgid "" +"The current naming system can be changed with the advanced config option " +"'i2p.naming.impl'\n" +"(restart required).\n" +"See core/java/src/net/i2p/client/naming for details." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:258 +msgid "" +"Any new system should be stacked with HostsTxt, or should\n" +"implement local storage and/or the addressbook subscription functions, " +"since addressbook\n" +"only knows about the hosts.txt files and format." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:264 +msgid "Certificates" +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:265 +msgid "" +"I2P destinations contain a certificate, however at the moment that " +"certificate\n" +"is always null.\n" +"With a null certificate, base64 destinations are always 516 bytes ending " +"in \"AAAA\",\n" +"and this is checked in the addressbook merge mechanism, and possibly " +"other places.\n" +"Also, there is no method available to generate a certificate or add it to" +" a\n" +"destination. So these will have to be updated to implement certificates." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:273 +#, python-format +msgid "" +"One possible use of certificates is for proof of work." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:276 +msgid "" +"Another is for \"subdomains\" (in quotes because there is really no such " +"thing,\n" +"i2p uses a flat naming system) to be signed by the 2nd level domain's " +"keys." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:280 +msgid "" +"With any certificate implementation must come the method for verifying " +"the\n" +"certificates.\n" +"Presumably this would happen in the addressbook merge code.\n" +"Is there a method for multiple types of certificates, or multiple " +"certificates?" +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:286 +msgid "" +"Adding on a certificate authenticating the\n" +"responses as signed by some centralized certificate authority would " +"address many of\n" +"the hostile nameserver issues but would leave open replay attacks as well" +" as \n" +"hostile certificate authority attacks." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:2 +msgid "ElGamal/AES + SessionTag Encryption" +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:7 +msgid "ElGamal/AES+SessionTags is used for end-to-end encryption." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:11 +msgid "" +"As an unreliable, unordered, message based system, I2P uses a simple " +"combination \n" +"of asymmetric and symmetric encryption algorithms to provide data " +"confidentiality \n" +"and integrity to garlic messages. As a whole, the combination is referred" +" \n" +"to as ElGamal/AES+SessionTags, but that is an excessively verbose way to " +"describe \n" +"the use of 2048bit ElGamal, AES256, SHA256, and 32 byte nonces." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:19 +#: i2p2www/pages/site/docs/how/tech-intro.html:508 +msgid "" +"The first time a router wants to encrypt a garlic message to another " +"router, \n" +"they encrypt the keying material for an AES256 session key with ElGamal " +"and \n" +"append the AES256/CBC encrypted payload after that encrypted ElGamal " +"block. \n" +"In addition to the encrypted payload, the AES encrypted section contains " +"the \n" +"payload length, the SHA256 hash of the unencrypted payload, as well as a " +"number \n" +"of \"session tags\" - random 32 byte nonces. The next time the sender " +"wants \n" +"to encrypt a garlic message to another router, rather than ElGamal " +"encrypt \n" +"a new session key they simply pick one of the previously delivered " +"session \n" +"tags and AES encrypt the payload like before, using the session key used " +"with \n" +"that session tag, prepended with the session tag itself. When a router " +"receives \n" +"a garlic encrypted message, they check the first 32 bytes to see if it " +"matches \n" +"an available session tag - if it does, they simply AES decrypt the " +"message, \n" +"but if it does not, they ElGamal decrypt the first block." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:35 +#: i2p2www/pages/site/docs/how/tech-intro.html:524 +msgid "" +"Each session tag can be used only once so as to prevent internal " +"adversaries \n" +"from unnecessarily correlating different messages as being between the " +"same \n" +"routers. The sender of an ElGamal/AES+SessionTag encrypted message " +"chooses \n" +"when and how many tags to deliver, prestocking the recipient with enough " +"tags \n" +"to cover a volley of messages. Garlic messages may detect the successful " +"tag \n" +"delivery by bundling a small additional message as a clove (a \"delivery " +"status \n" +"message\") - when the garlic message arrives at the intended recipient " +"and \n" +"is decrypted successfully, this small delivery status message is one of " +"the \n" +"cloves exposed and has instructions for the recipient to send the clove " +"back \n" +"to the original sender (through an inbound tunnel, of course). When the " +"original \n" +"sender receives this delivery status message, they know that the session " +"tags \n" +"bundled in the garlic message were successfully delivered." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:50 +msgid "" +"Session tags themselves have a short lifetime, after which they are \n" +"discarded if not used. In addition, the quantity stored for each key is " +"limited, \n" +"as are the number of keys themselves - if too many arrive, either new or " +"old \n" +"messages may be dropped. The sender keeps track whether messages using " +"session \n" +"tags are getting through, and if there isn't sufficient communication it " +"may \n" +"drop the ones previously assumed to be properly delivered, reverting back" +" \n" +"to the full expensive ElGamal encryption.\n" +"A session will continue to exist until all its tags are exhausted or " +"expire." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:61 +msgid "" +"Sessions are unidirectional. Tags are delivered from Alice to Bob,\n" +"and Alice then uses the tags, one by one, in subsequent messages to Bob." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:66 +msgid "" +"Sessions may be established between Destinations, between Routers, or\n" +"between a Router and a Destination.\n" +"Each Router and Destination maintains its own Session Key Manager to\n" +"keep track of Session Keys and Session Tags.\n" +"Separate Session Key Managers prevents correlation of multiple " +"Destinations\n" +"to each other or a Router by adversaries." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:77 +msgid "Message Reception" +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:78 +msgid "" +"Each message received has one of two\n" +"the two possible conditions:

" +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:84 +msgid "" +"It is part of an existing session and contains a Session Tag and an AES " +"encrypted block" +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:85 +msgid "It is for a new session and contains both ElGamal and AES encrypted blocks" +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:88 +msgid "" +"When a router receives a message, it will first assume it is from\n" +"an existing session and attempt to look up the Session Tag and decrypt " +"the following data using AES.\n" +"If that fails, it will assume it is for a new session and attempt to\n" +"decrypt it using ElGamal." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:97 +msgid "New Session Message Specification" +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:98 +msgid "" +"A New Session ElGamal Message contains two parts, an encrypted ElGamal " +"block\n" +"and an encrypted AES block." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:103 +msgid "The encrypted message contains:" +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:127 +msgid "ElGamal Block" +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:128 +msgid "The encrypted ElGamal Block is always 514 bytes long." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:132 +msgid "The unencrypted ElGamal data is 222 bytes long, containing:" +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:164 +#, python-format +msgid "" +"The 32-byte\n" +"Session Key\n" +"is the identifier for the session.\n" +"The 32-byte Pre-IV will be used to generate the IV for the AES block that" +" follows;\n" +"the IV is the first 16 bytes of the SHA-256 Hash of the Pre-IV." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:172 +#, python-format +msgid "" +"The 222 byte payload is encrypted\n" +"using ElGamal\n" +"and the encrypted block is 514 bytes long.\n" +"

" +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:179 +msgid "AES Block" +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:180 +msgid "The unencrypted data in the AES block contains the following:" +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:254 +msgid "Minimum length: 48 bytes" +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:257 +#, python-format +msgid "" +"The data is then AES Encrypted,\n" +"using the session key and IV (calculated from the pre-IV) from the " +"ElGamal section.\n" +"The encrypted AES Block length is variable but is always a multiple of 16" +" bytes.\n" +"

" +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:266 +#, python-format +msgid "" +"Actual max payload length, and max block length, is less than 64 KB; see " +"the I2NP Overview." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:269 +msgid "New Session Key is currently unused and is never present." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:274 +msgid "Existing Session Message Specification" +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:275 +msgid "" +"The session tags delivered successfully are remembered for a \n" +"brief period (15 minutes currently) until they are used or discarded.\n" +"A tag is used by packaging one in an Existing Session Message that\n" +"contains only an AES encrypted block, and is not preceded by an\n" +"ElGamal block." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:283 +msgid "" +"The existing session message is\n" +"as follows:" +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:318 +msgid "" +"The session tag also serves as\n" +"the pre-IV. The IV is the first 16 bytes of the SHA-256 Hash of the " +"sessionTag." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:323 +msgid "" +"To decode a message from an existing session, a router looks up the " +"Session Tag to find an\n" +"associated Session Key. If the Session Tag is found, the AES block is " +"decrypted using the associated Session Key.\n" +"If the tag is not found, the message is assumed to be a New Session Message." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:331 +msgid "Session Tag Configuration Options" +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:332 +#, python-format +msgid "" +"As of release 0.9.2, the client may configure the default number of " +"Session Tags to send\n" +"and the low tag threshold for the current session.\n" +"For brief streaming connections or datagrams, these options may be used " +"to significantly reduce bandwidth.\n" +"See the I2CP options specification for " +"details.\n" +"The session settings may also be overridden on a per-message basis.\n" +"See the I2CP Send Message" +" Expires specification for details." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:345 +msgid "" +"There are many possible areas to tune the Session Key Manager's " +"algorithms;\n" +"some may interact with the streaming library behavior, or have " +"significant\n" +"impact on overall performance." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:352 +msgid "" +"The number of tags delivered could depend on message size, keeping in " +"mind\n" +"the eventual padding to 1KB at the tunnel message layer." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:357 +msgid "" +"Clients could send an estimate of session lifetime to the router, as an " +"advisory\n" +"on the number of tags required." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:362 +msgid "" +"Delivery of too few tags causes the router to fall back to an expensive " +"ElGamal encryption." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:366 +msgid "" +"The router may assume delivery of Session Tags, or await acknowledgement " +"before using them;\n" +"there are tradeoffs for each strategy." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:371 +msgid "" +"For very brief messages, almost the full 222 bytes of the pre-IV and " +"padding fields in the ElGamal block\n" +"could be used for the entire message, instead of establishing a session." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:376 +msgid "" +"Evaluate padding strategy; currently we pad to a minimum of 128 bytes.\n" +"Would be better to add a few tags to small messages than pad." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:381 +msgid "" +"Perhaps things could be more efficient if the Session Tag system was " +"bidirectional,\n" +"so tags delivered in the 'forward' path could be used in the 'reverse' " +"path,\n" +"thus avoiding ElGamal in the initial response.\n" +"The router currently plays some tricks like this when sending\n" +"tunnel test messages to itself." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:389 +#, python-format +msgid "" +"Change from Session Tags to\n" +"a synchronized PRNG." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:394 +#, python-format +msgid "" +"Several of these ideas may require a new I2NP message type, or\n" +"set a flag in the\n" +"Delivery" +" Instructions,\n" +"or set a magic number in the first few bytes of the Session Key field\n" +"and accept a small risk of the random Session Key matching the magic " +"number." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:2 +msgid "Garlic Routing" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:3 +msgid "March 2014" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:6 +msgid "Garlic Routing and \"Garlic\" Terminology" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:7 +msgid "" +"The terms \"garlic routing\" and \"garlic encryption\" are often used " +"rather loosely when referring to I2P's technology.\n" +"Here, we explain the history of the terms, the various meanings, and\n" +"the usage of \"garlic\" methods in I2P." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:13 +msgid "" +"\"Garlic routing\" was first coined by\n" +"Michael J. Freedman\n" +"in Roger Dingledine's Free Haven \n" +"Master's thesis " +"Section 8.1.1 (June 2000), as derived from \n" +"Onion Routing." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:21 +msgid "" +"\"Garlic\" may have been used originally by I2P developers because I2P " +"implements a form of\n" +"bundling as Freedman describes, or simply to emphasize general " +"differences from Tor.\n" +"The specific reasoning may be lost to history.\n" +"Generally, when referring to I2P, the term \"garlic\" may mean one of " +"three things:" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:28 +#: i2p2www/pages/site/docs/how/garlic-routing.html:39 +msgid "Layered Encryption" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:29 +msgid "Bundling multiple messages together" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:30 +#: i2p2www/pages/site/docs/how/garlic-routing.html:96 +msgid "ElGamal/AES Encryption" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:33 +msgid "" +"Unfortunately, I2P's usage of \"garlic\" terminology over the past seven " +"years has not always been precise; therefore the reader is\n" +"cautioned when encountering the term.\n" +"Hopefully, the explanation below will make things clear." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:40 +msgid "" +"Onion routing is a technique for building paths, or tunnels, through a " +"series of peers,\n" +"and then using that tunnel.\n" +"Messages are repeatedly encrypted by the originator, and then decrypted " +"by each hop.\n" +"During the building phase, only the routing instructions for the next hop" +" are exposed to each peer.\n" +"During the operating phase, messages are passed through the tunnel, and " +"the\n" +"message and its routing instructions are only exposed to the endpoint of " +"the tunnel." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:49 +#, python-format +msgid "" +"This is similar to the way Mixmaster\n" +"(see network comparisons) sends messages " +"- taking a message, encrypting it\n" +"to the recipient's public key, taking that encrypted message and " +"encrypting\n" +"it (along with instructions specifying the next hop), and then taking " +"that\n" +"resulting encrypted message and so on, until it has one layer of " +"encryption\n" +"per hop along the path." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:58 +msgid "" +"In this sense, \"garlic routing\" as a general concept is identical to " +"\"onion routing\".\n" +"As implemented in I2P, of course, there are several differences from the " +"implementation in Tor; see below.\n" +"Even so, there are substantial similarities such that I2P benefits from a" +"\n" +"large amount of" +" academic research on onion routing,\n" +"Tor, and similar " +"mixnets." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:67 +msgid "Bundling Multiple Messages" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:68 +msgid "" +"Michael Freedman defined \"garlic routing\" as an extension to onion " +"routing,\n" +"in which multiple messages are bundled together.\n" +"He called each message a \"bulb\".\n" +"All the messages, each with its own delivery instructions, are exposed at" +" the\n" +"endpoint.\n" +"This allows the efficient bundling of an onion routing \"reply block\" " +"with the original message." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:77 +msgid "" +"This concept is implemented in I2P, as described below.\n" +"Our term for garlic \"bulbs\" is \"cloves\".\n" +"Any number of messages can be\n" +"contained, instead of just a single message.\n" +"This is a significant distinction from the onion routing implemented in " +"Tor.\n" +"However, it is only one of many major architectural differences between " +"I2P and Tor;\n" +"perhaps it is not, by itself, enough to justify a change in terminology." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:87 +msgid "" +"Another difference\n" +"from the method described by Freedman\n" +"is that the path is unidirectional - there is no \"turning point\" as " +"seen in onion routing\n" +"or mixmaster reply blocks, which greatly simplifies the algorithm and " +"allows for more flexible\n" +"and reliable delivery." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:97 +#, python-format +msgid "" +"In some cases, \"garlic encryption\" may simply mean\n" +"ElGamal/AES+SessionTag encryption\n" +"(without multiple layers)." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:105 +msgid "\"Garlic\" Methods in I2P" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:106 +msgid "" +"Now that we've defined various \"garlic\" terms, we can say that\n" +"I2P uses garlic routing, bundling and encryption in three places:" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:111 +msgid "For building and routing through tunnels (layered encryption)" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:112 +msgid "" +"For determining the success or failure of end to end message delivery " +"(bundling)" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:113 +msgid "" +"For publishing some network database entries (dampening the probability " +"of a successful traffic analysis attack) (ElGamal/AES)" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:116 +msgid "" +"There are also significant ways that this technique can be used to " +"improve the performance of the network, \n" +"exploiting transport latency/throughput tradeoffs, and branching data " +"through redundant paths to increase reliability." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:122 +msgid "Tunnel Building and Routing" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:123 +msgid "" +"In I2P, tunnels are unidirectional. Each party builds two tunnels,\n" +"one for outbound and one for inbound traffic.\n" +"Therefore, four tunnels are required for a single round-trip message and " +"reply." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:129 +#, python-format +msgid "" +"Tunnels are built, and then used, with layered encryption.\n" +"This is described on the\n" +"tunnel implementation page.\n" +"Tunnel building details are defined on\n" +"this page.\n" +"We use\n" +"ElGamal/AES+SessionTag for the encryption." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:141 +#, python-format +msgid "" +"Tunnels are a general-purpose mechanism to transport all\n" +"I2NP messages, and\n" +"Garlic Messages are not used to " +"build tunnels.\n" +"We do not bundle multiple\n" +"I2NP messages into a single\n" +"Garlic Message for unwrapping at " +"the outbound tunnel endpoint;\n" +"the tunnel encryption is sufficient." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:152 +msgid "End-to-End Message Bundling" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:153 +#, python-format +msgid "" +"At the layer above tunnels, I2P delivers end-to-end messages between\n" +"Destinations.\n" +"Just as within a single tunnel, we use\n" +"ElGamal/AES+SessionTag for the encryption." +"\n" +"Each client message as delivered to the router through the\n" +"I2CP interface becomes a single\n" +"Garlic Clove\n" +"with its own\n" +"Delivery " +"Instructions,\n" +"inside a\n" +"Garlic Message.\n" +"Delivery Instructions may specify a Destination, Router, or Tunnel." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:171 +msgid "" +"Generally, a Garlic Message will contain only one clove.\n" +"However, the router will periodically bundle two additional\n" +"cloves in the Garlic Message:" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:176 +msgid "Garlic Message Cloves" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:179 +#, python-format +msgid "" +"A\n" +"Delivery Status Message,\n" +"with\n" +"Delivery " +"Instructions\n" +"specifying that it be sent back to the originating router as an " +"acknowledgment.\n" +"This is similar to the \"reply block\" or \"reply onion\"\n" +"described in the references.\n" +"It is used for determining the success or failure of end to end message " +"delivery.\n" +"The originating router may, upon failure to receive the Delivery Status " +"Message\n" +"within the expected time period, modify the routing to the far-end " +"Destination,\n" +"or take other actions." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:192 +#, python-format +msgid "" +"A\n" +"Database Store Message,\n" +"containing a\n" +"LeaseSet\n" +"for the originating Destination, with\n" +"Delivery " +"Instructions\n" +"specifying the far-end destination's router.\n" +"By periodically bundling a LeaseSet, the router ensures that the far-end " +"will be able\n" +"to maintain communications.\n" +"Otherwise the far-end would have to query a floodfill router for the " +"network database entry,\n" +"and all LeaseSets would have to be published to the network database, as " +"explained on the\n" +"network database page." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:210 +#, python-format +msgid "" +"By default, the Delivery Status and Database Store Messages\n" +"are bundled when the local LeaseSet changes, when additional\n" +"Session Tags\n" +"are delivered, or if the messages have not been bundled in the previous " +"minute.\n" +"As of release 0.9.2, the client may configure the default number of " +"Session Tags to send\n" +"and the low tag threshold for the current session.\n" +"See the I2CP options specification for " +"details.\n" +"The session settings may also be overridden on a per-message basis.\n" +"See the I2CP Send Message" +" Expires specification for details." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:224 +msgid "" +"Obviously, the additional messages are currently bundled for specific " +"purposes,\n" +"and not part of a general-purpose routing scheme." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:229 +msgid "" +"As of release 0.9.12, the Delivery Status Message is wrapped in another " +"Garlic Message\n" +"by the originator so that the contents are encrypted and not visible to " +"routers on the return path." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:235 +msgid "Storage to the Floodfill Network Database" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:236 +#, python-format +msgid "" +"As explained on the\n" +"network database page,\n" +"local\n" +"LeaseSets\n" +"are sent to floodfill routers in a\n" +"Database Store Message\n" +"wrapped in a\n" +"Garlic Message\n" +"so it is not visible to the tunnel's outbound gateway." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:252 +#, python-format +msgid "" +"The Garlic Message mechanism is very flexible and provides a structure " +"for\n" +"implementing many types of mixnet delivery methods.\n" +"Together with the unused delay option in the\n" +"tunnel" +" message Delivery Instructions,\n" +"a wide spectrum of batching, delay, mixing, and routing strategies are " +"possible." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:260 +msgid "" +"In particular, there is potential for much more flexibility at the " +"outbound tunnel endpoint.\n" +"Messages could possibly be routed from there to one of several tunnels\n" +"(thus minimizing point-to-point connections), or multicast to several " +"tunnels\n" +"for redundancy, or streaming audio and video." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:267 +msgid "" +"Such experiments may conflict with the need to ensure security and " +"anonymity, such\n" +"as limiting certain routing paths, restricting the types of I2NP messages" +" that may\n" +"be forwarded along various paths, and enforcing certain message " +"expiration times." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:273 +#, python-format +msgid "" +"As a part of\n" +"ElGamal/AES encryption,\n" +"a garlic message contains a sender\n" +"specified amount of padding data, allowing the sender to take active " +"countermeasures \n" +"against traffic analysis.\n" +"This is not currently used, beyond the requirement to pad to a multiple " +"of 16 bytes." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:282 +#, python-format +msgid "" +"Encryption of additional messages to and from the\n" +"floodfill routers." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:290 +#: i2p2www/pages/site/docs/how/peer-selection.html:296 +msgid "References" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:292 +msgid "" +"The term garlic routing was first coined in Roger Dingledine's Free Haven" +" \n" +"Master's thesis " +"(June 2000),\n" +"see Section 8.1.1 authored by\n" +"Michael J. Freedman." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:299 +msgid "Onion router publications" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:301 +msgid "Onion Routing on Wikipedia" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:303 +msgid "Garlic Routing on Wikipedia" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:305 +#, python-format +msgid "" +"I2P Meeting 58 (2003) discussing the " +"implementation of garlic routing" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:311 +msgid "Free Haven publications" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:313 +msgid "" +"Onion routing was first described in Hiding Routing Information\n" +"by David M. Goldschlag, Michael G. Reed, and Paul F. Syverson in 1996." +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:2 +msgid "A Gentle Introduction to How I2P Works" +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:4 +msgid "" +"I2P is a project to build, deploy, and maintain a network supporting " +"secure and anonymous\n" +"communication. People using I2P are in control of the tradeoffs between " +"anonymity, reliability,\n" +"bandwidth usage, and latency. There is no central point in the network on" +" which pressure can be\n" +"exerted to compromise the integrity, security, or anonymity of the " +"system. The network supports\n" +"dynamic reconfiguration in response to various attacks, and has been " +"designed to make use of\n" +"additional resources as they become available. Of course, all aspects of " +"the network are open and\n" +"freely available." +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:14 +msgid "" +"Unlike many other anonymizing networks, I2P doesn't try to provide " +"anonymity by hiding the\n" +"originator of some communication and not the recipient, or the other way " +"around. I2P is designed to\n" +"allow peers using I2P to communicate with each other anonymously — " +"both sender and recipient\n" +"are unidentifiable to each other as well as to third parties. For " +"example, today there are both\n" +"in-I2P web sites (allowing anonymous publishing / hosting) as well as " +"HTTP proxies to the normal web\n" +"(allowing anonymous web browsing). Having the ability to run servers " +"within I2P is essential, as it\n" +"is quite likely that any outbound proxies to the normal Internet will be " +"monitored, disabled, or\n" +"even taken over to attempt more malicious attacks." +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:25 +#, python-format +msgid "" +"The network itself is message oriented - it is essentially a secure and " +"anonymous IP layer, where\n" +"messages are addressed to cryptographic keys (Destinations) and can be " +"significantly larger than IP\n" +"packets. Some example uses of the network include \"eepsites\" " +"(webservers hosting normal web\n" +"applications within I2P), a BitTorrent client (\"I2PSnark\"), or a " +"distributed data store. With the\n" +"help of the I2PTunnel application, we are " +"able to stream traditional\n" +"TCP/IP applications over I2P, such as SSH, IRC, a squid proxy, and even " +"streaming audio. Most people\n" +"will not use I2P directly, or even need to know they're using it. Instead" +" their view will be of one\n" +"of the I2P enabled applications, or perhaps as a little controller app to" +" turn on and off various\n" +"proxies to enable the anonymizing functionality." +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:37 +#, python-format +msgid "" +"An essential part of designing, developing, and testing an anonymizing " +"network is to define the threat model, since there is no such thing " +"as \"true\" anonymity, just\n" +"increasingly expensive costs to identify someone. Briefly, I2P's intent " +"is to allow people to\n" +"communicate in arbitrarily hostile environments by providing good " +"anonymity, mixed in with\n" +"sufficient cover traffic provided by the activity of people who require " +"less anonymity. This way,\n" +"some users can avoid detection by a very powerful adversary, while others" +" will try to evade a weaker\n" +"entity, all on the same network, where each one's messages are " +"essentially indistinguishable\n" +"from the others." +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:48 +msgid "Why?" +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:49 +#, python-format +msgid "" +"There are a multitude of reasons why we need a system to support " +"anonymous communication, and\n" +"everyone has their own personal rationale. There are many other\n" +"efforts working on finding ways to provide varying degrees of " +"anonymity to people through the\n" +"Internet, but we could not find any that met our needs or threat model." +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:56 +msgid "How?" +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:58 +#, python-format +msgid "" +"The network at a glance is made up of a set of nodes (\"routers\") with a" +" number of unidirectional\n" +"inbound and outbound virtual paths (\"tunnels\", as outlined on the tunnel routing page). Each router is " +"identified by a cryptographic RouterIdentity which is\n" +"typically long lived. These routers communicate with each other through " +"existing transport\n" +"mechanisms (TCP, UDP, etc), passing various messages. Client applications" +" have their own\n" +"cryptographic identifier (\"Destination\") which enables it to send and " +"receive messages. These\n" +"clients can connect to any router and authorize the temporary allocation " +"(\"lease\") of some tunnels\n" +"that will be used for sending and receiving messages through the network." +" I2P has its own internal\n" +"network database (using a modification of the " +"Kademlia algorithm) for\n" +"distributing routing and contact information securely." +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:71 +msgid "Network topology example" +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:73 +msgid "" +"In the above, Alice, Bob, Charlie, and Dave are all running routers with " +"a single Destination on\n" +"their local router. They each have a pair of 2-hop inbound tunnels per " +"destination (labeled 1, 2, 3,\n" +"4, 5 and 6), and a small subset of each of those router's outbound tunnel" +" pool is shown with 2-hop\n" +"outbound tunnels. For simplicity, Charlie's inbound tunnels and Dave's " +"outbound tunnels are not\n" +"shown, nor are the rest of each router's outbound tunnel pool (typically " +"stocked with a few tunnels\n" +"at a time). When Alice and Bob talk to each other, Alice sends a message " +"out one of her (pink)\n" +"outbound tunnels targeting one of Bob's (green) inbound tunnels (tunnel 3" +" or 4). She knows to send\n" +"to those tunnels on the correct router by querying the network database, " +"which is constantly updated\n" +"as new leases are authorized and old ones expire." +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:85 +#, python-format +msgid "" +"If Bob wants to reply to Alice, he simply goes through the same process -" +" send a message out one of\n" +"his outbound tunnels targeting one of Alice's inbound tunnels (tunnel 1 " +"or 2). To make things\n" +"easier, most messages sent between Alice and Bob are garlic\n" +"wrapped, bundling the sender's own current lease information so that the " +"recipient can reply\n" +"immediately without having to look in the network database for the " +"current data." +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:93 +#, python-format +msgid "" +"To deal with a wide range of attacks, I2P is fully distributed with no " +"centralized resources - and\n" +"hence there are no directory servers keeping statistics regarding the " +"performance and reliability of\n" +"routers within the network. As such, each router must keep and maintain " +"profiles of various routers\n" +"and is responsible for selecting appropriate peers to meet the anonymity," +" performance, and\n" +"reliability needs of the users, as described in the peer selection\n" +"page." +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:102 +#, python-format +msgid "" +"The network itself makes use of a significant number of cryptographic\n" +"techniques and algorithms - a full laundry list includes 2048bit " +"ElGamal encryption, 256bit AES\n" +"in CBC mode with PKCS#5 padding, 1024bit DSA signatures, SHA256 hashes, " +"2048bit Diffie-Hellman\n" +"negotiated connections with station to station authentication, and ElGamal / AES+SessionTag." +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:110 +msgid "" +"Content sent over I2P is encrypted through three layers garlic encryption" +" (used to verify the\n" +"delivery of the message to the recipient), tunnel encryption (all " +"messages passing through a tunnel\n" +"is encrypted by the tunnel gateway to the tunnel endpoint), and inter " +"router transport layer\n" +"encryption (e.g. the TCP transport uses AES256 with ephemeral keys)." +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:117 +msgid "" +"End-to-end (I2CP) encryption (client application to server application) " +"was disabled in I2P release\n" +"0.6; end-to-end (garlic) encryption (I2P client router to I2P server " +"router) from Alice's router \"a\"\n" +"to Bob's router \"h\" remains. Notice the different use of terms! All " +"data from a to h is end-to-end\n" +"encrypted, but the I2CP connection between the I2P router and the " +"applications is not end-to-end\n" +"encrypted! A and h are the routers of Alice and Bob, while Alice and Bob " +"in following chart are the\n" +"applications running atop of I2P." +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:126 +msgid "End to end layered encryption" +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:128 +#, python-format +msgid "" +"The specific use of these algorithms are outlined elsewhere." +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:132 +msgid "" +"The two main mechanisms for allowing people who need strong anonymity to " +"use the network are\n" +"explicitly delayed garlic routed messages and more comprehensive tunnels " +"to include support for\n" +"pooling and mixing messages. These are currently planned for release 3.0," +" but garlic routed messages\n" +"with no delays and FIFO tunnels are currently in place. Additionally, the" +" 2.0 release will allow\n" +"people to set up and operate behind restricted routes (perhaps with " +"trusted peers), as well as the\n" +"deployment of more flexible and anonymous transports." +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:141 +#, python-format +msgid "" +"Some questions have been raised with regards to the scalability of I2P, " +"and reasonably so. There\n" +"will certainly be more analysis over time, but peer lookup and " +"integration should be bounded by\n" +"O(log(N)) due to the network " +"database's algorithm, while end\n" +"to end messages should be O(1) (scale free), since messages " +"go out K hops through the\n" +"outbound tunnel and another K hops through the inbound tunnel, with K no " +"longer than 3. The size of\n" +"the network (N) bears no impact." +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:150 +msgid "When?" +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:151 +#, python-format +msgid "" +"I2P initially began in Feb 2003 as a proposed modification to Freenet to allow it to use " +"alternate transports, such as JMS, then grew into its own as an\n" +"'anonCommFramework' in April 2003, turning into I2P in July, with code " +"being written in earnest\n" +"starting in August '03. I2P is currently under development, following the" +" roadmap." +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:161 +msgid "Who?" +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:162 +#, python-format +msgid "" +"We have a small team spread around several " +"continents, working to advance\n" +"different aspects of the project. We are very open to other developers " +"who want to get involved and\n" +"anyone else who would like to contribute in other ways, such as " +"critiques, peer review, testing,\n" +"writing I2P enabled applications, or documentation. The entire system is " +"open source - the router\n" +"and most of the SDK are outright public domain with some BSD and Cryptix " +"licensed code, while some\n" +"applications like I2PTunnel and I2PSnark are GPL. Almost everything is " +"written in Java (1.5+),\n" +"though some third party applications are being written in Python and " +"other languages. The code works\n" +"on Sun Java SE and other Java Virtual" +" Machines." +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:173 +msgid "Where?" +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:174 +#, python-format +msgid "" +"Anyone interested should join us on the IRC channel #i2p-dev (hosted " +"concurrently on irc.freenode.net,\n" +"irc.postman.i2p, irc.echelon.i2p, irc.dg.i2p and irc.oftc.net). There are" +" currently no\n" +"scheduled development meetings, however archives" +" are available." +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:180 +#, python-format +msgid "The current source is available in monotone." +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:185 +#, python-format +msgid "See the Index to Technical Documentation." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:2 +msgid "The Network Database" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:3 +#: i2p2www/pages/site/docs/transport/ntcp.html:3 +#: i2p2www/pages/site/docs/transport/ssu.html:3 +msgid "September 2017" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:8 +msgid "" +"I2P's netDb is a specialized distributed database, containing \n" +"just two types of data - router contact information (RouterInfos) " +"and destination contact\n" +"information (LeaseSets). Each piece of data is signed by the " +"appropriate party and verified\n" +"by anyone who uses or stores it. In addition, the data has liveliness " +"information\n" +"within it, allowing irrelevant entries to be dropped, newer entries to " +"replace\n" +"older ones, and protection against certain classes of attack." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:17 +msgid "" +"The netDb is distributed with a simple technique called \"floodfill\",\n" +"where a subset of all routers, called \"floodfill routers\", maintains " +"the distributed database." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:25 +msgid "" +"When an I2P router wants to contact another router, they need to know " +"some \n" +"key pieces of data - all of which are bundled up and signed by the router" +" into\n" +"a structure called the \"RouterInfo\", which is distributed with the " +"SHA256 of the router's identity\n" +"as the key. The structure itself contains:" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:32 +msgid "" +"The router's identity (a 2048bit ElGamal encryption key, a signing key, " +"and a certificate)" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:33 +msgid "" +"The contact addresses at which it can be reached (e.g. TCP: example.org " +"port 4108)" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:34 +msgid "When this was published" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:35 +msgid "A set of arbitrary text options" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:36 +msgid "The signature of the above, generated by the identity's signing key" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:39 +msgid "Expected Options" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:41 +msgid "" +"The following text options, while not strictly required, are expected\n" +"to be present:" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:47 +msgid "" +"Capabilities flags - used to indicate floodfill participation, " +"approximate bandwidth, and perceived reachability" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:49 +#: i2p2www/pages/site/docs/how/network-database.html:287 +msgid "Floodfill" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:50 +msgid "Hidden" +msgstr "Amagat" + +#: i2p2www/pages/site/docs/how/network-database.html:51 +#, python-format +msgid "Under %(amount)s shared bandwidth" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:52 +#: i2p2www/pages/site/docs/how/network-database.html:53 +#: i2p2www/pages/site/docs/how/network-database.html:54 +#: i2p2www/pages/site/docs/how/network-database.html:55 +#: i2p2www/pages/site/docs/how/network-database.html:56 +#, python-format +msgid "%(amount)s shared bandwidth" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:52 +msgid "default" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:57 +msgid "Reachable" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:58 +msgid "Unreachable" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:59 +#, python-format +msgid "Over %(amount)s shared bandwidth" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:66 +msgid "The core library version, always the same as the router version" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:70 +msgid "" +"Basic network compatibility - A router will refuse to communicate with a " +"peer having a different netId" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:73 +msgid "Used to determine compatibility with newer features and messages" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:76 +msgid "" +"Always sent as 90m, for compatibility with an older scheme where routers " +"published their actual uptime,\n" +"and only sent tunnel requests to peers whose uptime was more than 60m" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:82 +msgid "" +"These values are used by other routers for basic decisions.\n" +"Should we connect to this router? Should we attempt to route a tunnel " +"through this router?\n" +"The bandwidth capability flag, in particular, is used only to determine " +"whether\n" +"the router meets a minimum threshold for routing tunnels.\n" +"Above the minimum threshold, the advertised bandwidth is not used or " +"trusted anywhere\n" +"in the router, except for display in the user interface and for debugging" +" and network analysis." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:91 +msgid "Additional Options" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:93 +#, python-format +msgid "" +"Additional text options include\n" +"a small number of statistics about the router's health, which are " +"aggregated by\n" +"sites such as %(stats)s\n" +"for network performance analysis and debugging.\n" +"These statistics were chosen to provide data crucial to the developers,\n" +"such as tunnel build success rates, while balancing the need for such " +"data\n" +"with the side-effects that could result from revealing this data.\n" +"Current statistics are limited to:" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:104 +msgid "Exploratory tunnel build success, reject, and timeout rates" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:105 +msgid "1 hour average number of participating tunnels" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:108 +msgid "" +"Floodfill routers publish additional data on the number of entries in " +"their network database." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:112 +msgid "" +"The data published can be seen in the router's user interface,\n" +"but is not used or trusted within the router.\n" +"As the network has matured, we have gradually removed most of the " +"published\n" +"statistics to improve anonymity, and we plan to remove more in future " +"releases." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:119 +msgid "Family Options" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:121 +msgid "" +"As of release 0.9.24, routers may declare that they are part of a " +"\"family\", operated by the same entity.\n" +"Multiple routers in the same family will not be used in a single tunnel." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:126 +msgid "The family options are:" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:132 +msgid "The family name" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:147 +msgid "RouterInfo Expiration" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:148 +msgid "" +"RouterInfos have no set expiration time.\n" +"Each router is free to maintain its own local policy to trade off the " +"frequency of RouterInfo lookups\n" +"with memory or disk usage.\n" +"In the current implementation, there are the following general policies:" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:155 +msgid "" +"There is no expiration during the first hour of uptime, as the persistent" +" stored data may be old." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:158 +msgid "There is no expiration if there are 25 or less RouterInfos." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:161 +msgid "" +"As the number of local RouterInfos grows, the expiration time shrinks, in" +" an attempt to maintain\n" +"a reasonable number RouterInfos. The expiration time with less than 120 " +"routers is 72 hours,\n" +"while expiration time with 300 routers is around 30 hours." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:166 +#, python-format +msgid "" +"RouterInfos containing SSU introducers expire in " +"about an hour, as\n" +"the introducer list expires in about that time." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:170 +msgid "" +"Floodfills use a short expiration time (1 hour) for all local " +"RouterInfos, as valid RouterInfos will\n" +"be frequently republished to them." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:176 +msgid "RouterInfo Persistent Storage" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:178 +msgid "" +"RouterInfos are periodically written to disk so that they are available " +"after a restart." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:186 +msgid "RouterInfo specification" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:189 +msgid "RouterInfo Javadoc" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:194 +msgid "" +"The second piece of data distributed in the netDb is a \"LeaseSet\" - " +"documenting\n" +"a group of tunnel entry points (leases) for a particular client " +"destination.\n" +"Each of these leases specify the following information:" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:200 +msgid "The tunnel gateway router (by specifying its identity)" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:201 +msgid "The tunnel ID on that router to send messages with (a 4 byte number)" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:202 +msgid "When that tunnel will expire." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:204 +msgid "" +"The LeaseSet itself is stored in the netDb under\n" +"the key derived from the SHA256 of the destination." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:209 +msgid "In addition to these leases, the LeaseSet includes:" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:213 +msgid "" +"The destination itself (a 2048bit ElGamal encryption key, a signing key " +"and a certificate)" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:214 +msgid "" +"Additional encryption public key: used for end-to-end encryption of " +"garlic messages" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:215 +msgid "" +"Additional signing public key: intended for LeaseSet revocation, but is " +"currently unused." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:216 +msgid "" +"Signature of all the LeaseSet data, to make sure the Destination " +"published the LeaseSet." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:220 +msgid "Lease specification" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:222 +msgid "LeaseSet specification" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:225 +msgid "Lease Javadoc" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:227 +msgid "LeaseSet Javadoc" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:231 +msgid "Unpublished LeaseSets" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:232 +msgid "" +"A LeaseSet for a destination used only for outgoing connections is " +"unpublished.\n" +"It is never sent for publication to a floodfill router.\n" +"\"Client\" tunnels, such as those for web browsing and IRC clients, are " +"unpublished.\n" +"Servers will still be able to send messages back to those unpublished " +"destinations,\n" +"because of I2NP storage messages." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:242 +msgid "Revoked LeaseSets" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:243 +msgid "" +"A LeaseSet may be revoked by publishing a new LeaseSet with zero " +"leases.\n" +"Revocations must be signed by the additional signing key in the LeaseSet." +"\n" +"Revocations are not fully implemented, and it is unclear if they have any" +" practical use.\n" +"This is the only planned use for that signing key, so it is currently " +"unused." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:250 +msgid "Encrypted LeaseSets" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:251 +msgid "" +"In an encrypted LeaseSet, all Leases are encrypted with a separate" +" key.\n" +"The leases may only be decoded, and thus the destination may only be " +"contacted,\n" +"by those with the key.\n" +"There is no flag or other direct indication that the LeaseSet is " +"encrypted.\n" +"Encrypted LeaseSets are not widely used, and it is a topic for future " +"work to\n" +"research whether the user interface and implementation of encrypted " +"LeaseSets could be improved." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:260 +msgid "LeaseSet Expiration" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:261 +msgid "" +"All Leases (tunnels) are valid for 10 minutes; therefore, a LeaseSet " +"expires\n" +"10 minutes after the earliest creation time of all its Leases." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:266 +msgid "LeaseSet Persistent Storage" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:267 +msgid "" +"There is no persistent storage of LeaseSet data since they expire so " +"quickly." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:272 +msgid "Bootstrapping" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:273 +msgid "" +"The netDb is decentralized, however you do need at\n" +"least one reference to a peer so that the integration process\n" +"ties you in. This is accomplished by \"reseeding\" your router with the " +"RouterInfo\n" +"of an active peer - specifically, by retrieving their " +"routerInfo-$hash.dat\n" +"file and storing it in your netDb/ directory. Anyone can " +"provide\n" +"you with those files - you can even provide them to others by exposing " +"your own\n" +"netDb directory. To simplify the process,\n" +"volunteers publish their netDb directories (or a subset) on the regular " +"(non-i2p) network,\n" +"and the URLs of these directories are hardcoded in I2P.\n" +"When the router starts up for the first time, it automatically fetches " +"from\n" +"one of these URLs, selected at random." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:288 +msgid "" +"The floodfill netDb is a simple distributed storage mechanism.\n" +"The storage algorithm is simple: send the data to the closest peer that " +"has advertised itself\n" +"as a floodfill router. Then wait 10 seconds, pick another floodfill " +"router and ask them \n" +"for the entry to be sent, verifying its proper insertion / distribution. " +"If the \n" +"verification peer doesn't reply, or they don't have the entry, the sender" +" \n" +"repeats the process. When the peer in the floodfill netDb receives a " +"netDb \n" +"store from a peer not in the floodfill netDb, they send it to a subset of" +" the floodfill netDb-peers.\n" +"The peers selected are the ones closest (according to the XOR-metric) to a specific key." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:299 +msgid "" +"Determining who is part of the floodfill netDb is trivial - it is exposed" +" in each \n" +"router's published routerInfo as a capability." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:304 +msgid "" +"Floodfills have no central authority and do not form a \"consensus\" -\n" +"they only implement a simple DHT overlay." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:311 +msgid "Floodfill Router Opt-in" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:313 +msgid "" +"Unlike Tor, where the directory servers are hardcoded and trusted,\n" +"and operated by known entities,\n" +"the members of the I2P floodfill peer set need not be trusted, and\n" +"change over time." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:320 +msgid "" +"To increase reliability of the netDb, and minimize the impact\n" +"of netDb traffic on a router, floodfill is automatically enabled\n" +"only on routers that are configured with high bandwidth limits.\n" +"Routers with high bandwidth limits (which must be manually configured,\n" +"as the default is much lower) are presumed to be on lower-latency\n" +"connections, and are more likely to be available 24/7.\n" +"The current minimum share bandwidth for a floodfill router is 128 " +"KBytes/sec." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:330 +msgid "" +"In addition, a router must pass several additional tests for health\n" +"(outbound message queue time, job lag, etc.) before floodfill operation " +"is\n" +"automatically enabled." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:336 +msgid "" +"With the current rules for automatic opt-in, approximately 6% of\n" +"the routers in the network are floodfill routers." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:341 +msgid "" +"While some peers are manually configured to be floodfill,\n" +"others are simply high-bandwidth routers who automatically volunteer\n" +"when the number of floodfill peers drops below a threshold.\n" +"This prevents any long-term network damage from losing most or all\n" +"floodfills to an attack.\n" +"In turn, these peers will un-floodfill themselves when there are\n" +"too many floodfills outstanding." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:351 +msgid "Floodfill Router Roles" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:352 +msgid "" +"A floodfill router's only services that are in addition to those of non-" +"floodfill routers\n" +"are in accepting netDb stores and responding to netDb queries.\n" +"Since they are generally high-bandwidth, they are more likely to " +"participate in a high number of tunnels\n" +"(i.e. be a \"relay\" for others), but this is not directly related to " +"their distributed database services." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:360 +msgid "Kademlia Closeness Metric" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:361 +msgid "" +"The netDb uses a simple Kademlia-style XOR metric to determine closeness." +"\n" +"The SHA256 hash of the key being looked up or stored is XOR-ed with\n" +"the hash of the router in question to determine closeness.\n" +"A modification to this algorithm is done to increase the costs of Sybil attacks.\n" +"Instead of the SHA256 hash of the key being looked up of stored, the " +"SHA256 hash is taken\n" +"of the 32-byte binary search key appended with the UTC date represented " +"as an 8-byte ASCII string yyyyMMdd, i.e. SHA256(key + yyyyMMdd).\n" +"This is called the \"routing key\", and it changes every day at midnight " +"UTC.\n" +"Only the search key is modified in this way, not the floodfill router " +"hashes.\n" +"The daily transformation of the DHT is sometimes called \"keyspace " +"rotation\",\n" +"although it isn't strictly a rotation." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:374 +msgid "" +"Routing keys are never sent on-the-wire in any I2NP message, they are " +"only used locally for\n" +"determination of distance." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:381 +msgid "Storage, Verification, and Lookup Mechanics" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:383 +msgid "RouterInfo Storage to Peers" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:384 +#, python-format +msgid "" +"I2NP DatabaseStoreMessages containing the local " +"RouterInfo are exchanged with peers\n" +"as a part of the initialization of a NTCP\n" +"or SSU transport connection." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:391 +msgid "LeaseSet Storage to Peers" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:392 +#, python-format +msgid "" +"I2NP DatabaseStoreMessages containing the local " +"LeaseSet are periodically exchanged with peers\n" +"by bundling them in a garlic message along with normal traffic from the " +"related Destination.\n" +"This allows an initial response, and later responses, to be sent to an " +"appropriate Lease,\n" +"without requiring any LeaseSet lookups, or requiring the communicating " +"Destinations to have published LeaseSets at all." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:400 +msgid "" +"The DatabaseStoreMessage should be sent to the floodfill that is closest\n" +"to the current routing key for the RouterInfo or LeaseSet being stored.\n" +"Currently, the closest floodfill is found by a search in the local " +"database.\n" +"Even if that floodfill is not actually closest, it will flood it " +"\"closer\" by\n" +"sending it to multiple other floodfills.\n" +"This provides a high degree of fault-tolerance." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:409 +msgid "" +"In traditional Kademlia, a peer would do a \"find-closest\" search before" +" inserting\n" +"an item in the DHT to the closest target. As the verify operation will " +"tend to\n" +"discover closer floodfills if they are present, a router will quickly " +"improve\n" +"its knowledge of the DHT \"neighborhood\" for the RouterInfo and " +"LeaseSets it regularly publishes.\n" +"While I2NP does not define a \"find-closest\" message, if it becomes " +"necessary,\n" +"a router may simply do an iterative search for a key with the least " +"significant bit flipped\n" +"(i.e. key ^ 0x01) until no closer peers are received in the " +"DatabaseSearchReplyMessages.\n" +"This ensures that the true closest peer will be found even if a more-" +"distant peer had\n" +"the netdb item." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:422 +msgid "RouterInfo Storage to Floodfills" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:423 +#, python-format +msgid "" +"A router publishes its own RouterInfo by directly connecting to a " +"floodfill router\n" +"and sending it a I2NP DatabaseStoreMessage\n" +"with a nonzero Reply Token. The message is not end-to-end garlic " +"encrypted,\n" +"as this is a direct connection, so there are no intervening routers\n" +"(and no need to hide this data anyway).\n" +"The floodfill router replies with a\n" +"I2NP DeliveryStatusMessage,\n" +"with the Message ID set to the value of the Reply Token." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:437 +msgid "LeaseSet Storage to Floodfills" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:438 +msgid "" +"Storage of LeaseSets is much more sensitive than for RouterInfos, as a " +"router\n" +"must take care that the LeaseSet cannot be associated with the router." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:443 +#, python-format +msgid "" +"A router publishes a local LeaseSet by\n" +"sending a I2NP DatabaseStoreMessage\n" +"with a nonzero Reply Token over an outbound client tunnel for that " +"Destination.\n" +"The message is end-to-end garlic encrypted using the Destination's " +"Session Key Manager,\n" +"to hide the message from the tunnel's outbound endpoint.\n" +"The floodfill router replies with a\n" +"I2NP DeliveryStatusMessage,\n" +"with the Message ID set to the value of the Reply Token.\n" +"This message is sent back to one of the client's inbound tunnels." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:456 +msgid "Flooding" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:457 +#, python-format +msgid "" +"After a floodfill router receives a DatabaseStoreMessage containing a\n" +"valid RouterInfo or LeaseSet which is newer than that previously stored " +"in its\n" +"local NetDb, it \"floods\" it.\n" +"To flood a NetDb entry, it looks up several (currently %(floodsize)s) " +"floodfill routers closest to the routing key\n" +"of the NetDb entry. (The routing key is the SHA256 Hash of the " +"RouterIdentity or Destination with the date (yyyyMMdd) appended.)\n" +"By flooding to those closest to the key, not closest to itself, the " +"floodfill ensures that the storage\n" +"gets to the right place, even if the storing router did not have good " +"knowledge of the\n" +"DHT \"neighborhood\" for the routing key." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:468 +#, python-format +msgid "" +"The floodfill then directly connects to each of those peers\n" +"and sends it a I2NP DatabaseStoreMessage\n" +"with a zero Reply Token. The message is not end-to-end garlic encrypted,\n" +"as this is a direct connection, so there are no intervening routers\n" +"(and no need to hide this data anyway).\n" +"The other routers do not reply or re-flood, as the Reply Token is zero." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:478 +msgid "RouterInfo and LeaseSet Lookup" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:479 +#, python-format +msgid "" +"The I2NP DatabaseLookupMessage is used to " +"request a netdb entry from a floodfill router.\n" +"Lookups are sent out one of the router's outbound exploratory tunnels.\n" +"The replies are specified to return via one of the router's inbound " +"exploratory tunnels." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:485 +msgid "" +"Lookups are generally sent to the two \"good\" (the connection doesn't " +"fail) floodfill routers closest to the requested key, in parallel." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:489 +#, python-format +msgid "" +"If the key is found locally by the floodfill router, it responds with a\n" +"I2NP DatabaseStoreMessage.\n" +"If the key is not found locally by the floodfill router, it responds with" +" a\n" +"I2NP DatabaseSearchReplyMessage\n" +"containing a list of other floodfill routers close to the key." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:497 +msgid "" +"LeaseSet lookups are garlic encrypted end-to-end as of release 0.9.5.\n" +"RouterInfo lookups are not encrypted and thus are vulnerable to snooping " +"by the outbound endpoint\n" +"(OBEP) of the client tunnel. This is due to the expense of the ElGamal " +"encryption.\n" +"RouterInfo lookup encryption may be enabled in a future release." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:504 +msgid "" +"As of release 0.9.7, replies to a LeaseSet lookup (a DatabaseStoreMessage" +" or a DatabaseSearchReplyMessage)\n" +"will be encrypted by including the session key and tag in the lookup.\n" +"This hides the reply from the inbound gateway (IBGW) of the reply tunnel." +"\n" +"Responses to RouterInfo lookups will be encrypted if we enable the lookup" +" encryption." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:511 +#, python-format +msgid "" +"(Reference: Hashing it out in Public Sections " +"2.2-2.3 for terms below in italics)" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:515 +msgid "" +"Due to the relatively small size of the network and the flooding " +"redundancy of 8x,\n" +"lookups are usually O(1) rather than O(log n) --\n" +"a router is highly likely to know a floodfill router close enough to the " +"key to get the answer on the first try.\n" +"In releases prior to 0.8.9, routers used a lookup redundancy of two\n" +"(that is, two lookups were performed in parallel to different peers), and" +"\n" +"neither recursive nor iterative routing for lookups was " +"implemented.\n" +"Queries were sent through multiple routes simultaneously\n" +"to reduce the chance of query failure." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:526 +msgid "" +"As of release 0.8.9, iterative lookups are implemented with no " +"lookup redundancy.\n" +"This is a more efficient and reliable lookup that will work much better\n" +"when not all floodfill peers are known, and it removes a serious\n" +"limitation to network growth. As the network grows and each router knows " +"only a small\n" +"subset of the floodfill peers, lookups will become O(log n).\n" +"Even if the peer does not return references closer to the key, the lookup" +" continues with\n" +"the next-closest peer, for added robustness, and to prevent a malicious " +"floodfill from\n" +"black-holing a part of the key space. Lookups continue until a total " +"lookup timeout is reached,\n" +"or the maximum number of peers is queried." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:538 +msgid "" +"Node IDs are verifiable in that we use the router hash " +"directly as both the node ID and the Kademlia key.\n" +"Incorrect responses that are not closer to the search key are generally " +"ignored.\n" +"Given the current size of the network, a router has\n" +"detailed knowledge of the neighborhood of the destination ID space." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:547 +msgid "RouterInfo Storage Verification" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:548 +#, python-format +msgid "" +"Note: RouterInfo verification is disabled as of release 0.9.7.1 to " +"prevent\n" +"the attack described in the paper\n" +"Practical Attacks Against the I2P Network.\n" +"It is not clear if verification can be redesigned to be done safely." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:555 +msgid "" +"To verify a storage was successful, a router simply waits about 10 " +"seconds,\n" +"then sends a lookup to another floodfill router close to the key\n" +"(but not the one the store was sent to).\n" +"Lookups sent out one of the router's outbound exploratory tunnels.\n" +"Lookups are end-to-end garlic encrypted to prevent snooping by the " +"outbound endpoint(OBEP)." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:563 +msgid "LeaseSet Storage Verification" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:564 +msgid "" +"To verify a storage was successful, a router simply waits about 10 " +"seconds,\n" +"then sends a lookup to another floodfill router close to the key\n" +"(but not the one the store was sent to).\n" +"Lookups sent out one of the outbound client tunnels for the destination " +"of the LeaseSet being verified.\n" +"To prevent snooping by the OBEP of the outbound tunnel,\n" +"lookups are end-to-end garlic encrypted.\n" +"The replies are specified to return via one of the client's inbound " +"tunnels." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:574 +msgid "" +"As of release 0.9.7, replies for both RouterInfo and LeaseSet lookups (a " +"DatabaseStoreMessage or a DatabaseSearchReplyMessage)\n" +"will be encrypted,\n" +"to hide the reply from the inbound gateway (IBGW) of the reply tunnel." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:582 +msgid "Exploration" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:583 +#, python-format +msgid "" +"Exploration is a special form of netdb lookup, where a router " +"attempts to learn about\n" +"new routers.\n" +"It does this by sending a floodfill router a I2NP DatabaseLookupMessage, looking for a random " +"key.\n" +"As this lookup will fail, the floodfill would normally respond with a\n" +"I2NP DatabaseSearchReplyMessage containing " +"hashes of floodfill routers close to the key.\n" +"This would not be helpful, as the requesting router probably already " +"knows those floodfills,\n" +"and it would be impractical to add ALL floodfill routers to the \"don't " +"include\" field of the lookup.\n" +"For an exploration query, the requesting router adds a router hash of all" +" zeros to the\n" +"\"don't include\" field of the DatabaseLookupMessage.\n" +"The floodfill will then respond only with non-floodfill routers close to " +"the requested key." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:597 +msgid "Notes on Lookup Responses" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:598 +msgid "" +"The response to a lookup request is either a Database Store Message (on " +"success) or a\n" +"Database Search Reply Message (on failure). The DSRM contains a 'from' " +"router hash field\n" +"to indicate the source of the reply; the DSM does not.\n" +"The DSRM 'from' field is unauthenticated and may be spoofed or invalid.\n" +"There are no other response tags. Therefore, when making multiple " +"requests in parallel, it is\n" +"difficult to monitor the performance of the various floodfill routers." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:608 +msgid "MultiHoming" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:610 +msgid "" +"Destinations may be hosted on multiple routers simultaneously, by using " +"the same\n" +"private and public keys (traditionally stored in eepPriv.dat files).\n" +"As both instances will periodically publish their signed LeaseSets to the" +" floodfill peers,\n" +"the most recently published LeaseSet will be returned to a peer " +"requesting a database lookup.\n" +"As LeaseSets have (at most) a 10 minute lifetime, should a particular " +"instance go down,\n" +"the outage will be 10 minutes at most, and generally much less than that." +"\n" +"The multihoming function has been verified and is in use by several " +"services on the network." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:620 +msgid "Threat Analysis" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:621 +#, python-format +msgid "" +"Also discussed on the threat model " +"page." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:625 +msgid "" +"A hostile user may attempt to harm the network by\n" +"creating one or more floodfill routers and crafting them to offer\n" +"bad, slow, or no responses.\n" +"Some scenarios are discussed below." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:632 +msgid "General Mitigation Through Growth" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:633 +#, python-format +msgid "" +"There are currently around %(ffcount)s floodfill routers in the network.\n" +"Most of the following attacks will become more difficult, or have less " +"impact,\n" +"as the network size and number of floodfill routers increase." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:640 +msgid "General Mitigation Through Redundancy" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:641 +#, python-format +msgid "" +"Via flooding, all netdb entries are stored on the %(floodsize)s floodfill" +" routers closest to the key." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:646 +msgid "Forgeries" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:647 +msgid "" +"All netdb entries are signed by their creators, so no router may forge a\n" +"RouterInfo or LeaseSet." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:652 +msgid "Slow or Unresponsive" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:653 +#, python-format +msgid "" +"Each router maintains an expanded set of statistics in the\n" +"peer profile for each floodfill router," +"\n" +"covering various quality metrics for that peer.\n" +"The set includes:" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:660 +msgid "Average response time" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:661 +msgid "Percentage of queries answered with the data requested" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:662 +msgid "Percentage of stores that were successfully verified" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:663 +msgid "Last successful store" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:664 +msgid "Last successful lookup" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:665 +msgid "Last response" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:668 +msgid "" +"Each time a router needs to make a determination on which floodfill " +"router is closest to a key,\n" +"it uses these metrics to determine which floodfill routers are \"good\".\n" +"The methods, and thresholds, used to determine \"goodness\" are " +"relatively new, and\n" +"are subject to further analysis and improvement.\n" +"While a completely unresponsive router will quickly be identified and " +"avoided,\n" +"routers that are only sometimes malicious may be much harder to deal with." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:678 +msgid "Sybil Attack (Full Keyspace)" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:679 +#, python-format +msgid "" +"An attacker may mount a Sybil attack\n" +"by creating a large number of floodfill routers spread throughout the " +"keyspace." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:684 +#, python-format +msgid "" +"(In a related example, a researcher recently created a\n" +"large number of Tor relays.)\n" +"If successful, this could be an effective DOS attack on the entire " +"network." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:690 +msgid "" +"If the floodfills are not sufficiently misbehaving to be marked as " +"\"bad\" using the peer profile\n" +"metrics described above, this is a difficult scenario to handle.\n" +"Tor's response can be much more nimble in the relay case, as the " +"suspicious relays\n" +"can be manually removed from the consensus.\n" +"Some possible responses for the I2P network are listed below, however " +"none of them is completely satisfactory:" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:698 +msgid "" +"Compile a list of bad router hashes or IPs, and announce the list through" +" various means\n" +"(console news, website, forum, etc.); users would have to manually " +"download the list and\n" +"add it to their local \"blacklist\"." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:703 +msgid "" +"Ask everyone in the network to enable floodfill manually (fight Sybil " +"with more Sybil)" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:704 +msgid "Release a new software version that includes the hardcoded \"bad\" list" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:705 +msgid "" +"Release a new software version that improves the peer profile metrics and" +" thresholds,\n" +"in an attempt to automatically identify the \"bad\" peers." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:709 +msgid "" +"Add software that disqualifies floodfills if too many of them are in a " +"single IP block" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:710 +msgid "" +"Implement an automatic subscription-based blacklist controlled by a " +"single individual or group.\n" +"This would essentially implement a portion of the Tor \"consensus\" " +"model.\n" +"Unfortunately it would also give a single individual or group the power " +"to\n" +"block participation of any particular router or IP in the network,\n" +"or even to completely shutdown or destroy the entire network." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:719 +msgid "This attack becomes more difficult as the network size grows." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:725 +msgid "Sybil Attack (Partial Keyspace)" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:726 +#, python-format +msgid "" +"An attacker may mount a Sybil attack\n" +"by creating a small number (8-15) of floodfill routers clustered closely " +"in the keyspace,\n" +"and distribute the RouterInfos for these routers widely.\n" +"Then, all lookups and stores for a key in that keyspace would be directed" +"\n" +"to one of the attacker's routers.\n" +"If successful, this could be an effective DOS attack on a particular " +"eepsite, for example." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:735 +msgid "" +"As the keyspace is indexed by the cryptographic (SHA256) Hash of the key," +"\n" +"an attacker must use a brute-force method to repeatedly generate router " +"hashes\n" +"until he has enough that are sufficiently close to the key.\n" +"The amount of computational power required for this, which is dependent " +"on network\n" +"size, is unknown." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:743 +msgid "" +"As a partial defense against this attack,\n" +"the algorithm used to determine Kademlia \"closeness\" varies over time.\n" +"Rather than using the Hash of the key (i.e. H(k)) to determine closeness," +"\n" +"we use the Hash of the key appended with the current date string, i.e. " +"H(k + YYYYMMDD).\n" +"A function called the \"routing key generator\" does this, which " +"transforms the original key into a \"routing key\".\n" +"In other words, the entire netdb keyspace \"rotates\" every day at UTC " +"midnight.\n" +"Any partial-keyspace attack would have to be regenerated every day, for\n" +"after the rotation, the attacking routers would no longer be close\n" +"to the target key, or to each other." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:755 +msgid "" +"This attack becomes more difficult as the network size grows.\n" +"However, recent research demonstrates that the keyspace rotation is not " +"particularly effective.\n" +"An attacker can precompute numerous router hashes in advance,\n" +"and only a few routers are sufficient to \"eclipse\" a portion\n" +"of the keyspace within a half hour after rotation." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:763 +msgid "" +"One consequence of daily keyspace rotation is that the distributed " +"network database\n" +"may become unreliable for a few minutes after the rotation --\n" +"lookups will fail because the new \"closest\" router has not received a " +"store yet.\n" +"The extent of the issue, and methods for mitigation\n" +"(for example netdb \"handoffs\" at midnight)\n" +"are a topic for further study." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:773 +msgid "Bootstrap Attacks" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:774 +msgid "" +"An attacker could attempt to boot new routers into an isolated\n" +"or majority-controlled network by taking over a reseed website,\n" +"or tricking the developers into adding his reseed website\n" +"to the hardcoded list in the router." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:781 +msgid "Several defenses are possible, and most of these are planned:" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:785 +msgid "" +"Disallow fallback from HTTPS to HTTP for reseeding.\n" +"A MITM attacker could simply block HTTPS, then respond to the HTTP." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:789 +msgid "Bundling reseed data in the installer" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:792 +msgid "Defenses that are implemented:" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:796 +msgid "" +"Changing the reseed task to fetch a subset of RouterInfos from\n" +"each of several reseed sites rather than using only a single site" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:800 +msgid "" +"Creating an out-of-network reseed monitoring service that\n" +"periodically polls reseed websites and verifies that the\n" +"data are not stale or inconsistent with other views of the network" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:805 +msgid "" +"As of release 0.9.14, reseed data is bundled into a signed zip file and\n" +"the signature is verified when downloaded." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:813 +msgid "Query Capture" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:814 +#, python-format +msgid "" +"See also lookup\n" +"(Reference: Hashing it out in Public Sections " +"2.2-2.3 for terms below in italics)" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:819 +msgid "" +"Similar to a bootstrap attack, an attacker using a floodfill router could" +" attempt to \"steer\"\n" +"peers to a subset of routers controlled by him by returning their " +"references." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:824 +msgid "" +"This is unlikely to work via exploration, because exploration is a low-" +"frequency task.\n" +"Routers acquire a majority of their peer references through normal tunnel" +" building activity.\n" +"Exploration results are generally limited to a few router hashes,\n" +"and each exploration query is directed to a random floodfill router." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:831 +#, python-format +msgid "" +"As of release 0.8.9, iterative lookups are implemented.\n" +"For floodfill router references returned in a\n" +"I2NP DatabaseSearchReplyMessage\n" +"response to a lookup,\n" +"these references are followed if they are closer (or the next closest) to" +" the lookup key.\n" +"The requesting router does not trust that the references are\n" +"closer to the key (i.e. they are verifiably correct.\n" +"The lookup also does not stop when no closer key is found, but continues " +"by querying the\n" +"next-closet node, until the timeout or maximum number of queries is " +"reached.\n" +"This prevents a malicious floodfill from black-holing a part of the key " +"space.\n" +"Also, the daily keyspace rotation requires an attacker to regenerate a " +"router info\n" +"within the desired key space region.\n" +"This design ensures that the query capture attack described in\n" +"Hashing it out in Public\n" +"is much more difficult." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:850 +msgid "DHT-Based Relay Selection" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:851 +#, python-format +msgid "(Reference: Hashing it out in Public Section 3)" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:855 +#, python-format +msgid "" +"This doesn't have much to do with floodfill, but see\n" +"the peer selection page\n" +"for a discussion of the vulnerabilities of peer selection for tunnels." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:861 +msgid "Information Leaks" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:862 +#, python-format +msgid "" +"(Reference: In Search of an Anonymous and Secure " +"Lookup Section 3)" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:866 +#, python-format +msgid "" +"This paper addresses weaknesses in the \"Finger Table\" DHT lookups used " +"by Torsk and NISAN.\n" +"At first glance, these do not appear to apply to I2P. First, the use of " +"DHT by Torsk and NISAN\n" +"is significantly different from that in I2P. Second, I2P's network " +"database lookups are only\n" +"loosely correlated to the peer " +"selection and\n" +"tunnel building processes; only " +"previously-known peers\n" +"are used for tunnels.\n" +"Also, peer selection is unrelated to any notion of DHT key-closeness." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:877 +msgid "" +"Some of this may actually be more interesting when the I2P network gets " +"much larger.\n" +"Right now, each router knows a large proportion of the network, so " +"looking up a particular\n" +"Router Info in the network database is not strongly indicative of a " +"future intent to use\n" +"that router in a tunnel. Perhaps when the network is 100 times larger, " +"the lookup may be\n" +"more correlative. Of course, a larger network makes a Sybil attack that " +"much harder." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:885 +#, python-format +msgid "" +"However, the general issue of DHT information leakage in I2P needs " +"further investigation.\n" +"The floodfill routers are in a position to observe queries and gather " +"information.\n" +"Certainly, at a level of f = 0.2 (20% malicious nodes, as " +"specifed in the paper)\n" +"we expect that many of the Sybil threats we describe\n" +"(here,\n" +"here and\n" +"here)\n" +"become problematic for several reasons." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:899 +msgid "Moved to the netdb discussion page" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:903 +msgid "End-to-end encryption of additional netDb lookups and responses." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:907 +msgid "Better methods for tracking lookup responses." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:2 +msgid "Peer Profiling and Selection" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:3 +msgid "July 2010" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:8 +msgid "Peer Profiling" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:10 +#, python-format +msgid "" +"Peer profiling is the process of collecting data based on the " +"observed performance\n" +"of other routers or peers, and classifying those peers into groups.\n" +"Profiling does not use any claimed performance data published by " +"the peer itself\n" +"in the network database." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:17 +msgid "Profiles are used for two purposes:" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:19 +msgid "Selecting peers to relay our traffic through, which is discussed below" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:20 +#, python-format +msgid "" +"Choosing peers from the set of floodfill routers to use for network " +"database storage and queries,\n" +"which is discussed on the network database page" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:27 +#: i2p2www/pages/site/docs/how/peer-selection.html:187 +#: i2p2www/pages/site/docs/tunnels/implementation.html:289 +msgid "Peer Selection" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:28 +msgid "" +"Peer selection is the process of choosing which routers\n" +"on the network we want to relay our messages to go through (which peers " +"will we \n" +"ask to join our tunnels). To accomplish this, we keep track of how each\n" +"peer performs (the peer's \"profile\") and use that data to estimate how" +" \n" +"fast they are, how often they will be able to accept our requests, and \n" +"whether they seem to be overloaded or otherwise unable to perform what\n" +"they agree to reliably." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:38 +#, python-format +msgid "" +"Unlike some other anonymous networks, in I2P,\n" +"claimed bandwidth is untrusted and is only used to avoid those " +"peers\n" +"advertising very low bandwidth insufficient for routing tunnels.\n" +"All peer selection is done through profiling.\n" +"This prevents simple attacks based on peers claiming high bandwidth\n" +"in order to capture large numbers of tunnels.\n" +"It also makes\n" +"timing attacks\n" +"more difficult." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:50 +msgid "" +"Peer selection is done quite frequently, as a router may maintain a large" +" number\n" +"of client and exploratory tunnels, and a tunnel lifetime is only 10 " +"minutes." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:56 +msgid "Further Information" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:57 +#, python-format +msgid "" +"For more information see the paper\n" +"Peer Profiling and Selection in the I2P Anonymous " +"Network\n" +"presented at PET-CON 2009.1.\n" +"See below for notes on minor changes since the " +"paper was published." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:65 +msgid "Profiles" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:66 +#, python-format +msgid "" +"Each peer has a set of data points collected about them, including " +"statistics \n" +"about how long it takes for them to reply to a network database query, " +"how \n" +"often their tunnels fail, and how many new peers they are able to " +"introduce \n" +"us to, as well as simple data points such as when we last heard from them" +" or\n" +"when the last communication error occurred. The specific data points " +"gathered\n" +"can be found in the code." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:75 +msgid "" +"Profiles are fairly small, a few KB. To control memory usage, the profile" +" expiration time\n" +"lessens as the number of profiles grows.\n" +"Profiles are kept in memory until router shutdown, when they are written " +"to disk.\n" +"At startup, the profiles are read so the router need not reinitialize all" +" profiles,\n" +"thus allowing a router to quickly re-integrate into the network after " +"startup." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:85 +msgid "Peer Summaries" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:86 +msgid "" +"While the profiles themselves can be considered a summary of a peer's \n" +"performance, to allow for effective peer selection we break each summary " +"down \n" +"into four simple values, representing the peer's speed, its capacity, how" +" well \n" +"integrated into the network it is, and whether it is failing." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:93 +msgid "Speed" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:94 +msgid "" +"The speed calculation\n" +"simply goes through the profile and estimates how much data we can\n" +"send or receive on a single tunnel through the peer in a minute. For " +"this estimate it just looks at\n" +"performance in the previous minute." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:101 +msgid "Capacity" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:102 +msgid "" +"The capacity calculation\n" +"simply goes through the profile and estimates how many tunnels the peer\n" +"would agree to participate in over a given time period. For this " +"estimate it looks at \n" +"how many tunnel build requests\n" +"the peer has accepted, rejected, and dropped, and how many\n" +"of the agreed-to tunnels later failed.\n" +"While the calculation is time-weighted so that recent activity counts " +"more than later activity,\n" +"statistics up to 48 hours old may be included." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:113 +msgid "" +"Recognizing and avoiding unreliable and unreachable\n" +"peers is critically important.\n" +"Unfortunately, as the tunnel building and testing require the " +"participation of several peers,\n" +"it is difficult to positively identify the cause of a dropped build " +"request or test failure.\n" +"The router assigns a probability of failure to each of the\n" +"peers, and uses that probability in the capacity calculation.\n" +"Drops and test failures are weighted much higher than rejections." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:123 +msgid "Peer organization" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:124 +msgid "" +"As mentioned above, we drill through each peer's profile to come up with " +"a \n" +"few key calculations, and based upon those, we organize each peer into " +"three\n" +"groups - fast, high capacity, and standard." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:130 +msgid "The groupings are not mutually exclusive, nor are they unrelated:" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:134 +msgid "" +"A peer is considered \"high capacity\" if its capacity calculation meets " +"or \n" +"exceeds the median of all peers." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:138 +msgid "" +"A peer is considered \"fast\" if they are already \"high capacity\" and " +"their \n" +"speed calculation meets or exceeds the median of all peers." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:142 +msgid "A peer is considered \"standard\" if it is not \"high capacity\"" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:145 +#, python-format +msgid "" +"These groupings are implemented in the router's\n" +"ProfileOrganizer." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:150 +msgid "Group size limits" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:151 +msgid "The size of the groups may be limited." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:156 +msgid "" +"The fast group is limited to 30 peers.\n" +"If there would be more, only the ones with the highest speed rating are " +"placed in the group." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:160 +msgid "" +"The high capacity group is limited to 75 peers (including the fast group)" +"\n" +"If there would be more, only the ones with the highest capacity rating " +"are placed in the group." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:164 +msgid "" +"The standard group has no fixed limit, but is somewhat smaller than the " +"number of RouterInfos\n" +"stored in the local network database.\n" +"On an active router in today's network, there may be about 1000 " +"RouterInfos and 500 peer profiles\n" +"(including those in the fast and high capacity groups)" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:172 +msgid "Recalculation and Stability" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:173 +msgid "" +"Summaries are recalculated, and peers are resorted into groups, every 45 " +"seconds." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:177 +msgid "" +"The groups tend to be fairly stable, that is, there is not much \"churn\"" +" in the rankings\n" +"at each recalculation.\n" +"Peers in the fast and high capacity groups get more tunnels build through" +" them, which increases their speed and capacity ratings,\n" +"which reinforces their presence in the group." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:188 +msgid "The router selects peers from the above groups to build tunnels through." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:193 +msgid "Peer Selection for Client Tunnels" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:194 +msgid "" +"Client tunnels are used for application traffic, such as for HTTP proxies" +" and web servers." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:198 +msgid "" +"To reduce the susceptibility to some attacks,\n" +"and increase performance,\n" +"peers for building client tunnels are chosen randomly from the smallest " +"group, which is the \"fast\" group.\n" +"There is no bias toward selecting peers that were previously participants" +" in a tunnel for the same client." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:206 +msgid "Peer Selection for Exploratory Tunnels" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:207 +msgid "" +"Exploratory tunnels are used for router administrative purposes, such as " +"network database traffic\n" +"and testing client tunnels.\n" +"Exploratory tunnels are also used to contact previously unconnected " +"routers, which is why\n" +"they are called \"exploratory\".\n" +"These tunnels are usually low-bandwidth." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:215 +msgid "" +"Peers for building exploratory tunnels are generally chosen randomly from" +" the standard group.\n" +"If the success rate of these build attempts is low compared to the client" +" tunnel build success rate,\n" +"the router will select a weighted average of peers randomly from the high" +" capacity group instead.\n" +"This helps maintain a satisfactory build success rate even when network " +"performance is poor.\n" +"There is no bias toward selecting peers that were previously participants" +" in an exploratory tunnel." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:223 +msgid "" +"As the standard group includes a very large subset of all peers the " +"router knows about,\n" +"exploratory tunnels are essentially built through a random selection of " +"all peers,\n" +"until the build success rate becomes too low." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:231 +msgid "Restrictions" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:232 +msgid "" +"To prevent some simple attacks, and for performance, there are the " +"following restrictions:" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:236 +msgid "Two peers from the same /16 IP space may not be in the same tunnel." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:239 +msgid "" +"A peer may participate in a maximum of 33% of all tunnels created by " +"the router." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:242 +msgid "Peers with extremely low bandwidth are not used." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:245 +msgid "Peers for which a recent connection attempt failed are not used." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:252 +msgid "Peer Ordering in Tunnels" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:253 +#, python-format +msgid "" +"Peers are ordered within tunnels to\n" +"to deal with the predecessor attack\n" +"(2008 update).\n" +"More information is on the tunnel " +"page." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:268 +msgid "Continue to analyze an tune speed and capacity calculations as necessary" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:271 +msgid "" +"Implement a more aggressive ejection strategy if necessary to control " +"memory usage as the network grows" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:274 +msgid "Evaluate group size limits" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:277 +msgid "Use GeoIP data to include or exclude certain peers, if configured" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:283 +#, python-format +msgid "" +"For those reading the paper\n" +"Peer Profiling and Selection in the I2P Anonymous " +"Network,\n" +"please keep in mind the following minor changes in I2P since the paper's " +"publication:" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:289 +msgid "The Integration calculation is still not used" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:290 +msgid "In the paper, \"groups\" are called \"tiers\"" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:291 +msgid "The \"Failing\" tier is no longer used" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:292 +msgid "The \"Not Failing\" tier is now named \"Standard\"" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:301 +msgid "One Cell Enough" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:303 +msgid "Tor Entry Guards" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:305 +msgid "Murdoch 2007 Paper" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:307 +msgid "Tune-up for Tor" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:309 +msgid "Low-resource Routing Attacks Against Tor" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:2 +msgid "I2P: A scalable framework for anonymous communication" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:5 +#: i2p2www/pages/site/docs/how/tech-intro.html:20 +#: i2p2www/pages/site/docs/transport/ssu.html:338 +msgid "Introduction" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:7 +msgid "I2P Operation" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:12 +#: i2p2www/pages/site/docs/how/tech-intro.html:397 +msgid "Transport protocols" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:13 +#: i2p2www/pages/site/docs/how/tech-intro.html:454 +msgid "Cryptography" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:21 +msgid "" +"I2P is a scalable, self organizing, resilient packet switched anonymous \n" +"network layer, upon which any number of different anonymity or security " +"conscious \n" +"applications can operate. Each of these applications may make their own " +"anonymity, \n" +"latency, and throughput tradeoffs without worrying about the proper " +"implementation \n" +"of a free route mixnet, allowing them to blend their activity with the " +"larger \n" +"anonymity set of users already running on top of I2P." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:30 +msgid "" +"Applications available already provide the full range of typical Internet" +" activities -\n" +"anonymous web browsing, web hosting, chat, file sharing, e-mail,\n" +"blogging and content syndication, newsgroups, as well as several other " +"applications under development." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:36 +msgid "Web browsing: using any existing browser that supports using a proxy." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:37 +msgid "Chat: IRC, Jabber, I2P-Messenger." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:38 +msgid "" +"File sharing: I2PSnark, Robert, iMule, \n" +"I2Phex, PyBit, I2P-bt\n" +"and others." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:43 +msgid "" +"E-mail: susimail and I2P-Bote." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:44 +msgid "" +"Blog: using e.g. the pebble plugin or the distributed blogging software " +"Syndie." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:45 +msgid "" +"Distributed Data Store: Save your data redundantly in the Tahoe-LAFS " +"cloud over I2P." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:46 +msgid "Newsgroups: using any newsgroup reader that supports using a proxy." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:49 +msgid "" +"Unlike web sites hosted within content distribution networks like Freenet \n" +"or GNUnet, the services " +"hosted on \n" +"I2P are fully interactive - there are traditional web-style search " +"engines, \n" +"bulletin boards, blogs you can comment on, database driven sites, and " +"bridges \n" +"to query static systems like Freenet without needing to install it " +"locally." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:57 +msgid "" +"With all of these anonymity enabled applications, I2P takes on the role \n" +"of the message oriented middleware - applications say that they want to " +"send \n" +"some data to a cryptographic identifier (a \"destination\") and I2P takes" +" care \n" +"of making sure it gets there securely and anonymously. I2P also bundles a" +" \n" +"simple streaming library to allow I2P's " +"anonymous \n" +"best-effort messages to transfer as reliable, in-order streams, " +"transparently \n" +"offering a TCP based congestion control algorithm tuned for the high " +"bandwidth \n" +"delay product of the network. While there have been several simple SOCKS " +"proxies \n" +"available to tie existing applications into the network, their value has " +"been \n" +"limited as nearly every application routinely exposes what, in an " +"anonymous \n" +"context, is sensitive information. The only safe way to go is to fully " +"audit \n" +"an application to ensure proper operation and to assist in that we " +"provide \n" +"a series of APIs in various languages which can be used to make the most " +"out \n" +"of the network." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:74 +#, python-format +msgid "" +"I2P is not a research project - academic, commercial, or governmental, " +"but \n" +"is instead an engineering effort aimed at doing whatever is necessary to " +"provide \n" +"a sufficient level of anonymity to those who need it. It has been in " +"active \n" +"development since early 2003 with one full time developer and a dedicated" +" \n" +"group of part time contributors from all over the world. All of the work " +"done \n" +"on I2P is open source and freely available on the website, \n" +"with the majority of the code released outright into the public domain, " +"though \n" +"making use of a few cryptographic routines under BSD-style licenses. The " +"people \n" +"working on I2P do not control what people release client applications " +"under, \n" +"and there are several GPL'ed applications available (I2PTunnel, \n" +"susimail, I2PSnark, I2P-" +"Bote, \n" +"I2Phex and others.).\n" +"Funding for I2P comes entirely from " +"donations,\n" +"and does not receive any tax breaks in any jurisdiction at this time,\n" +"as many of the developers are themselves anonymous." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:92 +msgid "Operation" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:94 +msgid "" +"To understand I2P's operation, it is essential to understand a few key " +"concepts. \n" +"First, I2P makes a strict separation between the software participating " +"in \n" +"the network (a \"router\") and the anonymous endpoints (\"destinations\")" +" associated \n" +"with individual applications. The fact that someone is running I2P is not" +" \n" +"usually a secret. What is hidden is information on what the user is " +"doing, \n" +"if anything at all, as well as what router a particular destination is " +"connected \n" +"to. End users will typically have several local destinations on their " +"router \n" +"- for instance, one proxying in to IRC servers, another supporting the " +"user's \n" +"anonymous webserver (\"eepsite\"), another for an I2Phex instance, " +"another for \n" +"torrents, etc." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:107 +msgid "" +"Another critical concept to understand is the \"tunnel\".\n" +"A tunnel is a directed path through an explicitly selected list of " +"routers.\n" +"Layered encryption is used, so each of the routers can only decrypt a " +"single layer.\n" +"The decrypted information contains the IP of the next router, along with\n" +"the encrypted information to be forwarded.\n" +"Each tunnel has a starting point (the first router, also known as " +"\"gateway\")\n" +"and an end point. Messages can be sent only in one way. To send messages " +"back,\n" +"another tunnel is required." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:118 +#: i2p2www/pages/site/docs/tunnels/implementation.html:105 +msgid "Inbound and outbound tunnel schematic" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:120 +msgid "Figure 1: Two types of tunnels exist: inbound and outbound." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:123 +msgid "" +"Two types of tunnels exist:\n" +"\"outbound\" tunnels send messages away from the tunnel creator,\n" +"while \"inbound\" tunnels bring messages to the tunnel creator.\n" +"Combining these two tunnels allows users to send messages to each other.\n" +"The sender (\"Alice\" in the above image) sets up an outbound tunnel,\n" +"while the receiver (\"Bob\" in the above image) creates an inbound " +"tunnel.\n" +"The gateway of an inbound tunnel can receive messages from any other user" +"\n" +"and will send them on until the endpoint (\"Bob\").\n" +"The endpoint of the outbound tunnel will need to send the message\n" +"on to the gateway of the inbound tunnel.\n" +"To do this, the sender (\"Alice\") adds instructions to her encrypted " +"message.\n" +"Once the endpoint of the outbound tunnel decrypts the message,\n" +"it will have instructions to forward the message to the correct\n" +"inbound gateway (the gateway to \"Bob\")." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:140 +msgid "" +"A third critical concept to understand is I2P's \"network " +"database\" (or \"netDb\") \n" +"- a pair of algorithms used to share network metadata. The two types of " +"metadata \n" +"carried are \"routerInfo\" and \"leaseSets\" - the " +"routerInfo gives routers the \n" +"data necessary for contacting a particular router (their public keys, " +"transport \n" +"addresses, etc), while the leaseSet gives routers the information " +"necessary \n" +"for contacting a particular destination. A leaseSet contains a number of " +"\"leases\".\n" +"Each of this leases specifies a tunnel gateway, which allows reaching a " +"specific destination.\n" +"The full information contained in a lease:" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:151 +msgid "Inbound gateway for a tunnel that allows reaching a specific destination." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:152 +msgid "Time when a tunnel expires." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:153 +msgid "" +"Pair of public keys to be able to encrypt messages (to send through the " +"tunnel and reach the destination)." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:155 +msgid "" +"Routers themselves send their routerInfo to the netDb directly, while " +"leaseSets are sent through outbound tunnels\n" +"(leaseSets need to be sent anonymously, to avoid correlating a router " +"with his leaseSets)." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:160 +msgid "" +"We can combine the above concepts to build successful connections in the " +"network." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:164 +msgid "" +"To build up her own inbound and outbound tunnels, Alice does a lookup in " +"the netDb to collect routerInfo.\n" +"This way, she gathers lists of peers she can use as hops in her tunnels.\n" +"She can then send a build message to the first hop, requesting the " +"construction of a tunnel and asking\n" +"that router to send the construction message onward, until the tunnel has" +" been constructed." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:171 +msgid "Request information on other routers" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:173 +msgid "Build tunnel using router information" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:175 +msgid "Figure 2: Router information is used to build tunnels." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:178 +msgid "" +"When Alice wants to send a message to Bob, she first does a lookup in the" +" \n" +"netDb to find Bob's leaseSet, giving her his current inbound tunnel " +"gateways. \n" +"She then picks one of her outbound tunnels and sends the message down it " +"with \n" +"instructions for the outbound tunnel's endpoint to forward the message on" +" \n" +"to one of Bob's inbound tunnel gateways. When the outbound tunnel " +"endpoint \n" +"receives those instructions, it forwards the message as requested, and " +"when \n" +"Bob's inbound tunnel gateway receives it, it is forwarded down the tunnel" +" \n" +"to Bob's router. If Alice wants Bob to be able to reply to the message, " +"she \n" +"needs to transmit her own destination explicitly as part of the message " +"itself.\n" +"This can be done by introducing a higher-level layer, which is done in " +"the\n" +"streaming library.\n" +"Alice may also cut down on the response time by bundling her most \n" +"recent LeaseSet with the message so that Bob doesn't need to do a netDb " +"lookup \n" +"for it when he wants to reply, but this is optional." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:195 +msgid "Connect tunnels using LeaseSets" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:195 +msgid "Connect tunnels using leaseSets" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:197 +msgid "Figure 3: LeaseSets are used to connect outbound and inbound tunnels." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:200 +msgid "" +"While the tunnels themselves have layered encryption to prevent " +"unauthorized \n" +"disclosure to peers inside the network (as the transport layer itself " +"does \n" +"to prevent unauthorized disclosure to peers outside the network), it is " +"necessary \n" +"to add an additional end to end layer of encryption to hide the message " +"from \n" +"the outbound tunnel endpoint and the inbound tunnel gateway. This \"garlic \n" +"encryption\" lets Alice's router wrap up multiple messages into a " +"single \n" +"\"garlic message\", encrypted to a particular public key so that " +"intermediary \n" +"peers cannot determine either how many messages are within the garlic, " +"what \n" +"those messages say, or where those individual cloves are destined. For " +"typical \n" +"end to end communication between Alice and Bob, the garlic will be " +"encrypted \n" +"to the public key published in Bob's leaseSet, allowing the message to be" +" \n" +"encrypted without giving out the public key to Bob's own router." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:215 +msgid "" +"Another important fact to keep in mind is that I2P is entirely message " +"based \n" +"and that some messages may be lost along the way. Applications using I2P " +"can \n" +"use the message oriented interfaces and take care of their own congestion" +" \n" +"control and reliability needs, but most would be best served by reusing " +"the \n" +"provided streaming library to view I2P as " +"a streams \n" +"based network." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:225 +msgid "" +"Both inbound and outbound tunnels work along similar principles.\n" +"The tunnel gateway accumulates a number of tunnel messages, eventually " +"preprocessing \n" +"them into something for tunnel delivery. Next, the gateway encrypts that " +"preprocessed \n" +"data and forwards it to the first hop. That peer and subsequent tunnel " +"participants \n" +"add on a layer of encryption after verifying that it isn't a duplicate " +"before \n" +"forward it on to the next peer. Eventually, the message arrives at the " +"endpoint \n" +"where the messages are split out again and forwarded on as requested. The" +" \n" +"difference arises in what the tunnel's creator does - for inbound " +"tunnels, \n" +"the creator is the endpoint and they simply decrypt all of the layers " +"added, \n" +"while for outbound tunnels, the creator is the gateway and they pre-" +"decrypt \n" +"all of the layers so that after all of the layers of per-hop encryption " +"are \n" +"added, the message arrives in the clear at the tunnel endpoint." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:240 +msgid "" +"The choice of specific peers to pass on messages as well as their " +"particular \n" +"ordering is important to understanding both I2P's anonymity and " +"performance \n" +"characteristics. While the network database (below) has its own criteria " +"for \n" +"picking what peers to query and store entries on, tunnel creators may use" +" any peers \n" +"in the network in any order (and even any number of times) in a single " +"tunnel. \n" +"If perfect latency and capacity data were globally known, selection and " +"ordering \n" +"would be driven by the particular needs of the client in tandem with " +"their \n" +"threat model. Unfortunately, latency and capacity data is not trivial to " +"gather \n" +"anonymously, and depending upon untrusted peers to provide this " +"information \n" +"has its own serious anonymity implications." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:253 +msgid "" +"From an anonymity perspective, the simplest technique would be to pick " +"peers \n" +"randomly from the entire network, order them randomly and use those peers" +" \n" +"in that order for all eternity. From a performance perspective, the " +"simplest \n" +"technique would be to pick the fastest peers with the necessary spare " +"capacity, \n" +"spreading the load across different peers to handle transparent failover," +" \n" +"and to rebuild the tunnel whenever capacity information changes. While " +"the \n" +"former is both brittle and inefficient, the later requires inaccessible " +"information \n" +"and offers insufficient anonymity. I2P is instead working on offering a " +"range \n" +"of peer selection strategies, coupled with anonymity aware measurement " +"code \n" +"to organize the peers by their profiles." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:266 +msgid "" +"As a base, I2P is constantly profiling the peers with which it interacts" +" \n" +"with by measuring their indirect behavior - for instance, when a peer " +"responds \n" +"to a netDb lookup in 1.3 seconds, that round trip latency is recorded in " +"the \n" +"profiles for all of the routers involved in the two tunnels (inbound and " +"outbound) \n" +"through which the request and response passed, as well as the queried " +"peer's \n" +"profile. Direct measurement, such as transport layer latency or " +"congestion, \n" +"is not used as part of the profile, as it can be manipulated and " +"associated \n" +"with the measuring router, exposing them to trivial attacks. While " +"gathering \n" +"these profiles, a series of calculations are run on each to summarize its" +" \n" +"performance - its latency, capacity to handle lots of activity, whether " +"they \n" +"are currently overloaded, and how well integrated into the network they " +"seem \n" +"to be. These calculations are then compared for active peers to organize " +"the \n" +"routers into four tiers - fast and high capacity, high capacity, not " +"failing, \n" +"and failing. The thresholds for those tiers are determined dynamically, " +"and \n" +"while they currently use fairly simple algorithms, alternatives exist." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:284 +msgid "" +"Using this profile data, the simplest reasonable peer selection strategy" +" \n" +"is to pick peers randomly from the top tier (fast and high capacity), and" +" \n" +"this is currently deployed for client tunnels. Exploratory tunnels (used " +"for \n" +"netDb and tunnel management) pick peers randomly from the \"not failing\"" +" tier \n" +"(which includes routers in 'better' tiers as well), allowing the peer to " +"sample \n" +"routers more widely, in effect optimizing the peer selection through " +"randomized \n" +"hill climbing. These strategies alone do however leak information " +"regarding \n" +"the peers in the router's top tier through predecessor and netDb " +"harvesting \n" +"attacks. In turn, several alternatives exist which, while not balancing " +"the \n" +"load as evenly, will address the attacks mounted by particular classes of" +" \n" +"adversaries." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:298 +msgid "" +"By picking a random key and ordering the peers according to their XOR " +"distance \n" +"from it, the information leaked is reduced in predecessor and harvesting " +"attacks \n" +"according to the peers' failure rate and the tier's churn. Another simple" +" \n" +"strategy for dealing with netDb harvesting attacks is to simply fix the " +"inbound \n" +"tunnel gateway(s) yet randomize the peers further on in the tunnels. To " +"deal \n" +"with predecessor attacks for adversaries which the client contacts, the " +"outbound \n" +"tunnel endpoints would also remain fixed. The selection of which peer to " +"fix \n" +"on the most exposed point would of course need to have a limit to the " +"duration, \n" +"as all peers fail eventually, so it could either be reactively adjusted " +"or \n" +"proactively avoided to mimic a measured mean time between failures of " +"other \n" +"routers. These two strategies can in turn be combined, using a fixed " +"exposed \n" +"peer and an XOR based ordering within the tunnels themselves. A more " +"rigid \n" +"strategy would fix the exact peers and ordering of a potential tunnel, " +"only \n" +"using individual peers if all of them agree to participate in the same " +"way \n" +"each time. This varies from the XOR based ordering in that the " +"predecessor \n" +"and successor of each peer is always the same, while the XOR only makes " +"sure \n" +"their order doesn't change." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:318 +#, python-format +msgid "" +"As mentioned before, I2P currently (release 0.8) includes the tiered \n" +"random strategy above, with XOR-based ordering. A \n" +"more detailed discussion of the mechanics involved in tunnel operation, " +"management, \n" +"and peer selection can be found in the tunnel " +"spec." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:326 +#, python-format +msgid "" +"As mentioned earlier, I2P's netDb works to share the network's metadata.\n" +"This is detailed in the network database page,\n" +"but a basic explanation is available below." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:332 +msgid "" +"A percentage of I2P users are appointed as 'floodfill peers'.\n" +"Currently, I2P installations that have a lot of bandwidth and are fast " +"enough,\n" +"will appoint themselves as floodfill as soon as the number of existing " +"floodfill routers\n" +"drops too low." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:339 +#, python-format +msgid "" +"Other I2P routers will store their data and lookup data by sending simple" +" 'store' and 'lookup' queries to the floodfills.\n" +"If a floodfill router receives a 'store' query, it will spread the " +"information to other floodfill routers\n" +"using the Kademlia " +"algorithm.\n" +"The 'lookup' queries currently function differently, to avoid an " +"important\n" +"security issue.\n" +"When a lookup is done, the floodfill router will not forward the lookup " +"to other peers,\n" +"but will always answer by itself (if it has the requested data)." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:349 +msgid "Two types of information are stored in the network database." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:353 +msgid "" +"A RouterInfo stores information on a specific I2P router and how " +"to contact it" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:354 +msgid "" +"A LeaseSet stores information on a specific destination (e.g. I2P " +"website, e-mail server...)" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:356 +msgid "" +"All of this information is signed by the publishing party and verified by" +" any I2P router using or storing the information.\n" +"In addition, the data contains timing information, to avoid storage of " +"old entries and possible attacks.\n" +"This is also why I2P bundles the necessary code for maintaining the " +"correct time, occasionally querying some SNTP servers \n" +"(the pool.ntp.org round robin by" +" default)\n" +"and detecting skew between routers at the transport layer." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:364 +msgid "Some additional remarks are also important." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:369 +msgid "Unpublished and encrypted leasesets:" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:370 +msgid "" +"One could only want specific people to be able to reach a destination.\n" +"This is possible by not publishing the destination in the netDb. You will" +" however have to transmit the destination by other means.\n" +"An alternative are the 'encrypted leaseSets'. These leaseSets can only be" +" decoded by people with access to the decryption key." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:377 +msgid "Bootstrapping:" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:378 +msgid "" +"Bootstrapping the netDb is quite simple. Once a router manages to receive" +" a single routerInfo of a reachable peer,\n" +"it can query that router for references to other routers in the network.\n" +"Currently, a number of users post their routerInfo files to a website to " +"make this information available.\n" +"I2P automatically connects to one of these websites to gather routerInfo " +"files and bootstrap." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:386 +msgid "Lookup scalability:" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:387 +msgid "" +"Lookups in the I2P network are not forwarded to other netDb routers.\n" +"Currently, this is not a major problem, since the network is not very " +"large.\n" +"However, as the network grows, not all routerInfo and leaseSet files will" +" be present\n" +"on each netDb router. This will cause a deterioration of the percentage " +"of successful lookups.\n" +"Because of this, refinements to the netDb will be done in the next " +"releases." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:398 +msgid "" +"Communication between routers needs to provide confidentiality and " +"integrity \n" +"against external adversaries while authenticating that the router " +"contacted \n" +"is the one who should receive a given message. The particulars of how " +"routers \n" +"communicate with other routers aren't critical - three separate protocols" +" \n" +"have been used at different points to provide those bare necessities." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:406 +#, python-format +msgid "" +"I2P started with a TCP-based protocol which \n" +"has since been disabled. Then, to accommodate the need for high degree " +"communication \n" +"(as a number of routers will end up speaking with many others), I2P moved" +" \n" +"from a TCP based transport to a UDP-based one - " +"\"Secure \n" +"Semireliable UDP\", or \"SSU\"." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:414 +#, python-format +msgid "As described in the SSU spec:" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:418 +msgid "" +"The goal of this protocol is to provide secure, authenticated, \n" +"semireliable and unordered message delivery, exposing only a minimal " +"amount \n" +"of data easily discernible to third parties. It should support high " +"degree \n" +"communication as well as TCP-friendly congestion control and may include" +" \n" +"PMTU detection. It should be capable of efficiently moving bulk data at " +"rates \n" +"sufficient for home users. In addition, it should support techniques for " +"addressing \n" +"network obstacles, like most NATs or firewalls." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:428 +#, python-format +msgid "" +"Following the introduction of SSU, after issues with congestion collapse" +" \n" +"appeared, a new NIO-based TCP transport called NTCP \n" +"was implemented. It is enabled by default for outbound connections only. " +"Those \n" +"who configure their NAT/firewall to allow inbound connections and specify" +" \n" +"the external host and port (dyndns/etc is ok) on /config.jsp can receive " +"inbound \n" +"connections. As NTCP is NIO based, so it doesn't suffer from the 1 thread" +" \n" +"per connection issues of the old TCP transport." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:438 +msgid "" +"I2P supports multiple transports simultaneously. A particular transport \n" +"for an outbound connection is selected with \"bids\". Each transport bids" +" for \n" +"the connection and the relative value of these bids assigns the priority." +" \n" +"Transports may reply with different bids, depending on whether there is " +"already \n" +"an established connection to the peer." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:446 +#, python-format +msgid "" +"The current implementation ranks NTCP as the highest-priority transport \n" +"for outbound connections in most situations. SSU is enabled for both " +"outbound \n" +"and inbound connections. Your firewall and your I2P router must be " +"configured \n" +"to allow inbound NTCP connections. For further information see the NTCP \n" +"page." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:455 +msgid "" +"A bare minimum set of cryptographic primitives are combined together to \n" +"provide I2P's layered defenses against a variety of adversaries. At the " +"lowest \n" +"level, inter router communication is protected by the transport layer " +"security \n" +"- SSU encrypts each packet with AES256/CBC with both an explicit IV and " +"MAC \n" +"(HMAC-MD5-128) after agreeing upon an ephemeral session key through a " +"2048bit \n" +"Diffie-Hellman exchange, station-to-station authentication with the other" +" \n" +"router's DSA key, plus each network message has their own hash for local " +"integrity \n" +"checking. Tunnel messages passed over the " +"transports \n" +"have their own layered AES256/CBC encryption with an explicit IV and " +"verified \n" +"at the tunnel endpoint with an additional SHA256 hash. Various other " +"messages \n" +"are passed along inside \"garlic messages\", which are encrypted with " +"ElGamal/AES+SessionTags \n" +"(explained below)." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:470 +msgid "Garlic messages" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:471 +msgid "" +"Garlic messages are an extension of \"onion\" layered encryption, " +"allowing \n" +"the contents of a single message to contain multiple \"cloves\" - fully " +"formed \n" +"messages alongside their own instructions for delivery. Messages are " +"wrapped \n" +"into a garlic message whenever the message would otherwise be passing in " +"cleartext \n" +"through a peer who should not have access to the information - for " +"instance, \n" +"when a router wants to ask another router to participate in a tunnel, " +"they \n" +"wrap the request inside a garlic, encrypt that garlic to the receiving " +"router's \n" +"2048bit ElGamal public key, and forward it through a tunnel. Another " +"example \n" +"is when a client wants to send a message to a destination - the sender's " +"router \n" +"will wrap up that data message (alongside some other messages) into a " +"garlic, \n" +"encrypt that garlic to the 2048bit ElGamal public key published in the " +"recipient's \n" +"leaseSet, and forward it through the appropriate tunnels." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:486 +msgid "" +"The \"instructions\" attached to each clove inside the encryption layer " +"includes \n" +"the ability to request that the clove be forwarded locally, to a remote " +"router, \n" +"or to a remote tunnel on a remote router. There are fields in those " +"instructions \n" +"allowing a peer to request that the delivery be delayed until a certain " +"time \n" +"or condition has been met, though they won't be honored until the nontrivial \n" +"delays are deployed. It is possible to explicitly route garlic " +"messages \n" +"any number of hops without building tunnels, or even to reroute tunnel " +"messages \n" +"by wrapping them in garlic messages and forwarding them a number of hops " +"prior \n" +"to delivering them to the next hop in the tunnel, but those techniques " +"are \n" +"not currently used in the existing implementation." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:499 +msgid "Session tags" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:500 +msgid "" +"As an unreliable, unordered, message based system, I2P uses a simple " +"combination \n" +"of asymmetric and symmetric encryption algorithms to provide data " +"confidentiality \n" +"and integrity to garlic messages. As a whole, the combination is referred" +" \n" +"to as ElGamal/AES+SessionTags, but that is an excessively verbose way to " +"describe \n" +"the simple use of 2048bit ElGamal, AES256, SHA256 and 32 byte nonces." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:539 +msgid "" +"Session tags themselves have a very short lifetime, after which they are" +" \n" +"discarded if not used. In addition, the quantity stored for each key is " +"limited, \n" +"as are the number of keys themselves - if too many arrive, either new or " +"old \n" +"messages may be dropped. The sender keeps track whether messages using " +"session \n" +"tags are getting through, and if there isn't sufficient communication it " +"may \n" +"drop the ones previously assumed to be properly delivered, reverting back" +" \n" +"to the full expensive ElGamal encryption." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:549 +msgid "" +"One alternative is to transmit only a single session tag, and from that," +" \n" +"seed a deterministic PRNG for determining what tags to use or expect. By " +"keeping \n" +"this PRNG roughly synchronized between the sender and recipient (the " +"recipient \n" +"precomputes a window of the next e.g. 50 tags), the overhead of " +"periodically \n" +"bundling a large number of tags is removed, allowing more options in the " +"space/time \n" +"tradeoff, and perhaps reducing the number of ElGamal encryptions " +"necessary. \n" +"However, it would depend upon the strength of the PRNG to provide the " +"necessary \n" +"cover against internal adversaries, though perhaps by limiting the amount" +" \n" +"of times each PRNG is used, any weaknesses can be minimized. At the " +"moment, \n" +"there are no immediate plans to move towards these synchronized PRNGs." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:562 +msgid "Future" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:563 +msgid "" +"While I2P is currently functional and sufficient for many scenarios, " +"there \n" +"are several areas which require further improvement to meet the needs of " +"those \n" +"facing more powerful adversaries as well as substantial user experience " +"optimization." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:569 +msgid "Restricted route operation" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:570 +msgid "" +"I2P is an overlay network designed to be run on top of a functional " +"packet \n" +"switched network, exploiting the end to end principle to offer anonymity " +"and \n" +"security. While the Internet no longer fully embraces the end to end " +"principle\n" +"(due to the usage of NAT), \n" +"I2P does require a substantial portion of the network to be reachable - " +"there \n" +"may be a number of peers along the edges running using restricted routes," +" \n" +"but I2P does not include an appropriate routing algorithm for the " +"degenerate \n" +"case where most peers are unreachable. It would, however work on top of a" +" \n" +"network employing such an algorithm." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:582 +msgid "" +"Restricted route operation, where there are limits to what peers are " +"reachable \n" +"directly, has several different functional and anonymity implications, " +"dependent \n" +"upon how the restricted routes are handled. At the most basic level, " +"restricted \n" +"routes exist when a peer is behind a NAT or firewall which does not allow" +" \n" +"inbound connections. This was largely addressed in I2P 0.6.0.6 by " +"integrating \n" +"distributed hole punching into the transport layer, allowing people " +"behind \n" +"most NATs and firewalls to receive unsolicited connections without any " +"configuration. \n" +"However, this does not limit the exposure of the peer's IP address to " +"routers \n" +"inside the network, as they can simply get introduced to the peer through" +" \n" +"the published introducer." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:595 +msgid "" +"Beyond the functional handling of restricted routes, there are two levels" +" \n" +"of restricted operation that can be used to limit the exposure of one's " +"IP \n" +"address - using router-specific tunnels for communication, and offering " +"'client \n" +"routers'. For the former, routers can either build a new pool of tunnels " +"or \n" +"reuse their exploratory pool, publishing the inbound gateways to some of " +"them \n" +"as part of their routerInfo in place of their transport addresses. When a" +" \n" +"peer wants to get in touch with them, they see those tunnel gateways in " +"the \n" +"netDb and simply send the relevant message to them through one of the " +"published \n" +"tunnels. If the peer behind the restricted route wants to reply, it may " +"do \n" +"so either directly (if they are willing to expose their IP to the peer) " +"or \n" +"indirectly through their outbound tunnels. When the routers that the peer" +" \n" +"has direct connections to want to reach it (to forward tunnel messages, " +"for \n" +"instance), they simply prioritize their direct connection over the " +"published \n" +"tunnel gateway. The concept of 'client routers' simply extends the " +"restricted \n" +"route by not publishing any router addresses. Such a router would not " +"even \n" +"need to publish their routerInfo in the netDb, merely providing their " +"self \n" +"signed routerInfo to the peers that it contacts (necessary to pass the " +"router's \n" +"public keys). Both levels of restricted route operation are planned for " +"I2P \n" +"2.0." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:617 +msgid "" +"There are tradeoffs for those behind restricted routes, as they would " +"likely \n" +"participate in other people's tunnels less frequently, and the routers " +"which \n" +"they are connected to would be able to infer traffic patterns that would " +"not \n" +"otherwise be exposed. On the other hand, if the cost of that exposure is " +"less \n" +"than the cost of an IP being made available, it may be worthwhile. This, " +"of \n" +"course, assumes that the peers that the router behind a restricted route " +"contacts \n" +"are not hostile - either the network is large enough that the probability" +" \n" +"of using a hostile peer to get connected is small enough, or trusted (and" +" \n" +"perhaps temporary) peers are used instead." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:629 +msgid "Variable latency" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:630 +msgid "" +"Even though the bulk of I2P's initial efforts have been on low latency " +"communication, \n" +"it was designed with variable latency services in mind from the " +"beginning. \n" +"At the most basic level, applications running on top of I2P can offer the" +" \n" +"anonymity of medium and high latency communication while still blending " +"their \n" +"traffic patterns in with low latency traffic. Internally though, I2P can " +"offer \n" +"its own medium and high latency communication through the garlic " +"encryption \n" +"- specifying that the message should be sent after a certain delay, at a " +"certain \n" +"time, after a certain number of messages have passed, or another mix " +"strategy. \n" +"With the layered encryption, only the router that the clove exposed the " +"delay \n" +"request would know that the message requires high latency, allowing the " +"traffic \n" +"to blend in further with the low latency traffic. Once the transmission " +"precondition \n" +"is met, the router holding on to the clove (which itself would likely be " +"a \n" +"garlic message) simply forwards it as requested - to a router, to a " +"tunnel, \n" +"or, most likely, to a remote client destination." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:647 +msgid "" +"There are a substantial number of ways to exploit this capacity for high" +" \n" +"latency comm in I2P, but for the moment, doing so has been scheduled for " +"the \n" +"I2P 3.0 release. In the meantime, those requiring the anonymity that high" +" \n" +"latency comm can offer should look towards the application layer to " +"provide \n" +"it." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:655 +msgid "Open questions" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:657 +msgid "How to get rid of the timing constraint?" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:658 +msgid "Can we deal with the sessionTags more efficiently?" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:659 +msgid "" +"What, if any, batching/mixing strategies should be made available on the " +"tunnels?" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:660 +msgid "" +"What other tunnel peer selection and ordering strategies should be " +"available?" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:663 +msgid "Similar systems" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:665 +msgid "" +"I2P's architecture builds on the concepts of message oriented middleware," +" \n" +"the topology of DHTs, the anonymity and cryptography of free route " +"mixnets, \n" +"and the adaptability of packet switched networking. The value comes not " +"from \n" +"novel concepts of algorithms though, but from careful engineering " +"combining \n" +"the research results of existing systems and papers. While there are a " +"few \n" +"similar efforts worth reviewing, both for technical and functional " +"comparisons, \n" +"two in particular are pulled out here - Tor and Freenet." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:675 +#, python-format +msgid "See also the Network Comparisons Page." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:680 +#: i2p2www/pages/site/docs/how/tech-intro.html:745 +msgid "website" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:682 +msgid "" +"At first glance, Tor and I2P have many functional and anonymity related \n" +"similarities. While I2P's development began before we were aware of the " +"early \n" +"stage efforts on Tor, many of the lessons of the original onion routing " +"and \n" +"ZKS efforts were integrated into I2P's design. Rather than building an " +"essentially \n" +"trusted, centralized system with directory servers, I2P has a self " +"organizing \n" +"network database with each peer taking on the responsibility of profiling" +" \n" +"other routers to determine how best to exploit available resources. " +"Another \n" +"key difference is that while both I2P and Tor use layered and ordered " +"paths \n" +"(tunnels and circuits/streams), I2P is fundamentally a packet switched " +"network, \n" +"while Tor is fundamentally a circuit switched one, allowing I2P to " +"transparently \n" +"route around congestion or other network failures, operate redundant " +"pathways, \n" +"and load balance the data across available resources. While Tor offers " +"the \n" +"useful outproxy functionality by offering integrated outproxy discovery " +"and \n" +"selection, I2P leaves such application layer decisions up to applications" +" \n" +"running on top of I2P - in fact, I2P has even externalized the TCP-like " +"streaming \n" +"library itself to the application layer, allowing developers to " +"experiment \n" +"with different strategies, exploiting their domain specific knowledge to " +"offer \n" +"better performance." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:703 +msgid "" +"From an anonymity perspective, there is much similarity when the core " +"networks \n" +"are compared. However, there are a few key differences. When dealing with" +" \n" +"an internal adversary or most external adversaries, I2P's simplex tunnels" +" \n" +"expose half as much traffic data than would be exposed with Tor's duplex " +"circuits \n" +"by simply looking at the flows themselves - an HTTP request and response " +"would \n" +"follow the same path in Tor, while in I2P the packets making up the " +"request \n" +"would go out through one or more outbound tunnels and the packets making " +"up \n" +"the response would come back through one or more different inbound " +"tunnels. \n" +"While I2P's peer selection and ordering strategies should sufficiently " +"address \n" +"predecessor attacks, should a switch to bidirectional tunnels be " +"necessary,\n" +"we could simply build an inbound and outbound tunnel along the same " +"routers." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:717 +msgid "" +"Another anonymity issue comes up in Tor's use of telescopic tunnel " +"creation, \n" +"as simple packet counting and timing measurements as the cells in a " +"circuit \n" +"pass through an adversary's node exposes statistical information " +"regarding \n" +"where the adversary is within the circuit. I2P's unidirectional tunnel " +"creation \n" +"with a single message so that this data is not exposed. Protecting the " +"position \n" +"in a tunnel is important, as an adversary would otherwise be able to " +"mount \n" +"a series of powerful predecessor, intersection, and traffic confirmation " +"attacks." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:727 +msgid "" +"Tor's support for a second tier of \"onion proxies\" does offer a non-" +"trivial \n" +"degree of anonymity while requiring a low cost of entry, while I2P will " +"not \n" +"offer this topology until 2.0." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:733 +msgid "" +"On the whole, Tor and I2P complement each other in their focus - Tor " +"works \n" +"towards offering high speed anonymous Internet outproxying, while I2P " +"works \n" +"towards offering a decentralized resilient network in itself. In theory, " +"both \n" +"can be used to achieve both purposes, but given limited development " +"resources, \n" +"they both have their strengths and weaknesses. The I2P developers have " +"considered \n" +"the steps necessary to modify Tor to take advantage of I2P's design, but " +"concerns \n" +"of Tor's viability under resource scarcity suggest that I2P's packet " +"switching \n" +"architecture will be able to exploit scarce resources more effectively." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:747 +msgid "" +"Freenet played a large part in the initial stages of I2P's design - " +"giving \n" +"proof to the viability of a vibrant pseudonymous community completely " +"contained \n" +"within the network, demonstrating that the dangers inherent in outproxies" +" \n" +"could be avoided. The first seed of I2P began as a replacement " +"communication \n" +"layer for Freenet, attempting to factor out the complexities of a " +"scalable, \n" +"anonymous and secure point to point communication from the complexities " +"of \n" +"a censorship resistant distributed data store. Over time however, some of" +" \n" +"the anonymity and scalability issues inherent in Freenet's algorithms " +"made \n" +"it clear that I2P's focus should stay strictly on providing a generic " +"anonymous \n" +"communication layer, rather than as a component of Freenet. Over the " +"years, \n" +"the Freenet developers have come to see the weaknesses in the older " +"design, \n" +"prompting them to suggest that they will require a \"premix\" layer to " +"offer \n" +"substantial anonymity. In other words, Freenet needs to run on top of a " +"mixnet \n" +"such as I2P or Tor, with \"client nodes\" requesting and publishing data " +"through \n" +"the mixnet to the \"server nodes\" which then fetch and store the data " +"according \n" +"to Freenet's heuristic distributed data storage algorithms." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:766 +msgid "" +"Freenet's functionality is very complementary to I2P's, as Freenet " +"natively \n" +"provides many of the tools for operating medium and high latency systems," +" \n" +"while I2P natively provides the low latency mix network suitable for " +"offering \n" +"adequate anonymity. The logic of separating the mixnet from the " +"censorship-\n" +"resistant distributed data store still seems self-evident from an " +"engineering, \n" +"anonymity, security, and resource allocation perspective, so hopefully " +"the \n" +"Freenet team will pursue efforts in that direction, if not simply reusing" +" \n" +"(or helping to improve, as necessary) existing mixnets like I2P or Tor." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:777 +msgid "" +"It is worth mentioning that there has recently been discussion and work \n" +"by the Freenet developers on a \"globally scalable darknet\" using " +"restricted \n" +"routes between peers of various trust. While insufficient information has" +" \n" +"been made publicly available regarding how such a system would operate " +"for \n" +"a full review, from what has been said the anonymity and scalability " +"claims \n" +"seem highly dubious. In particular, the appropriateness for use in " +"hostile \n" +"regimes against state level adversaries has been tremendously overstated," +" \n" +"and any analysis on the implications of resource scarcity upon the " +"scalability \n" +"of the network has seemingly been avoided. Further questions regarding " +"susceptibility \n" +"to traffic analysis, trust and other topics do exist, but a more in-depth" +" \n" +"review of this \"globally scalable darknet\" will have to wait until the " +"Freenet \n" +"team makes more information available." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:793 +msgid "" +"I2P itself doesn't really do much - it simply sends messages to remote " +"destinations \n" +"and receives messages targeting local destinations - most of the " +"interesting \n" +"work goes on at the layers above it. By itself, I2P could be seen as an " +"anonymous \n" +"and secure IP layer, and the bundled streaming" +" library \n" +"as an implementation of an anonymous and secure TCP layer on top of it. " +"Beyond \n" +"that, I2PTunnel exposes a generic TCP " +"proxying \n" +"system for either getting into or out of the I2P network, plus a variety " +"of \n" +"network applications provide further functionality for end users." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:804 +msgid "Streaming library" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:805 +msgid "" +"The I2P streaming library can be viewed as a generic streaming interface " +"(mirroring TCP sockets),\n" +"and the implementation supports a sliding " +"window protocol\n" +"with several optimizations, to take into account the high delay over I2P." +"\n" +"Individual streams may adjust the maximum packet size and \n" +"other options, though the default of 4KB compressed seems a reasonable " +"tradeoff \n" +"between the bandwidth costs of retransmitting lost messages and the " +"latency \n" +"of multiple messages." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:815 +msgid "" +"In addition, in consideration of the relatively high cost of subsequent \n" +"messages, the streaming library's protocol for scheduling and delivering " +"messages \n" +"has been optimized to allow individual messages passed to contain as much" +" \n" +"information as is available. For instance, a small HTTP transaction " +"proxied \n" +"through the streaming library can be completed in a single round trip - " +"the \n" +"first message bundles a SYN, FIN and the small payload (an HTTP request " +"typically \n" +"fits) and the reply bundles the SYN, FIN, ACK and the small payload (many" +" \n" +"HTTP responses fit). While an additional ACK must be transmitted to tell " +"the \n" +"HTTP server that the SYN/FIN/ACK has been received, the local HTTP proxy " +"can \n" +"deliver the full response to the browser immediately." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:828 +msgid "" +"On the whole, however, the streaming library bears much resemblance to an" +" \n" +"abstraction of TCP, with its sliding windows, congestion control " +"algorithms \n" +"(both slow start and congestion avoidance), and general packet behavior " +"(ACK, \n" +"SYN, FIN, RST, etc)." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:835 +msgid "Naming library and addressbook" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:836 +#, python-format +msgid "" +"For more information see the Naming and " +"Addressbook page." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:840 +#: i2p2www/pages/site/docs/how/tech-intro.html:914 +#: i2p2www/pages/site/docs/how/tech-intro.html:961 +#: i2p2www/pages/site/docs/how/tech-intro.html:993 +#: i2p2www/pages/site/docs/how/tech-intro.html:1001 +#: i2p2www/pages/site/docs/how/tech-intro.html:1009 +#: i2p2www/pages/site/docs/how/tech-intro.html:1019 +#: i2p2www/pages/site/docs/how/tech-intro.html:1027 +#: i2p2www/pages/site/docs/how/tech-intro.html:1049 +#, python-format +msgid "Developed by: %(dev)s" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:842 +msgid "" +"Naming within I2P has been an oft-debated topic since the very beginning" +" \n" +"with advocates across the spectrum of possibilities. However, given I2P's" +" \n" +"inherent demand for secure communication and decentralized operation, the" +" \n" +"traditional DNS-style naming system is clearly out, as are \"majority " +"rules\" \n" +"voting systems. Instead, I2P ships with a generic naming library and a " +"base \n" +"implementation designed to work off a local name to destination mapping, " +"as \n" +"well as an optional add-on application called the \"addressbook\". The " +"addressbook \n" +"is a web-of-trust-driven secure, distributed, and human readable naming " +"system, \n" +"sacrificing only the call for all human readable names to be globally " +"unique \n" +"by mandating only local uniqueness. While all messages in I2P are " +"cryptographically \n" +"addressed by their destination, different people can have local " +"addressbook \n" +"entries for \"Alice\" which refer to different destinations. People can " +"still \n" +"discover new names by importing published addressbooks of peers specified" +" \n" +"in their web of trust, by adding in the entries provided through a third " +"party, \n" +"or (if some people organize a series of published addressbooks using a " +"first \n" +"come first serve registration system) people can choose to treat these " +"addressbooks \n" +"as name servers, emulating traditional DNS." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:862 +msgid "" +"I2P does not promote the use of DNS-like services though, as the damage \n" +"done by hijacking a site can be tremendous - and insecure destinations " +"have \n" +"no value. DNSsec itself still falls back on registrars and certificate " +"authorities, \n" +"while with I2P, requests sent to a destination cannot be intercepted or " +"the \n" +"reply spoofed, as they are encrypted to the destination's public keys, " +"and \n" +"a destination itself is just a pair of public keys and a certificate. " +"DNS-style \n" +"systems on the other hand allow any of the name servers on the lookup " +"path \n" +"to mount simple denial of service and spoofing attacks. Adding on a " +"certificate \n" +"authenticating the responses as signed by some centralized certificate " +"authority \n" +"would address many of the hostile nameserver issues but would leave open " +"replay \n" +"attacks as well as hostile certificate authority attacks." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:876 +msgid "" +"Voting style naming is dangerous as well, especially given the " +"effectiveness \n" +"of Sybil attacks in anonymous systems - the attacker can simply create an" +" \n" +"arbitrarily high number of peers and \"vote\" with each to take over a " +"given \n" +"name. Proof-of-work methods can be used to make identity non-free, but as" +" \n" +"the network grows the load required to contact everyone to conduct online" +" \n" +"voting is implausible, or if the full network is not queried, different " +"sets \n" +"of answers may be reachable." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:886 +msgid "" +"As with the Internet however, I2P is keeping the design and operation of" +" \n" +"a naming system out of the (IP-like) communication layer. The bundled " +"naming \n" +"library includes a simple service provider interface which alternate " +"naming \n" +"systems can plug into, allowing end users to drive what sort of naming " +"tradeoffs \n" +"they prefer." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:895 +msgid "" +"The old Syndie bundled with I2P has been replaced by the new Syndie which" +"\n" +"is distributed separately. For more information see the Syndie\n" +"pages." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:901 +msgid "" +"Syndie is a safe, anonymous blogging / content publication / content " +"aggregation \n" +"system. It lets you create information, share it with others, and read " +"posts \n" +"from those you're interested in, all while taking into consideration your" +" \n" +"needs for security and anonymity. Rather than building its own content " +"distribution \n" +"network, Syndie is designed to run on top of existing networks, " +"syndicating \n" +"content through eepsites, Tor hidden services, Freenet freesites, normal " +"websites, \n" +"usenet newsgroups, email lists, RSS feeds, etc. Data published with " +"Syndie \n" +"is done so as to offer pseudonymous authentication to anyone reading or " +"archiving \n" +"it." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:916 +msgid "" +"I2PTunnel is probably I2P's most popular and versatile client " +"application, \n" +"allowing generic proxying both into and out of the I2P network. I2PTunnel" +" \n" +"can be viewed as four separate proxying applications - a \"client\" which" +" receives \n" +"inbound TCP connections and forwards them to a given I2P destination, an " +"\"httpclient\" \n" +"(aka \"eepproxy\") which acts like an HTTP proxy and forwards the " +"requests to \n" +"the appropriate I2P destination (after querying the naming service if " +"necessary), \n" +"a \"server\" which receives inbound I2P streaming connections on a " +"destination \n" +"and forwards them to a given TCP host+port, and an \"httpserver\" which " +"extends \n" +"the \"server\" by parsing the HTTP request and responses to allow safer " +"operation. \n" +"There is an additional \"socksclient\" application, but its use is not " +"encouraged \n" +"for reasons previously mentioned." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:930 +msgid "" +"I2P itself is not an outproxy network - the anonymity and security " +"concerns \n" +"inherent in a mix net which forwards data into and out of the mix have " +"kept \n" +"I2P's design focused on providing an anonymous network which capable of " +"meeting \n" +"the user's needs without requiring external resources. However, the " +"I2PTunnel \n" +"\"httpclient\" application offers a hook for outproxying - if the " +"hostname requested \n" +"doesn't end in \".i2p\", it picks a random destination from a user-" +"provided \n" +"set of outproxies and forwards the request to them. These destinations " +"are \n" +"simply I2PTunnel \"server\" instances run by volunteers who have " +"explicitly \n" +"chosen to run outproxies - no one is an outproxy by default, and running " +"an \n" +"outproxy doesn't automatically tell other people to proxy through you. " +"While \n" +"outproxies do have inherent weaknesses, they offer a simple proof of " +"concept \n" +"for using I2P and provide some functionality under a threat model which " +"may \n" +"be sufficient for some users." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:946 +msgid "" +"I2PTunnel enables most of the applications in use. An \"httpserver\" " +"pointing \n" +"at a webserver lets anyone run their own anonymous website (or " +"\"eepsite\") \n" +"- a webserver is bundled with I2P for this purpose, but any webserver can" +" \n" +"be used. Anyone may run a \"client\" pointing at one of the anonymously " +"hosted \n" +"IRC servers, each of which are running a \"server\" pointing at their " +"local \n" +"IRCd and communicating between IRCds over their own \"client\" tunnels. " +"End \n" +"users also have \"client\" tunnels pointing at I2Pmail's \n" +"POP3 and SMTP destinations (which in turn are simply \"server\" instances" +" pointing \n" +"at POP3 and SMTP servers), as well as \"client\" tunnels pointing at " +"I2P's CVS \n" +"server, allowing anonymous development. At times people have even run " +"\"client\" \n" +"proxies to access the \"server\" instances pointing at an NNTP server." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:963 +msgid "" +"i2p-bt is a port of the mainline python BitTorrent client to run both the" +" \n" +"tracker and peer communication over I2P. Tracker requests are forwarded " +"through \n" +"the eepproxy to eepsites specified in the torrent file while tracker " +"responses \n" +"refer to peers by their destination explicitly, allowing i2p-bt to open " +"up \n" +"a streaming lib connection to query them " +"for \n" +"blocks." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:972 +msgid "" +"In addition to i2p-bt, a port of bytemonsoon has been made to I2P, making" +" \n" +"a few modifications as necessary to strip any anonymity-compromising " +"information \n" +"from the application and to take into consideration the fact that IPs " +"cannot \n" +"be used for identifying peers." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:980 +msgid "" +"I2PSnark developed: jrandom, et al, ported from mjw's Snark client" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:986 +msgid "" +"Bundled with the I2P install, I2PSnark offers a simple anonymous " +"BitTorrent \n" +"client with multitorrent capabilities, exposing all of the functionality " +"through \n" +"a plain HTML web interface." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:995 +#, python-format +msgid "" +"Robert is a Bittorrent client written in Python.\n" +"It is hosted on http://%(bob)s/Robert.html " +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:1003 +#, python-format +msgid "" +"PyBit is a Bittorrent client written in Python.\n" +"It is hosted on %(pybit)s " +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:1011 +msgid "" +"I2Phex is a fairly direct port of the Phex Gnutella filesharing client to" +" \n" +"run entirely on top of I2P. While it has disabled some of Phex's " +"functionality, \n" +"such as integration with Gnutella webcaches, the basic file sharing and " +"chatting \n" +"system is fully functional." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:1021 +msgid "" +"iMule is a fairly direct port of the aMule filesharing client \n" +"running entirely inside I2P." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:1029 +#, python-format +msgid "" +"I2Pmail is more a service than an application - postman offers both " +"internal \n" +"and external email with POP3 and SMTP service through I2PTunnel instances" +" \n" +"accessing a series of components developed with mastiejaner, allowing " +"people \n" +"to use their preferred mail clients to send and receive mail " +"pseudonymously. \n" +"However, as most mail clients expose substantial identifying information," +" \n" +"I2P bundles susi23's web based susimail client which has been built " +"specifically \n" +"with I2P's anonymity needs in mind. The I2Pmail/mail.i2p service offers " +"transparent \n" +"virus filtering as well as denial of service prevention with hashcash " +"augmented \n" +"quotas. In addition, each user has control of their batching strategy " +"prior \n" +"to delivery through the mail.i2p outproxies, which are separate from the " +"mail.i2p \n" +"SMTP and POP3 servers - both the outproxies and inproxies communicate " +"with \n" +"the mail.i2p SMTP and POP3 servers through I2P itself, so compromising " +"those \n" +"non-anonymous locations does not give access to the mail accounts or " +"activity \n" +"patterns of the user. At the moment the developers work on a " +"decentralized \n" +"mailsystem, called \"v2mail\". More information can be found on the " +"eepsite \n" +"%(postman)s." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:1051 +msgid "" +"I2P-Bote is a distributed e-mail application. It does not use the " +"traditional\n" +"e-mail concept of sending an e-mail to a server and retrieving it from a " +"server.\n" +"Instead, it uses a Kademlia Distributed Hash Table to store mails.\n" +"One user can push a mail into the DHT, while another can request the " +"e-mail from the DHT.\n" +"And all the mails sent within the I2P-Bote network are automatically " +"encrypted end-to-end.
\n" +"Furthermore, I2P-Bote offers a remailer function on top of I2P, for " +"increased high-latency anonymity." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:1061 +msgid "" +"I2P-Messenger is an end-to-end encrypted serverless communication " +"application.\n" +"For communication between two users, they need to give each other their " +"destination keys, to allow the other to connect.\n" +"It supports file transfer and has a search for other users, based on " +"Seedless." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:2 +msgid "I2P's Threat Model" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:3 +msgid "November 2010" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:7 +msgid "low" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:8 +msgid "medium" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:9 +msgid "high" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:34 +msgid "Damage Potential" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:35 +msgid "Reliability" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:36 +msgid "Exploitability" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:37 +msgid "Affected Users" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:38 +msgid "Discoverability" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:39 +msgid "Severity" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:40 +#: i2p2www/pages/site/docs/protocol/i2np.html:93 +msgid "Priority" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:45 +msgid "Index of Attacks" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:47 +#: i2p2www/pages/site/docs/how/threat-model.html:206 +msgid "Brute force attacks" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:48 +#: i2p2www/pages/site/docs/how/threat-model.html:250 +msgid "Timing attacks" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:49 +#: i2p2www/pages/site/docs/how/threat-model.html:287 +msgid "Intersection attacks" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:50 +#: i2p2www/pages/site/docs/how/threat-model.html:367 +msgid "Denial of service attacks" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:51 +#: i2p2www/pages/site/docs/how/threat-model.html:466 +msgid "Tagging attacks" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:52 +#: i2p2www/pages/site/docs/how/threat-model.html:484 +msgid "Partitioning attacks" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:53 +#: i2p2www/pages/site/docs/how/threat-model.html:524 +msgid "Predecessor attacks" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:54 +#: i2p2www/pages/site/docs/how/threat-model.html:569 +msgid "Harvesting attacks" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:55 +#: i2p2www/pages/site/docs/how/threat-model.html:616 +msgid "Identification Through Traffic Analysis" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:56 +#: i2p2www/pages/site/docs/how/threat-model.html:676 +msgid "Sybil attacks" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:57 +#: i2p2www/pages/site/docs/how/threat-model.html:725 +msgid "Buddy Exhaustion attacks" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:58 +#: i2p2www/pages/site/docs/how/threat-model.html:750 +msgid "Cryptographic attacks" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:59 +msgid "Floodfill attacks" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:60 +#: i2p2www/pages/site/docs/how/threat-model.html:811 +msgid "Other Network Database attacks" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:61 +msgid "Attacks on centralized resources" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:62 +#: i2p2www/pages/site/docs/how/threat-model.html:877 +msgid "Development attacks" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:63 +msgid "Implementation attacks" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:64 +#: i2p2www/pages/site/docs/how/threat-model.html:961 +msgid "Other Defenses" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:69 +msgid "What do we mean by \"anonymous\"?" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:71 +msgid "" +"Your level of anonymity can be described as \"how hard it is for someone\n" +"to find out information you don't want them to know?\" - who you are, " +"where\n" +"you are located, who you communicate with, or even when you communicate." +" \n" +"\"Perfect\" anonymity is not a useful concept here - software will not " +"make \n" +"you indistinguishable from people that don't use computers or who are not" +" on\n" +"the Internet. Instead, we are working to provide sufficient anonymity to" +" meet the\n" +"real needs of whomever we can - from those simply browsing websites, to " +"those exchanging\n" +"data, to those fearful of discovery by powerful organizations or states." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:82 +msgid "" +"The question of whether I2P provides sufficient anonymity for your \n" +"particular needs is a hard one, but this page will hopefully assist in \n" +"answering that question by exploring how I2P operates under various " +"attacks\n" +"so that you may decide whether it meets your needs." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:89 +msgid "" +"We welcome further research and analysis on I2P's resistance to the " +"threats described below.\n" +"More review of existing literature (much of it focused on Tor) and " +"original\n" +"work focused on I2P is needed." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:95 +msgid "Network Topology Summary" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:96 +#, python-format +msgid "" +"I2P builds off the ideas of many other \n" +"systems, but a few key points should be kept in" +" mind when \n" +"reviewing related literature:" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:102 +msgid "" +"I2P is a free route mixnet - the message creator explicitly " +"defines the\n" +"path that messages will be sent out (the outbound tunnel), and the " +"message \n" +"recipient explicitly defines the path that messages will be received on " +"(the\n" +"inbound tunnel)." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:108 +msgid "" +"I2P has no official entry and exit points - all peers fully " +"participate in the \n" +"mix, and there are no network layer in- or out-proxies (however, at the \n" +"application layer, a few proxies do exist)" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:113 +msgid "" +"I2P is fully distributed - there are no central controls or " +"authorities.\n" +"One could modify some routers to operate mix cascades (building tunnels " +"and giving\n" +"out the keys necessary to control the forwarding at the tunnel endpoint) " +"or directory \n" +"based profiling and selection, all without breaking compatibility with " +"the rest of \n" +"the network, but doing so is of course not necessary (and may even harm " +"one's\n" +"anonymity)." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:123 +#, python-format +msgid "" +"We have documented plans to implement nontrivial delays\n" +"and batching strategies \n" +"whose existence is only known to the particular hop or tunnel gateway " +"that \n" +"receives the message, allowing a mostly low latency mixnet to provide " +"cover \n" +"traffic for higher latency communication (e.g. email).\n" +"However we are aware that significant delays are required to provide " +"meaningful\n" +"protection, and that implementation of such delays will be a significant " +"challenge.\n" +"It is not clear at this time whether we will actually implement these " +"delay features." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:134 +msgid "" +"In theory, routers along the message path may inject an \n" +"arbitrary number of hops before forwarding the message to the next peer, " +"though\n" +"the current implementation does not." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:141 +msgid "The Threat Model" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:142 +msgid "" +"I2P design started in 2003, not long after the advent of\n" +"[Onion Routing],\n" +"[Freenet], and\n" +"[Tor].\n" +"Our design benefits substantially from the research published around that" +" time.\n" +"I2P uses several onion routing techniques, so we continue to benefit\n" +"from the significant academic interest in Tor." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:152 +msgid "" +"Taking from the attacks and analysis put forth in the \n" +"anonymity " +"literature (largely \n" +"Traffic Analysis: " +"Protocols, Attacks, Design \n" +"Issues and Open Problems), the following briefly describes a wide " +"variety \n" +"of attacks as well as many of I2Ps defenses. We update\n" +"this list to include new attacks as they are identified." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:161 +msgid "" +"Included are some attacks that may be unique to I2P.\n" +"We do not have good answers for all these attacks, however\n" +"we continue to do research and improve our defenses." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:167 +msgid "" +"In addition, many of these attacks are significantly easier than\n" +"they should be, due to the modest size of the current network.\n" +"While we are aware of some limitations that need to be addressed,\n" +"I2P is designed to support hundreds of thousands, or millions, of\n" +"participants.\n" +"As we continue to spread the word and grow the network,\n" +"these attacks will become much harder." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:177 +#, python-format +msgid "" +"The\n" +"network comparisons and\n" +"\"garlic\" terminology pages may also " +"be helpful\n" +"to review." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:210 +msgid "" +"A brute force attack can be mounted by a global passive or active " +"adversary, \n" +"watching all the messages pass between all of the nodes and attempting to" +" correlate\n" +"which message follows which path. Mounting this attack against I2P " +"should be \n" +"nontrivial, as all peers in the network are frequently sending messages " +"(both\n" +"end to end and network maintenance messages), plus an end to end message " +"changes\n" +"size and data along its path. In addition, the external adversary does " +"not have\n" +"access to the messages either, as inter-router communication is both " +"encrypted\n" +"and streamed (making two 1024 byte messages indistinguishable from one " +"2048 byte\n" +"message)." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:222 +msgid "" +"However, a powerful attacker can use brute force to detect trends - if " +"they \n" +"can send 5GB to an I2P destination and monitor everyone's network " +"connection,\n" +"they can eliminate all peers who did not receive 5GB of data. Techniques" +" to \n" +"defeat this attack exist, but may be prohibitively expensive (see: \n" +"Tarzan's " +"mimics\n" +"or constant rate traffic). Most users are not concerned with this " +"attack, as \n" +"the cost of mounting it are extreme (and often require illegal activity)." +" \n" +"However, the attack is still possible, for example by an observer at\n" +"a large ISP or an Internet exchange point.\n" +"Those who want to defend against it \n" +"would want to take appropriate countermeasures, such as\n" +"setting low bandwidth limits, and using unpublished or encrypted " +"leasesets for eepsites.\n" +"Other countermeasures, such as nontrivial delays and restricted routes, " +"are\n" +"not currently implemented." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:239 +#, python-format +msgid "" +"As a partial defense against a single router or group of routers trying " +"to route all the network's traffic,\n" +"routers contain limits as to how many tunnels can be routed through a " +"single peer.\n" +"As the network grows, these limits are subject to further adjustment.\n" +"Other mechanisms for peer rating, selection and avoidance\n" +"are discussed on the\n" +"peer selection page." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:254 +msgid "" +"I2P's messages are unidirectional and do not necessarily imply that a " +"reply\n" +"will be sent. However, applications on top of I2P will most likely have\n" +"recognizable patterns within the frequency of their messages - for " +"instance, an \n" +"HTTP request will be a small message with a large sequence of reply " +"messages \n" +"containing the HTTP response. Using this data as well as a broad view of" +" the \n" +"network topology, an attacker may be able to disqualify some links as " +"being too \n" +"slow to have passed the message along." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:264 +msgid "" +"This sort of attack is powerful, but its applicability to I2P is non " +"obvious,\n" +"as the variation on message delays due to queuing, message processing, " +"and \n" +"throttling will often meet or exceed the time of passing a message along " +"a \n" +"single link - even when the attacker knows that a reply will be sent as " +"soon as\n" +"the message is received. There are some scenarios which will expose " +"fairly \n" +"automatic replies though - the streaming library does (with the SYN+ACK) " +"as does the \n" +"message mode of guaranteed delivery (with the " +"DataMessage+DeliveryStatusMessage)." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:274 +#, python-format +msgid "" +"Without protocol scrubbing or higher latency, global active adversaries " +"can \n" +"gain substantial information. As such, people concerned with these " +"attacks could\n" +"increase the latency (using nontrivial " +"delays or \n" +"batching strategies), include protocol " +"scrubbing, or\n" +"other advanced tunnel routing techniques,\n" +"but these are unimplemented in I2P." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:283 +#, python-format +msgid "" +"References: Low-Resource Routing Attacks Against " +"Anonymous Systems" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:291 +msgid "" +"Intersection attacks against low latency systems are extremely powerful -" +"\n" +"periodically make contact with the target and keep track of what peers " +"are on\n" +"the network. Over time, as node churn occurs the attacker will gain \n" +"significant information about the target by simply intersecting the sets " +"of\n" +"peers that are online when a message successfully goes through. The cost" +" of \n" +"this attack is significant as the network grows, but may be feasible in " +"some\n" +"scenarios." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:301 +#, python-format +msgid "" +"In summary, if an attacker is at both ends of your tunnel at the same " +"time,\n" +"he may be successful.\n" +"I2P does not have a full defense to this for low latency communication.\n" +"This is an inherent weakness of low-latency onion routing.\n" +"Tor provides a similar disclaimer." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:309 +msgid "Partial defenses implemented in I2P:" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:313 +#, python-format +msgid "strict ordering of peers" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:316 +#, python-format +msgid "" +"peer profiling and selection from a " +"small group that changes slowly" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:319 +msgid "Limits on the number of tunnels routed through a single peer" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:322 +msgid "" +"Prevention of peers from the same /16 IP range from being members of a " +"single tunnel" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:325 +msgid "" +"For eepsites or other hosted services, we support\n" +"simultaneous hosting on multiple routers, or\n" +"multihoming" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:332 +msgid "" +"Even in total, these defenses are not a complete solution.\n" +"Also, we have made some design choices that may significantly increase " +"our vulnerability:" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:337 +msgid "We do not use low-bandwidth \"guard nodes\"" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:340 +msgid "" +"We use tunnel pools comprised of several tunnels, and traffic can shift " +"from tunnel to tunnel." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:343 +msgid "Tunnels are not long-lived; new tunnels are built every 10 minutes." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:346 +msgid "" +"Tunnel lengths are configurable.\n" +"While 3-hop tunnels are recommended for full protection, several " +"applications and\n" +"services use 2-hop tunnels by default." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:353 +#, python-format +msgid "" +"In the future, it could\n" +"for peers who can afford significant delays (per nontrivial\n" +"delays and batching strategies). " +"In addition,\n" +"this is only relevant for destinations that other people know about - a " +"private\n" +"group whose destination is only known to trusted peers does not have to " +"worry,\n" +"as an adversary can't \"ping\" them to mount the attack.

" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:362 +#, python-format +msgid "Reference: One Cell Enough" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:369 +msgid "" +"There are a whole slew of denial of service attacks available against " +"I2P,\n" +"each with different costs and consequences:" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:375 +msgid "" +"Greedy user attack: This is simply\n" +"people trying to consume significantly more resources than they are \n" +"willing to contribute. The defense against this is:" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:381 +#, python-format +msgid "" +"Set defaults so that most users provide resources to the network.\n" +"In I2P, users route traffic by default. In sharp distinction to\n" +"other networks,\n" +"over 95% of I2P users relay traffic for others." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:387 +msgid "" +"Provide easy configuration options so that users may increase their\n" +"contribution (share percentage) to the network. Display easy-to-" +"understand\n" +"metrics such as \"share ratio\" so that users may see what they are " +"contributing." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:392 +msgid "" +"Maintain a strong community with blogs, forums, IRC, and other means of " +"communication." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:399 +#, python-format +msgid "" +"Starvation attack: A hostile user may attempt to harm the network " +"by\n" +"creating a significant number of peers in the network who are not " +"identified as\n" +"being under control of the same entity (as with Sybil). These nodes then" +" \n" +"decide not to provide any resources to the network, causing existing " +"peers \n" +"to search through a larger network database or request more tunnels than" +" \n" +"should be necessary. \n" +"Alternatively, the nodes may provide intermittent service by periodically" +"\n" +"dropping selected traffic, or refusing connections to certain peers.\n" +"This behavior may be indistinguishable from that of a heavily-loaded or " +"failing node.\n" +"I2P addresses these issues by maintaining profiles on the \n" +"peers, attempting to identify underperforming ones and simply ignoring \n" +"them, or using them rarely.\n" +"We have significantly enhanced the\n" +"ability to recognize and avoid troublesome peers; however there are still" +"\n" +"significant efforts required in this area." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:419 +#, python-format +msgid "" +"Flooding attack: A hostile user may attempt to flood the network,\n" +"a peer, a destination, or a tunnel. Network and peer flooding is " +"possible,\n" +"and I2P does nothing to prevent standard IP layer flooding. The flooding" +" of\n" +"a destination with messages by sending a large number to the target's " +"various\n" +"inbound tunnel gateways is possible, but the destination will know this " +"both\n" +"by the contents of the message and because the tunnel's tests will fail." +" The\n" +"same goes for flooding just a single tunnel. I2P has no defenses for a " +"network\n" +"flooding attack. For a destination and tunnel flooding attack, the " +"target\n" +"identifies which tunnels are unresponsive and builds new ones. New code " +"could\n" +"also be written to add even more tunnels if the client wishes to handle " +"the\n" +"larger load. If, on the other hand, the load is more than the client can" +"\n" +"deal with, they can instruct the tunnels to throttle the number of " +"messages or\n" +"bytes they should pass on (once the advanced tunnel\n" +"operation is implemented)." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:438 +msgid "" +"CPU load attack: There are currently some methods for people to \n" +"remotely request that a peer perform some cryptographically expensive \n" +"operation, and a hostile attacker could use these to flood that peer with" +"\n" +"a large number of them in an attempt to overload the CPU. Both using " +"good \n" +"engineering practices and potentially requiring nontrivial certificates \n" +"(e.g. HashCash) to be attached to these expensive requests should " +"mitigate\n" +"the issue, though there may be room for an attacker to exploit various\n" +"bugs in the implementation." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:451 +#, python-format +msgid "" +"Floodfill DOS attack: A hostile user may attempt to harm the " +"network by\n" +"becoming a floodfill router. The current defenses against unreliable,\n" +"intermittent, or malicious floodfill routers are poor.\n" +"A floodfill router may provide bad or no response to lookups, and\n" +"it may also interfere with inter-floodfill communication.\n" +"Some defenses and\n" +"peer profiling are implemented,\n" +"however there is much more to do.\n" +"For more information see the\n" +"network database page." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:470 +#, python-format +msgid "" +"Tagging attacks - modifying a message so that it can later be identified" +" \n" +"further along the path - are by themselves impossible in I2P, as messages" +" \n" +"passed through tunnels are signed. However, if an attacker is the " +"inbound \n" +"tunnel gateway as well as a participant further along in that tunnel, " +"with\n" +"collusion they can identify the fact that they are in the same tunnel " +"(and \n" +"prior to adding unique hop ids and " +"other updates,\n" +"colluding peers within the same tunnel can recognize that fact without " +"any \n" +"effort). An attacker in an outbound tunnel and any part of an inbound " +"tunnel cannot \n" +"collude however, as the tunnel encryption pads and modifies the data " +"separately\n" +"for the inbound and outbound tunnels. External attackers cannot do " +"anything,\n" +"as the links are encrypted and messages signed." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:488 +msgid "" +"Partitioning attacks - finding ways to segregate (technically or " +"analytically)\n" +"the peers in a network - are important to keep in mind when dealing with " +"a \n" +"powerful adversary, since the size of the network plays a key role in " +"determining\n" +"your anonymity. Technical partitioning by cutting links between peers to" +" create\n" +"fragmented networks is addressed by I2P's built in network database, " +"which \n" +"maintains statistics about various peers so as to allow any existing " +"connections\n" +"to other fragmented sections to be exploited so as to heal the network. " +"However,\n" +"if the attacker does disconnect all links to uncontrolled peers, " +"essentially\n" +"isolating the target, no amount of network database healing will fix it." +" At\n" +"that point, the only thing the router can hope to do is notice that a " +"significant\n" +"number of previously reliable peers have become unavailable and alert the" +" client\n" +"that it is temporarily disconnected (this detection code is not " +"implemented at\n" +"the moment)." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:504 +#, python-format +msgid "" +"Partitioning the network analytically by looking for differences in how " +"routers \n" +"and destinations behave and grouping them accordingly is also a very " +"powerful\n" +"attack. For instance, an attacker harvesting" +" the network\n" +"database will know when a particular destination has 5 inbound tunnels in" +" their\n" +"LeaseSet while others have only 2 or 3, allowing the adversary to " +"potentially \n" +"partition clients by the number of tunnels selected. Another partition " +"is \n" +"possible when dealing with the nontrivial " +"delays and \n" +"batching strategies, as the tunnel " +"gateways and the\n" +"particular hops with non-zero delays will likely stand out. However, " +"this data\n" +"is only exposed to those specific hops, so to partition effectively on " +"that \n" +"matter, the attacker would need to control a significant portion of the " +"network\n" +"(and still that would only be a probabilistic partition, as they wouldn't" +" know\n" +"which other tunnels or messages have those delays)." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:520 +#, python-format +msgid "" +"Also discussed on the network database " +"page (bootstrap attack)." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:528 +msgid "" +"The predecessor attack is passively gathering statistics in an attempt to" +" see\n" +"what peers are 'close' to the destination by participating in their " +"tunnels and\n" +"keeping track of the previous or next hop (for outbound or inbound " +"tunnels, \n" +"respectively). Over time, using a perfectly random sample of peers and " +"random\n" +"ordering, an attacker would be able to see which peer shows up as " +"'closer' \n" +"statistically more than the rest, and that peer would in turn be where " +"the\n" +"target is located." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:538 +#, python-format +msgid "" +"I2P avoids this in four ways: first, the peers selected to participate in" +"\n" +"tunnels are not randomly sampled throughout the network - they are " +"derived from\n" +"the peer selection algorithm which " +"breaks them\n" +"into tiers. Second, with strict " +"ordering of peers\n" +"in a tunnel, the fact that a peer shows up more frequently does not mean " +"they're\n" +"the source. Third, with permuted " +"tunnel length\n" +"(not enabled by default)\n" +"even 0 hop tunnels can provide plausible deniability as the occasional \n" +"variation of the gateway will look like normal tunnels. Fourth, with \n" +"restricted routes " +"(unimplemented), only the peer with\n" +"a restricted connection to the target will ever contact the target, while" +" \n" +"attackers will merely run into that gateway." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:555 +#, python-format +msgid "" +"The current tunnel build method\n" +"was specifically designed to combat the predecessor attack.\n" +"See also the intersection attack." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:561 +#, python-format +msgid "" +"References: %(pdf2008)s\n" +"which is an update to the 2004 predecessor attack paper\n" +"%(pdf2004)s." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:573 +msgid "" +"\"Harvesting\" means compiling a list of users running I2P.\n" +"It can be used for legal attacks and to help\n" +"other attacks by simply running a peer, seeing who it connects to, and \n" +"harvesting whatever references to other peers it can find." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:580 +msgid "" +"I2P itself is not designed with effective defenses against\n" +"this attack, since there is the distributed network database \n" +"containing just this information.\n" +"The following factors make the attack somewhat harder in practice:" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:587 +msgid "" +"Network growth will make it more difficult to obtain a given proportion " +"of the network" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:590 +msgid "Floodfill routers implement query limits as DOS protection" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:593 +msgid "" +"\"Hidden mode\", which prevents a router from publishing its information " +"to the netDb,\n" +"(but also prevents it from relaying data) is not widely used now but " +"could be." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:599 +#, python-format +msgid "" +"In future implementations,\n" +"basic and \n" +"comprehensive restricted " +"routes,\n" +"this attack loses much of its power, as the \"hidden\" peers do not " +"publish their\n" +"contact addresses in the network database - only the tunnels through " +"which \n" +"they can be reached (as well as their public keys, etc)." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:608 +msgid "" +"In the future, routers could use GeoIP to identify if they are in a " +"particular\n" +"country where identification as an I2P node would be risky.\n" +"In that case, the router could automatically enable hidden mode, or\n" +"enact other restricted route methods." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:620 +#, python-format +msgid "" +"By inspecting the traffic into and out of a router, a malicious ISP\n" +"or state-level firewall could identify that a computer is running I2P.\n" +"As discussed above, I2P is not specifically " +"designed\n" +"to hide that a computer is running I2P. However, several design decisions" +" made\n" +"in the design of the\n" +"transport layer and protocols\n" +"make it somewhat difficult to identify I2P traffic:" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:630 +msgid "Random port selection" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:633 +msgid "Point-to-Point Encryption of all traffic" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:636 +msgid "" +"DH key exchange with no protocol bytes or other unencrypted constant " +"fields" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:639 +#, python-format +msgid "" +"Simultaneous use of both\n" +"TCP and\n" +"UDP transports.\n" +"UDP may be much harder for some Deep Packet Inspection (DPI) equipment to" +" track." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:647 +msgid "" +"In the near future, we plan to directly address traffic analysis issues " +"by further obfuscation of I2P transport protocols, possibly including:" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:651 +msgid "" +"Padding at the transport layer to random lengths, especially during the " +"connection handshake" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:654 +msgid "" +"Study of packet size distribution signatures, and additional padding as " +"necessary" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:657 +msgid "" +"Development of additional transport methods that mimic SSL or other " +"common protocols" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:660 +msgid "" +"Review of padding strategies at higher layers to see how they affect " +"packet sizes at the transport layer" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:663 +msgid "" +"Review of methods implemented by various state-level firewalls to block " +"Tor" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:666 +msgid "Working directly with DPI and obfuscation experts" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:671 +#, python-format +msgid "" +"Reference: Breaking and Improving Protocol " +"Obfuscation" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:680 +msgid "" +"Sybil describes a category of attacks where the adversary creates " +"arbitrarily\n" +"large numbers of colluding nodes and uses the increased numbers to help \n" +"mounting other attacks. For instance, if an attacker is in a network " +"where peers\n" +"are selected randomly and they want an 80% chance to be one of those " +"peers, they\n" +"simply create five times the number of nodes that are in the network and " +"roll \n" +"the dice. When identity is free, Sybil can be a very potent technique " +"for a \n" +"powerful adversary. The primary technique to address this is simply to " +"make \n" +"identity 'non free' - Tarzan\n" +"(among others) uses the fact that IP addresses are limited, while \n" +"IIP used \n" +"HashCash to 'charge' for " +"creating a new\n" +"identity. We currently have not implemented any particular technique to " +"address\n" +"Sybil, but do include placeholder certificates in the router's and \n" +"destination's data structures which can contain a HashCash certificate of" +" \n" +"appropriate value when necessary (or some other certificate proving " +"scarcity)." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:698 +msgid "Requiring HashCash Certificates in various places has two major problems:" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:702 +msgid "Maintaining backward compatibility" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:705 +msgid "" +"The classic HashCash problem -\n" +"selecting HashCash values that are meaningful proofs of work on high-end " +"machines,\n" +"while still being feasible on low-end machines such as mobile devices." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:712 +msgid "" +"Various limitations on the number of routers in a given IP range restrict" +"\n" +"the vulnerability to attackers that don't have the ability to put " +"machines\n" +"in several IP blocks.\n" +"However, this is not a meaningful defense against a powerful adversary." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:719 +#, python-format +msgid "" +"See the network database page\n" +"for more Sybil discussion." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:729 +#, python-format +msgid "" +"(Reference: In Search of an Anonymouns and Secure " +"Lookup Section 5.2)" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:733 +#, python-format +msgid "" +"By refusing to accept or forward tunnel build requests, except to a " +"colluding peer, a router could ensure\n" +"that a tunnel is formed wholly from its set of colluding routers.\n" +"The chances of success are enhanced if there is a large number of " +"colluding routers,\n" +"i.e. a Sybil attack.\n" +"This is somewhat mitigated by our\n" +"peer profiling methods used to monitor " +"the performance\n" +"of peers.\n" +"However, this is a powerful attack as the number of routers approaches\n" +"f = 0.2, or 20% malicious nodes, as specifed in the paper.\n" +"The malicous routers could also maintain connections to the target router" +" and provide\n" +"excellent forwarding bandwidth for traffic over those connections, in an " +"attempt\n" +"to manipulate the profiles managed by the target and appear attractive.\n" +"Further research and defenses may be necessary." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:754 +#, python-format +msgid "" +"We use strong cryptography with long keys, and\n" +"we assume the security of the industry-standard cryptographic primitives " +"used in I2P, as documented\n" +"on the low-level cryptography page. \n" +"Security features include the immediate detection of \n" +"altered messages along the path, the inability to decrypt messages not " +"addressed to you,\n" +"and defense against man-in-the-middle attacks.\n" +"The key sizes chosen in 2003 were quite conservative at the time, and are" +" still longer than\n" +"those used in other anonymity " +"networks.\n" +"We don't think the current key lengths are our biggest weakness,\n" +"especially for traditional, non-state-level adversaries;\n" +"bugs and the small size of the network are much more worrisome.\n" +"Of course, all cryptographic algorithms eventually become obsolete due to" +"\n" +"the advent of faster processors, cryptographic research, and advancements" +" in\n" +"methods such as rainbow tables, clusters of video game hardware, etc.\n" +"Unfortunately, I2P was not designed with easy mechanisms to lengthen keys" +" or change\n" +"shared secret values while maintaining backward compatibility." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:773 +#, python-format +msgid "" +"Upgrading the various data structures and protocols to support longer " +"keys\n" +"will have to be tackled eventually, and this will be a\n" +"major undertaking, just as it will be " +"for \n" +"others.\n" +"Hopefully, through careful planning, we can minimize the disruption, and\n" +"implement mechanisms to make it easier for future transitions." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:782 +msgid "" +"In the future, several I2P protocols and data structures\n" +"support securely padding messages to arbitrary sizes, so messages could " +"be made constant\n" +"size or garlic messages could be modified randomly so that some cloves " +"appear to contain\n" +"more subcloves than they actually do. At the moment, however, garlic, " +"tunnel, and \n" +"end to end messages include simple random padding." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:792 +msgid "Floodfill Anonymity attacks" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:796 +#, python-format +msgid "" +"In addition to the floodfill DOS attacks described\n" +"above, floodfill routers are uniquely positioned\n" +"to learn about network participants, due to their role\n" +"in the netDb, and the high frequency of communication with those " +"participants.\n" +"This is somewhat mitigated because floodfill routers only manage a " +"portion\n" +"of the total keyspace, and the keyspace rotates daily, as explained \n" +"on the network database page.\n" +"The specific mechanisms by which routers communicate with floodfills have" +" been\n" +"carefully designed.\n" +"However, these threats should be studied further.\n" +"The specific potential threats and corresponding defenses are a topic for" +" future research." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:812 +#, python-format +msgid "" +"A hostile user may attempt to harm the network by\n" +"creating one or more floodfill routers and crafting them to offer\n" +"bad, slow, or no responses.\n" +"Several scenarios are discussed on the\n" +"network database page." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:822 +msgid "Central Resource Attacks" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:826 +msgid "" +"There are a few centralized or limited resources (some inside I2P, some " +"not)\n" +"that could be attacked or used as a vector for attacks.\n" +"The absence of jrandom starting November 2007, followed by the loss of " +"the i2p.net hosting service in January 2008,\n" +"highlighted numerous centralized resources in the development and " +"operation of the I2P network,\n" +"most of which are now distributed.\n" +"Attacks on externally-reachable resources mainly affect the ability of " +"new users to find us,\n" +"not the operation of the network itself." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:836 +#, python-format +msgid "" +"The website is mirrored and uses DNS round-robin" +" for external public access." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:839 +#, python-format +msgid "" +"Routers now support multiple external reseed " +"locations,\n" +"however more reseed hosts may be needed, and the handling of unreliable " +"or malicious\n" +"reseed hosts may need improvement." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:844 +msgid "" +"Routers now support multiple update file locations.\n" +"A malicious update host could feed a huge file, need to limit the size." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:848 +msgid "Routers now support multiple default trusted update signers." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:851 +msgid "" +"Routers now better handle multiple unreliable " +"floodfill peers.\n" +"Malicious floodfills needs more study." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:855 +#, python-format +msgid "" +"The code is now stored in a distributed source " +"control system." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:858 +msgid "" +"Routers rely on a single news host, but there is a hardcoded backup URL " +"pointing to a different host.\n" +"A malicious news host could feed a huge file, need to limit the size." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:862 +#, python-format +msgid "" +"Naming system services, including addressbook " +"subscription providers, add-host services,\n" +"and jump services, could be malicious. Substantial protections for " +"subscriptions were implemented\n" +"in release 0.6.1.31, with additional enhancements in subsequent releases." +"\n" +"However, all naming services require some measure of trust, see\n" +"the naming page for details." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:869 +msgid "" +"We remain reliant on the DNS service for i2p2.de, losing this would cause" +" substantial\n" +"disruption in our ability to attract new users,\n" +"and would shrink the network (in the short-to-medium term), just as the " +"loss of i2p.net did." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:881 +msgid "" +"These attacks aren't directly on the network, but instead go after its " +"development team \n" +"by either introducing legal hurdles on anyone contributing to the " +"development\n" +"of the software, or by using whatever means are available to get the " +"developers to \n" +"subvert the software. Traditional technical measures cannot defeat these" +" attacks, and\n" +"if someone threatened the life or livelihood of a developer (or even just" +" issuing a \n" +"court order along with a gag order, under threat of prison), we would " +"have a big problem." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:890 +msgid "However, two techniques help defend against these attacks:" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:894 +#, python-format +msgid "" +"All components of the network must be open source to enable inspection, " +"verification, \n" +"modification, and improvement. If a developer is compromised, once it is" +" noticed \n" +"the community should demand explanation and cease to accept that " +"developer's work.\n" +"All checkins to our distributed source control " +"system\n" +"are cryptographically signed, and the release packagers use a trust-list " +"system\n" +"to restrict modifications to those previously approved." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:902 +#, python-format +msgid "" +"Development over the network itself, allowing developers to stay " +"anonymous but still \n" +"secure the development process. All I2P development can occur through " +"I2P - using\n" +"a distributed source control system,\n" +"a distributed source control system, IRC chat,\n" +"public web servers,\n" +"discussion forums (forum.i2p), and the software distribution sites,\n" +"all available within I2P." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:913 +msgid "" +"We also maintain relationships with various organizations that offer " +"legal advice,\n" +"should any defense be necessary." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:918 +msgid "Implementation attacks (bugs)" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:922 +msgid "" +"Try as we might, most nontrivial applications include errors in the " +"design or \n" +"implementation, and I2P is no exception. There may be bugs that could be" +" exploited to \n" +"attack the anonymity or security of the communication running over I2P in" +" unexpected \n" +"ways. To help withstand attacks against the design or protocols in use, " +"we publish \n" +"all designs and documentation and solicit review and criticism with \n" +"the hope that many eyes will improve the system.\n" +"We do not believe in\n" +"security through " +"obscurity." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:933 +msgid "" +"In addition, the code is being \n" +"treated the same way, with little aversion towards reworking or throwing " +"out \n" +"something that isn't meeting the needs of the software system (including " +"ease of \n" +"modification). Documentation for the design and implementation of the " +"network and \n" +"the software components are an essential part of security, as without " +"them it is \n" +"unlikely that developers would be willing to spend the time to learn the " +"software \n" +"enough to identify shortcomings and bugs." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:943 +msgid "" +"Our software is likely, in particular, to contain bugs related to denial " +"of service\n" +"through out-of-memory errors (OOMs), cross-site-scripting (XSS) issues " +"in the router console,\n" +"and other vulnerabilities to non-standard inputs via the various " +"protocols." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:949 +#, python-format +msgid "" +"I2P is still a small network with a small development community and " +"almost no\n" +"interest from academic or research groups.\n" +"Therefore we lack the analysis that\n" +"other anonymity networks\n" +"may have received. We continue to recruit people to\n" +"get involved and help." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:962 +msgid "Blocklists" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:963 +msgid "" +"To some extent, I2P could be enhanced to avoid peers operating at IP " +"addresses\n" +"listed in a blocklist. Several blocklists are commonly available in " +"standard formats,\n" +"listing anti-P2P organizations, potential state-level adversaries, and " +"others." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:969 +msgid "" +"To the extent that active peers actually do show up in the actual " +"blocklist,\n" +"blocking by only a subset of peers would tend to segment the network,\n" +"exacerbate reachability problems, and decrease overall reliability.\n" +"Therefore we would want to agree on a particular blocklist and\n" +"enable it by default." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:977 +msgid "" +"Blocklists are only a part (perhaps a small part) of an array of defenses" +"\n" +"against maliciousness.\n" +"In large part the profiling system does a good job of measuring\n" +"router behavior so that we don't need to trust anything in netDb.\n" +"However there is more that can be done. For each of the areas in the\n" +"list above there are improvements we can make in detecting badness." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:986 +msgid "" +"If a blocklist is hosted at a central location with automatic updates\n" +"the network is vulnerable to a\n" +"central resource attack.\n" +"Automatic subscription to a list gives the list provider the power to " +"shut\n" +"the i2p network down. Completely." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:994 +msgid "" +"Currently, a default blocklist is distributed with our software,\n" +"listing only the IPs of past DOS sources.\n" +"There is no automatic update mechanism.\n" +"Should a particular IP range implement serious attacks on the I2P " +"network,\n" +"we would have to ask people to update their blocklist manually through\n" +"out-of-band mechanisms such as forums, blogs, etc." +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:2 +msgid "Tunnel Routing" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:3 +msgid "July 2011" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:7 +msgid "" +"This page contains an overview of I2P tunnel terminology and operation, " +"with\n" +"links to more technical pages, details, and specifications." +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:12 +#, python-format +msgid "" +"As briefly explained in the introduction, I2P " +"builds virtual \"tunnels\" -\n" +"temporary and unidirectional paths through a sequence of routers. These" +" \n" +"tunnels are classified as either inbound tunnels (where everything \n" +"given to it goes towards the creator of the tunnel) or outbound tunnels\n" +"(where the tunnel creator shoves messages away from them). When Alice\n" +"wants to send a message to Bob, she will (typically) send it out one of\n" +"her existing outbound tunnels with instructions for that tunnel's " +"endpoint\n" +"to forward it to the gateway router for one of Bob's current inbound \n" +"tunnels, which in turn passes it to Bob." +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:25 +msgid "Alice connecting through her outbound tunnel to Bob via his inbound tunnel" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:27 +msgid "Outbound Gateway" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:28 +msgid "Outbound Participant" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:29 +#: i2p2www/pages/site/docs/tunnels/implementation.html:131 +msgid "Outbound Endpoint" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:30 +#: i2p2www/pages/site/docs/tunnels/implementation.html:140 +msgid "Inbound Gateway" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:31 +msgid "Inbound Participant" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:32 +msgid "Inbound Endpoint" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:36 +msgid "Tunnel vocabulary" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:38 +#, python-format +msgid "" +"Tunnel gateway - the first router in a tunnel. For inbound " +"tunnels,\n" +"this is the one mentioned in the LeaseSet published in the\n" +"network database. For outbound tunnels, the\n" +"gateway is the originating router. (e.g. both A and D above)" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:44 +msgid "" +"Tunnel endpoint - the last router in a tunnel. (e.g. both C and F" +" above)" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:45 +msgid "" +"Tunnel participant - all routers in a tunnel except for the " +"gateway or\n" +"endpoint (e.g. both B and E above)" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:49 +msgid "" +"n-Hop tunnel - a tunnel with a specific number of inter-router " +"jumps, e.g.:" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:51 +msgid "0-hop tunnel - a tunnel where the gateway is also the endpoint" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:52 +msgid "" +"1-hop tunnel - a tunnel where the gateway talks directly to the " +"endpoint" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:53 +msgid "" +"2-(or more)-hop tunnel - a tunnel where there is at least one " +"intermediate\n" +"tunnel participant. (the above diagram includes two 2-hop tunnels - one\n" +"outbound from Alice, one inbound to Bob)" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:60 +#, python-format +msgid "" +"Tunnel ID - A 4 " +"byte integer\n" +"different for each hop in a tunnel, and unique among all tunnels on a " +"router.\n" +"Chosen randomly by the tunnel creator." +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:67 +msgid "Tunnel Build Information" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:68 +#, python-format +msgid "" +"Routers performing the three roles (gateway, participant, endpoint) are " +"given\n" +"different pieces of data in the initial\n" +"Tunnel Build Message\n" +"to accomplish their tasks:" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:75 +msgid "The tunnel gateway gets:" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:77 +#: i2p2www/pages/site/docs/how/tunnel-routing.html:97 +#, python-format +msgid "" +"tunnel encryption key - an AES private key for " +"encrypting\n" +"messages and instructions to the next hop" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:81 +#: i2p2www/pages/site/docs/how/tunnel-routing.html:101 +#, python-format +msgid "" +"tunnel IV key - an AES private key for " +"double-encrypting\n" +"the IV to the next hop" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:85 +#: i2p2www/pages/site/docs/how/tunnel-routing.html:105 +#, python-format +msgid "" +"reply key - an AES public key for " +"encrypting\n" +"the reply to the tunnel build request" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:89 +#: i2p2www/pages/site/docs/how/tunnel-routing.html:109 +msgid "" +"reply IV - the IV for encrypting the reply to the tunnel build " +"request" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:90 +msgid "tunnel id - 4 byte integer (inbound gateways only)" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:91 +msgid "" +"next hop - what router is the next one in the path (unless this is" +" a 0-hop tunnel, and the gateway is also the endpoint)" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:92 +#: i2p2www/pages/site/docs/how/tunnel-routing.html:112 +msgid "next tunnel id - The tunnel ID on the next hop" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:95 +msgid "All intermediate tunnel participants get:" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:110 +msgid "tunnel id - 4 byte integer" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:111 +msgid "next hop - what router is the next one in the path" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:115 +msgid "The tunnel endpoint gets:" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:117 +#, python-format +msgid "" +"tunnel encryption key - an AES private key for " +"encrypting\n" +"messages and instructions to the the endpoint (itself)" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:121 +#, python-format +msgid "" +"tunnel IV key - an AES private key for " +"double-encrypting\n" +"the IV to the endpoint (itself)" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:125 +#, python-format +msgid "" +"reply key - an AES public key for " +"encrypting\n" +"the reply to the tunnel build request (outbound endpoints only)" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:129 +msgid "" +"reply IV - the IV for encrypting the reply to the tunnel build " +"request (outbound endpoints only)" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:130 +msgid "tunnel id - 4 byte integer (outbound endpoints only)" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:131 +msgid "" +"reply router - the inbound gateway of the tunnel to send the reply" +" through (outbound endpoints only)" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:132 +msgid "" +"reply tunnel id - The tunnel ID of the reply router (outbound " +"endpoints only)" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:137 +#, python-format +msgid "" +"Details are in the\n" +"tunnel creation specification." +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:142 +msgid "Tunnel pooling" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:143 +#, python-format +msgid "" +"Several tunnels for a particular purpose may be grouped into a \"tunnel " +"pool\",\n" +"as described in the\n" +"tunnel specification.\n" +"This provides redundancy and additional bandwidth.\n" +"The pools used by the router itself are called \"exploratory tunnels\".\n" +"The pools used by applications are called \"client tunnels\"." +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:154 +msgid "Tunnel length" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:155 +#, python-format +msgid "" +"As mentioned above, each client requests that their router provide " +"tunnels to\n" +"include at least a certain number of hops.\n" +"The decision as to how many routers\n" +"to have in one's outbound and inbound tunnels has an important effect " +"upon the\n" +"latency, throughput, reliability, and anonymity provided by I2P - the " +"more peers\n" +"that messages have to go through, the longer it takes to get there and " +"the more\n" +"likely that one of those routers will fail prematurely. The less routers" +" in a\n" +"tunnel, the easier it is for an adversary to mount traffic analysis " +"attacks and\n" +"pierce someone's anonymity.\n" +"Tunnel lengths are specified by clients via\n" +"I2CP options.\n" +"The maximum number of hops in a tunnel is 7." +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:171 +msgid "0-hop tunnels" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:172 +msgid "" +"With no remote routers in a tunnel, the user has very basic plausible\n" +"deniability (since no one knows for sure that the peer that sent them the" +"\n" +"message wasn't simply just forwarding it on as part of the tunnel). " +"However, it\n" +"would be fairly easy to mount a statistical analysis attack and notice " +"that\n" +"messages targeting a specific destination are always sent through a " +"single\n" +"gateway. Statistical analysis against outbound 0-hop tunnels are more " +"complex,\n" +"but could show similar information (though would be slightly harder to " +"mount)." +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:182 +msgid "1-hop tunnels" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:183 +#, python-format +msgid "" +"With only one remote router in a tunnel, the user has both plausible\n" +"deniability and basic anonymity, as long as they are not up against an " +"internal\n" +"adversary (as described on threat model)." +" However,\n" +"if the adversary ran a sufficient number of routers such that the single " +"remote\n" +"router in the tunnel is often one of those compromised ones, they would " +"be able\n" +"to mount the above statistical traffic analysis attack." +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:192 +msgid "2-hop tunnels" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:193 +msgid "" +"With two or more remote routers in a tunnel, the costs of mounting the " +"traffic\n" +"analysis attack increases, since many remote routers would have to be " +"compromised\n" +"to mount it." +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:199 +msgid "3-hop (or more) tunnels" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:200 +#, python-format +msgid "" +"To reduce the susceptibility to some attacks,\n" +"3 or more hops are recommended for the highest level of protection.\n" +"Recent studies\n" +"also conclude that more than 3 hops does not provide additional " +"protection." +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:208 +msgid "Tunnel default lengths" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:209 +#, python-format +msgid "" +"The router uses 2-hop tunnels by default for its exploratory tunnels.\n" +"Client tunnel defaults are set by the application, using\n" +"I2CP options.\n" +"Most applications use 2 or 3 hops as their default." +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:218 +msgid "Tunnel testing" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:219 +#, python-format +msgid "" +"All tunnels are periodically tested by their creator by sending a\n" +"DeliveryStatusMessage out an outbound tunnel and bound for another " +"inbound tunnel\n" +"(testing both tunnels at once). If either fails a number of consecutive " +"tests, it is marked as no longer\n" +"functional. If it was used for a client's inbound tunnel, a new leaseSet\n" +"is created.\n" +"Tunnel test failures are also reflected in the\n" +"capacity rating in the peer " +"profile." +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:230 +msgid "Tunnel creation" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:231 +#, python-format +msgid "" +"Tunnel creation is handled by garlic " +"routing\n" +"a Tunnel Build Message to a router, requesting that they participate in " +"the\n" +"tunnel (providing them with all of the appropriate information, as above," +" along\n" +"with a certificate, which right now is a 'null' cert, but will support " +"hashcash\n" +"or other non-free certificates when necessary).\n" +"That router forwards the message to the next hop in the tunnel.\n" +"Details are in the\n" +"tunnel creation specification." +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:245 +#, python-format +msgid "" +"Multi-layer encryption is handled by garlic" +" encryption\n" +"of tunnel messages.\n" +"Details are in the\n" +"tunnel specification.\n" +"The IV of each hop is encrypted with a separate key as explained there." +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:257 +msgid "" +"Other tunnel test techniques could be used, such as\n" +"garlic wrapping a number of tests into cloves, testing individual tunnel\n" +"participants separately, etc." +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:263 +msgid "Move to 3-hop exploratory tunnels defaults." +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:267 +msgid "" +"In a distant future release,\n" +"options specifying the pooling, mixing, and chaff generation settings may" +" be implemented." +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:272 +msgid "" +"In a distant future release,\n" +"limits on the quantity and size of messages allowed during the\n" +"tunnel's lifetime may be implemented (e.g. no more than 300 messages or\n" +"1MB per minute)." +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:284 +#: i2p2www/pages/site/docs/tunnels/unidirectional.html:15 +msgid "Tunnel specification" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:286 +#: i2p2www/pages/site/docs/tunnels/unidirectional.html:17 +msgid "Tunnel creation specification" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:288 +msgid "Unidirectional tunnels" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:290 +msgid "Tunnel message specification" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:292 +msgid "Garlic routing" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:294 +msgid "ElGamal/AES+SessionTag" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:296 +msgid "I2CP options" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:3 +msgid "February 2016" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:6 +msgid "" +"The I2P Client Protocol (I2CP) exposes a strong separation of concerns " +"between\n" +"the router and any client that wishes to communicate over the network. " +"It enables\n" +"secure and asynchronous messaging by sending and receiving messages over " +"a \n" +"single TCP socket.\n" +"With I2CP, a client application tells the\n" +"router who they are (their \"destination\"), what anonymity, reliability," +" and \n" +"latency tradeoffs to make, and where to send messages. In turn the " +"router uses\n" +"I2CP to tell the client when any messages have arrived, and to request " +"authorization\n" +"for some tunnels to be used." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:18 +#, python-format +msgid "" +"The protocol itself is implemented in Java, to provide the\n" +"Client SDK.\n" +"This SDK is exposed in the i2p.jar package, which implements the client-" +"side of I2CP.\n" +"Clients should never need to access the router.jar package, which " +"contains the\n" +"router itself and the router-side of I2CP.\n" +"There is also a C library implementation.\n" +"A non-Java client would also have to implement the\n" +"streaming library for TCP-style connections." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:31 +#, python-format +msgid "" +"Applications can take advantage of the base I2CP plus the \n" +"streaming and datagram libraries\n" +"by using the Simple Anonymous Messaging or BOB protocols,\n" +"which do not require clients to deal with any sort of cryptography.\n" +"Also, clients may access the network by one of several proxies -\n" +"HTTP, CONNECT, and SOCKS 4/4a/5.\n" +"Alternatively, Java clients may access those libraries in " +"ministreaming.jar and streaming.jar.\n" +"So there are several options for both Java and non-Java applications." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:43 +#, python-format +msgid "" +"Client-side end-to-end encryption (encrypting the data over the I2CP " +"connection)\n" +"was disabled in I2P release 0.6,\n" +"leaving in place the ElGamal/AES end-to-end " +"encryption\n" +"which is implemented in the router.\n" +"The only cryptography that client libraries must still implement is\n" +"DSA public/private key signing\n" +"for LeaseSets and\n" +"Session Configurations, and" +" management of those keys." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:56 +msgid "" +"In a standard I2P installation, port 7654 is used by external java " +"clients to communicate\n" +"with the local router via I2CP.\n" +"By default, the router binds to address 127.0.0.1. To bind to 0.0.0.0, " +"set the\n" +"router advanced configuration option " +"i2cp.tcp.bindAllInterfaces=true and restart.\n" +"Clients in the same JVM as the router pass messages directly to the " +"router\n" +"through an internal JVM interface." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:65 +#, python-format +msgid "" +"The router also supports external connections over SSL.\n" +"While SSL is not the default, it is strongly recommended for any traffic " +"that may\n" +"be exposed to the open Internet. The authorization user/password (if " +"any), the\n" +"Private Key and\n" +"Signing Private " +"Key for the\n" +"Destination\n" +"are all transmitted in-the-clear unless SSL is enabled." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:75 +msgid "I2CP Protocol Specification" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:76 +#, python-format +msgid "Now on the I2CP Specification page." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:81 +msgid "I2CP Initialization" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:82 +#, python-format +msgid "" +"When a client connects to the router, it first sends a single protocol " +"version byte (0x2A).\n" +"Then it sends a GetDate Message and " +"waits for the SetDate Message " +"response.\n" +"Next, it sends a CreateSession " +"Message containing the session configuration.\n" +"It next awaits a RequestLeaseSet" +" Message from the router, indicating that inbound tunnels\n" +"have been built, and responds with a CreateLeaseSetMessage containing the" +" signed LeaseSet.\n" +"The client may now initiate or receive connections from other I2P " +"destinations." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:91 +msgid "I2CP Options" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:92 +#: i2p2www/pages/site/docs/protocol/i2cp.html:99 +msgid "Router-side Options" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:93 +#, python-format +msgid "" +"The following options are traditionally passed to the router via\n" +"a SessionConfig contained " +"in a CreateSession Message or " +"a ReconfigureSession " +"Message." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:104 +#: i2p2www/pages/site/docs/protocol/i2cp.html:479 +msgid "As Of Release" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:105 +#: i2p2www/pages/site/docs/protocol/i2cp.html:480 +msgid "Recommended Arguments" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:106 +#: i2p2www/pages/site/docs/protocol/i2cp.html:481 +msgid "Allowable Range" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:117 +msgid "" +"The timeout (ms) for all sent messages. Unused.\n" +"See the protocol specification for per-message settings." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:129 +msgid "" +"Minimum number of ElGamal/AES Session Tags before we send more.\n" +"Recommended: approximately tagsToSend * 2/3" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:141 +msgid "" +"Number of ElGamal/AES Session Tags to send at a time.\n" +"For clients with relatively low bandwidth per-client-pair (IRC, some UDP " +"apps), this may be set lower." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:153 +msgid "" +"Comma-separated list of Base 64 Hashes of peers to build tunnels through;" +" for debugging only" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:162 +msgid "Should generally be set to true for clients and false for servers" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:171 +#: i2p2www/pages/site/docs/protocol/i2cp.html:519 +msgid "" +"If true, the router just sends the MessagePayload instead\n" +"of sending a MessageStatus and awaiting a ReceiveMessageBegin." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:183 +msgid "" +"Guaranteed is disabled;\n" +"None implemented in 0.8.1; the streaming lib default is None as of 0.8.1," +" the client side default is None as of 0.9.4" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:195 +msgid "" +"For authorization, if required by the router.\n" +"If the client is running in the same JVM as a router, this option is not " +"required.\n" +"Warning - username and password are sent in the clear to the router, " +"unless using SSL (i2cp.SSL=true).\n" +"Authorization is only recommended when using SSL." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:217 +msgid "If incoming zero hop tunnel is allowed" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:226 +msgid "If outgoing zero hop tunnel is allowed" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:232 +#: i2p2www/pages/site/docs/protocol/i2cp.html:241 +#: i2p2www/pages/site/docs/protocol/i2cp.html:250 +#: i2p2www/pages/site/docs/protocol/i2cp.html:262 +#: i2p2www/pages/site/docs/protocol/i2cp.html:274 +#: i2p2www/pages/site/docs/protocol/i2cp.html:283 +#: i2p2www/pages/site/docs/protocol/i2cp.html:292 +#: i2p2www/pages/site/docs/protocol/i2cp.html:307 +#: i2p2www/pages/site/docs/protocol/i2cp.html:343 +#: i2p2www/pages/site/docs/protocol/i2cp.html:355 +#: i2p2www/pages/site/docs/protocol/i2cp.html:368 +#, python-format +msgid "number from %(from)s to %(to)s" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:233 +#: i2p2www/pages/site/docs/protocol/i2cp.html:242 +#: i2p2www/pages/site/docs/protocol/i2cp.html:369 +msgid "No limit" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:235 +msgid "Number of redundant fail-over for tunnels in" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:244 +msgid "Number of redundant fail-over for tunnels out" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:251 +#: i2p2www/pages/site/docs/protocol/i2cp.html:263 +#: i2p2www/pages/site/docs/protocol/i2cp.html:275 +#: i2p2www/pages/site/docs/protocol/i2cp.html:284 +#: i2p2www/pages/site/docs/protocol/i2cp.html:293 +#: i2p2www/pages/site/docs/protocol/i2cp.html:308 +#: i2p2www/pages/site/docs/protocol/i2cp.html:344 +#: i2p2www/pages/site/docs/protocol/i2cp.html:356 +#: i2p2www/pages/site/docs/protocol/i2cp.html:608 +#, python-format +msgid "%(from)s to %(to)s" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:253 +#: i2p2www/pages/site/docs/protocol/i2cp.html:265 +msgid "" +"Number of IP bytes to match to determine if\n" +"two routers should not be in the same tunnel. 0 to disable." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:277 +msgid "Length of tunnels in" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:286 +msgid "Length of tunnels out" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:295 +msgid "" +"Random amount to add or subtract to the length of tunnels in.\n" +"A positive number x means add a random amount from 0 to x inclusive.\n" +"A negative number -x means add a random amount from -x to x inclusive.\n" +"The router will limit the total length of the tunnel to 0 to 7 inclusive." +"\n" +"The default variance was 1 prior to release 0.7.6." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:310 +msgid "" +"Random amount to add or subtract to the length of tunnels out.\n" +"A positive number x means add a random amount from 0 to x inclusive.\n" +"A negative number -x means add a random amount from -x to x inclusive.\n" +"The router will limit the total length of the tunnel to 0 to 7 inclusive." +"\n" +"The default variance was 1 prior to release 0.7.6." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:325 +msgid "" +"Name of tunnel - generally used in routerconsole, which will\n" +"use the first few characters of the Base64 hash of the destination by " +"default." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:337 +msgid "Name of tunnel - generally ignored unless inbound.nickname is unset." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:346 +msgid "" +"Priority adjustment for outbound messages.\n" +"Higher is higher priority." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:358 +msgid "" +"Number of tunnels in.\n" +"Limit was increased from 6 to 16 in release 0.9; however, numbers higher " +"than 6 are\n" +"incompatible with older releases." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:371 +msgid "Number of tunnels out" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:380 +msgid "Used for consistent peer ordering across restarts." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:399 +msgid "" +"Any other options prefixed with \"inbound.\" are stored\n" +"in the \"unknown options\" properties of the inbound tunnel pool's " +"settings." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:411 +msgid "" +"Any other options prefixed with \"outbound.\" are stored\n" +"in the \"unknown options\" properties of the outbound tunnel pool's " +"settings." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:423 +msgid "" +"Set to false to disable ever bundling a reply LeaseSet.\n" +"For clients that do not publish their LeaseSet, this option must be true\n" +"for any reply to be possible. \"true\" is also recommended for multihomed" +" servers\n" +"with long connection times." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:430 +msgid "" +"Setting to \"false\" may save significant outbound bandwidth, especially " +"if\n" +"the client is configured with a large number of inbound tunnels (Leases)." +"\n" +"If replies are still required, this may shift the bandwidth burden to\n" +"the far-end client and the floodfill.\n" +"There are several cases where \"false\" may be appropriate:" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:438 +msgid "Unidirectional communication, no reply required" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:439 +msgid "LeaseSet is published and higher reply latency is acceptable" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:440 +msgid "" +"LeaseSet is published, client is a \"server\", all connections are " +"inbound\n" +"so the connecting far-end destination obviously has the leaseset already." +"\n" +"Connections are either short, or it is acceptable for latency on a long-" +"lived\n" +"connection to temporarily increase while the other end re-fetches the " +"LeaseSet\n" +"after expiration.\n" +"HTTP servers may fit these requirements." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:453 +msgid "" +"Note: Large quantity, length, or variance settings may cause significant " +"performance or reliability problems." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:457 +#, python-format +msgid "" +"Note: As of release 0.7.7, option names and values must use UTF-8 " +"encoding.\n" +"This is primarily useful for nicknames.\n" +"Prior to that release, options with multi-byte characters were corrupted." +"\n" +"Since options are encoded in a Mapping,\n" +"all option names and values are limited to 255 bytes (not characters) " +"maximum." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:465 +#: i2p2www/pages/site/docs/protocol/i2cp.html:474 +msgid "Client-side Options" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:466 +msgid "" +"The following options are interpreted on the client side,\n" +"and will be interpreted if passed to the I2PSession via the " +"I2PClient.createSession() call.\n" +"The streaming lib should also pass these options through to I2CP.\n" +"Other implementations may have different defaults." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:490 +#: i2p2www/pages/site/docs/protocol/i2cp.html:590 +#, python-format +msgid "%(num)s minimum" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:492 +msgid "(ms) Idle time required (default 30 minutes)" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:501 +msgid "Close I2P session when idle" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:510 +msgid "Encrypt the lease" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:531 +msgid "Gzip outbound data" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:540 +msgid "For encrypted leasesets. Base 64 SessionKey (44 characters)" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:549 +msgid "" +"Base 64 private key for encryption.\n" +"Optionally preceded by the key type and ':'.\n" +"Only \"ELGAMAL_2048:\" is supported, which is the default.\n" +"I2CP will generate the public key from the private key.\n" +"Use for persistent leaseset keys across restarts." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:564 +msgid "" +"Base 64 private key for signatures.\n" +"Optionally preceded by the key type and ':'.\n" +"DSA_SHA1 is the default.\n" +"Key type must match the signature type in the destination.\n" +"I2CP will generate the public key from the private key.\n" +"Use for persistent leaseset keys across restarts." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:580 +msgid "" +"Guaranteed is disabled;\n" +"None implemented in 0.8.1; None is the default as of 0.9.4" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:592 +msgid "(ms) Idle time required (default 20 minutes, minimum 5 minutes)" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:601 +msgid "Reduce tunnel quantity when idle" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:610 +msgid "Tunnel quantity when reduced (applies to both inbound and outbound)" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:619 +msgid "" +"Connect to the router using SSL.\n" +"If the client is running in the same JVM as a router, this option is " +"ignored, and the client connects to that router internally." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:631 +msgid "" +"Router hostname.\n" +"If the client is running in the same JVM as a router, this option is " +"ignored, and the client connects to that router internally." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:643 +msgid "" +"Router I2CP port.\n" +"If the client is running in the same JVM as a router, this option is " +"ignored, and the client connects to that router internally." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:650 +msgid "" +"Note: All arguments, including numbers, are strings. True/false values " +"are case-insensitive strings.\n" +"Anything other than case-insensitive \"true\" is interpreted as false.\n" +"All option names are case-sensitive." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:656 +msgid "I2CP Payload Data Format and Multiplexing" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:657 +#, python-format +msgid "" +"The end-to-end messages handled by I2CP (i.e. the data sent by the client" +" in a\n" +"SendMessageMessage\n" +"and received by the client in a\n" +"MessagePayloadMessage)\n" +"are gzipped with a standard 10-byte gzip\n" +"header beginning with 0x1F 0x8B 0x08 as\n" +"specified by RFC " +"1952.\n" +"As of release 0.7.1, I2P uses ignored portions of the gzip header to " +"include\n" +"protocol, from-port, and to-port information, thus supporting streaming " +"and\n" +"datagrams on the same destination, and allowing query/response using " +"datagrams\n" +"to work reliably in the presence of multiple channels." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:671 +msgid "" +"The gzip function cannot be completely turned off, however setting " +"i2cp.gzip=false\n" +"turns the gzip effort setting to 0, which may save a little CPU." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:677 +#: i2p2www/pages/site/docs/protocol/i2np.html:32 +msgid "Bytes" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:678 +msgid "Content" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:683 +msgid "Gzip header" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:688 +msgid "Gzip flags" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:693 +msgid "I2P Source port (Gzip mtime)" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:698 +msgid "I2P Destination port (Gzip mtime)" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:703 +msgid "Gzip xflags" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:708 +msgid "I2P Protocol (6 = Streaming, 17 = Datagram, 18 = Raw Datagrams) (Gzip OS)" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:717 +msgid "" +"Data integrity is verified with the standard gzip CRC-32 as\n" +"specified by RFC 1952." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:725 +msgid "" +"The current authorization mechanism could be modified to use hashed " +"passwords." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:729 +msgid "" +"The Signing Private Keys is included in the Create Lease Set message,\n" +"it is not required. Revocation is unimplemented.\n" +"It should be replaced with random data or removed." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:735 +#, python-format +msgid "" +"Some improvements may be able to use messages previously defined but not " +"implemented.\n" +"For reference, here is the\n" +"I2CP Protocol Specification Version 0.9\n" +"(PDF) dated August 28, 2003.\n" +"That document also references the\n" +"Common Data Structures Specification Version 0.9." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:2 +msgid "I2P Network Protocol" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:3 +msgid "June 2013" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:6 +msgid "" +"The I2P Network Protocol (I2NP),\n" +"which is sandwiched between I2CP and the various I2P transport protocols," +" manages the\n" +"routing and mixing of messages between routers, as well as the selection " +"of what\n" +"transports to use when communicating with a peer for which there are " +"multiple\n" +"common transports supported." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:14 +msgid "I2NP Definition" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:15 +msgid "" +"I2NP (I2P Network Protocol) messages can be used for one-hop, router-to-" +"router, point-to-point messages.\n" +"By encrypting and wrapping messages in other messages, they can be sent " +"in a secure way\n" +"through multiple hops to the ultimate destination.\n" +"Priority is only used locally at the origin, i.e. when queuing for " +"outbound delivery." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:22 +#, python-format +msgid "" +"The priorities listed below may not be current and are subject to change." +"\n" +"See the OutNetMessage Javadocs\n" +"for the current priority settings.\n" +"Priority queueing implementation may vary." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:29 +msgid "Message Format" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:32 +msgid "Field" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:33 +msgid "Unique ID" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:34 +msgid "Expiration" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:35 +#: i2p2www/pages/site/docs/protocol/i2np.html:92 +msgid "Payload Length" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:36 +msgid "Checksum" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:37 +msgid "Payload" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:40 +#, python-format +msgid "" +"While the maximum payload size is nominally 64KB, the size is further " +"constrained by the\n" +"method of fragmenting I2NP messages into multiple 1KB tunnel messages as " +"described on\n" +"the tunnel implementation page.\n" +"The maximum number of fragments is 64, and the message may not be " +"perfectly aligned,\n" +"So the message must nominally fit in 63 fragments." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:48 +msgid "" +"The maximum size of an initial fragment is 956 bytes (assuming TUNNEL " +"delivery mode);\n" +"the maximum size of a follow-on fragment is 996 bytes.\n" +"Therefore the maximum size is approximately 956 + (62 * 996) = 62708 " +"bytes, or 61.2 KB." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:54 +msgid "" +"In addition, the transports may have additional restrictions.\n" +"NTCP currently limits to 16KB - 6 = 16378 bytes but this will be " +"increased in a future release.\n" +"The SSU limit is approximately 32 KB." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:60 +msgid "" +"Note that these are not the limits for datagrams that the client sees, as" +" the\n" +"router may bundle a reply leaseset and/or session tags together with the " +"client message\n" +"in a garlic message. The leaseset and tags together may add about 5.5KB.\n" +"Therefore the current datagram limit is about 10KB. This limit will be\n" +"increased in a future release." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:68 +msgid "Message Types" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:69 +msgid "" +"Higher-numbered priority is higher priority.\n" +"The majority of traffic is TunnelDataMessages (priority 400),\n" +"so anything above 400 is essentially high priority, and\n" +"anything below is low priority.\n" +"Note also that many of the messages are generally routed\n" +"through exploratory tunnels, not client tunnels, and\n" +"therefore may not be in the same queue unless the\n" +"first hops happen to be on the same peer." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:80 +msgid "" +"Also, not all message types are sent unencrypted.\n" +"For example, when testing a tunnel, the router wraps a\n" +"DeliveryStatusMessage, which is wrapped in a GarlicMessage,\n" +"which is wrapped in a DataMessage." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:90 +msgid "Message" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:91 +msgid "Type" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:94 +msgid "Comments" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:102 +msgid "May vary" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:108 +msgid "" +"Size is 65 + 32*(number of hashes) where typically, the hashes for\n" +"three floodfill routers are returned." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:117 +msgid "Varies" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:119 +msgid "" +"Priority may vary.\n" +"Size is 898 bytes for a typical 2-lease leaseSet.\n" +"RouterInfo structures are compressed, and size varies; however\n" +"there is a continuing effort to reduce the amount of data published in a " +"RouterInfo\n" +"as we approach release 1.0." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:133 +msgid "Priority may vary on a per-destination basis" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:143 +msgid "" +"Used for message replies, and for testing tunnels - generally wrapped in " +"a GarlicMessage" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:151 +msgid "" +"Generally wrapped in a DataMessage -\n" +"but when unwrapped, given a priority of 100 by the forwarding router" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:178 +msgid "" +"The most common message. Priority for tunnel participants, outbound " +"endpoints, and inbound gateways was\n" +"reduced to 200 as of release 0.6.1.33.\n" +"Outbound gateway messages (i.e. those originated locally) remains at 400." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:198 +msgid "Shorter TunnelBuildMessage as of 0.7.12" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:206 +msgid "Shorter TunnelBuildReplyMessage as of 0.7.12" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:209 +#, python-format +msgid "Others listed in 2003 Spec" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:215 +msgid "Obsolete, Unused" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:219 +msgid "Full Protocol Specification" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:220 +#, python-format +msgid "" +"On the I2NP Specification page.\n" +"See also the\n" +"Common Data Structure Specification " +"page." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:227 +msgid "" +"It isn't clear whether the current priority scheme is generally " +"effective,\n" +"and whether the priorities for various messages should be adjusted " +"further.\n" +"This is a topic for further research, analysis and testing." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:2 +msgid "Protocol Stack" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:7 +#, python-format +msgid "" +"Here is the protocol stack for I2P.\n" +"See also the Index to Technical Documentation." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:12 +msgid "" +"Each of the layers in the stack provides extra capabilities.\n" +"The capabilities are listed below, starting at the bottom of the protocol" +" stack." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:18 +msgid "Internet Layer:" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:20 +msgid "" +"IP: Internet Protocol, allow addressing hosts on the regular internet and" +" routing packets across the internet using best-effort delivery." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:23 +msgid "Transport Layer:" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:25 +msgid "" +"TCP: Transmission Control Protocol, allow reliable, in-order delivery of " +"packets across the internet." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:27 +msgid "" +"UDP: User Datagram Protocol, allow unreliable, out-of-order delivery of " +"packets across the internet." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:30 +msgid "" +"I2P Transport Layer: provide encrypted connections between 2 I2P " +"routers. These are not anonymous yet, this is strictly a hop-to-hop " +"connection.\n" +"Two protocols are implemented to provide these capabilities. NTCP builds " +"on top of TCP, while SSU uses UDP." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:35 +msgid "NIO-based TCP" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:37 +msgid "Secure Semi-reliable UDP" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:40 +msgid "I2P Tunnel Layer: provide full encrypted tunnel connections." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:42 +#, python-format +msgid "" +"Tunnel messages: tunnel messages are " +"large messages containing encrypted I2NP (see below) messages and " +"encrypted instructions for their delivery.\n" +"The encryption is layered. The first hop will decrypt the tunnel message " +"and read a part. Another part can still be encrypted (with another key)," +"\n" +"so it will be forwarded." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:48 +#, python-format +msgid "" +"I2NP messages: I2P Network Protocol messages are" +" used to pass messages through multiple routers. These I2NP messages are " +"combined in tunnel messages." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:53 +msgid "" +"I2P Garlic Layer: provide encrypted and anonymous end-to-end I2P " +"message delivery." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:55 +#, python-format +msgid "" +"I2NP messages: I2P Network Protocol messages are" +" wrapped in each other and used to ensure encryption between two tunnels " +"and are passed along from source to destination, keeping both anonymous." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:61 +msgid "" +"The following layers are strictly speaking no longer part of the I2P " +"Protocol stack, they are not part of the core 'I2P router' functionality." +"\n" +"However, each of these layers adds additional functionality, to allow " +"applications simple and convenient I2P usage." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:67 +msgid "" +"I2P Client Layer: allow any client to use I2P functionality, " +"without requiring the direct use of the router API." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:69 +#, python-format +msgid "" +"I2CP: I2P Client Protocol, allows secure and " +"asynchronous messaging over I2P by communicating messages over the I2CP " +"TCP socket." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:74 +msgid "" +"I2P End-to-end Transport Layer: allow TCP- or UDP-like " +"functionality on top of I2P." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:76 +#, python-format +msgid "" +"Streaming Library: an implementation of " +"TCP-like streams over I2P. This allows easier porting of existing " +"applications to I2P." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:80 +#, python-format +msgid "" +"Datagram Library: an implementation of UDP-" +"like messages over I2P. This allows easier porting of existing " +"applications to I2P." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:85 +msgid "" +"I2P Application Interface Layer: additional (optional) libraries " +"allowing easier implementations on top of I2P." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:93 +msgid "I2P Application Proxy Layer: proxy systems." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:95 +#, python-format +msgid "HTTP Client/Server, IRC Client, SOCKS, Streamr" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:99 +msgid "" +"Finally, what could be considered the 'I2P application layer', is " +"a large number of applications on top of I2P.\n" +"We can order this based on the I2P stack layer they use." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:104 +msgid "Streaming/datagram applications: i2psnark, Syndie, i2phex..." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:105 +msgid "SAM/BOB applications: IMule, i2p-bt, i2prufus, Robert..." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:106 +#, python-format +msgid "" +"Other I2P applications: Syndie, EepGet, plugins..." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:107 +msgid "" +"Regular applications: Jetty, Apache, Monotone, CVS, browsers, " +"e-mail..." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:111 +msgid "I2P Network stack" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:113 +msgid "Figure 1: The layers in the I2P Network stack." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:118 +msgid "Note: SAM/SAMv2 can use both the streaming lib and datagrams." +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:2 +msgid "Transport Overview" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:3 +msgid "September 2014" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:6 +msgid "Transports in I2P" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:8 +msgid "" +"A \"transport\" in I2P is a method for direct, point-to-point " +"communication\n" +"between two routers.\n" +"Transports must provide confidentiality and integrity \n" +"against external adversaries while authenticating that the router " +"contacted \n" +"is the one who should receive a given message." +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:16 +msgid "" +"I2P supports multiple transports simultaneously.\n" +"There are two transports currently implemented:" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:21 +#, python-format +msgid "NTCP, a Java New I/O (NIO) TCP transport" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:22 +#, python-format +msgid " SSU, or Secure Semireliable UDP" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:25 +msgid "" +"Each provides a \"connection\" paradigm, with authentication,\n" +"flow control, acknowledgments and retransmission." +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:31 +msgid "Transport Services" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:33 +msgid "The transport subsystem in I2P provides the following services:" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:37 +#, python-format +msgid "" +"Reliable delivery of I2NP messages.\n" +"Transports support I2NP message delivery ONLY.\n" +"They are not general-purpose data pipes." +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:42 +msgid "In-order delivery of messages is NOT guaranteed by all transports." +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:43 +msgid "" +"Maintain a set of router addresses, one or more for each transport,\n" +"that the router publishes as its global contact information (the " +"RouterInfo).\n" +"Each transport may connect using one of these addresses, which may be\n" +"IPv4 or (as of version 0.9.8) IPv6." +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:49 +msgid "Selection of the best transport for each outgoing message" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:50 +msgid "Queueing of outbound messages by priority" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:51 +msgid "" +"Bandwidth limiting, both outbound and inbound, according to router " +"configuration" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:52 +msgid "Setup and teardown of transport connections" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:53 +msgid "Encryption of point-to-point communications" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:54 +msgid "" +"Maintenance of connection limits for each transport, implementation of " +"various thresholds for these limits,\n" +"and communication of threshold status to the router so it may make " +"operational changes based on the status" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:58 +msgid "Firewall port opening using UPnP (Universal Plug and Play)" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:59 +msgid "Cooperative NAT/Firewall traversal" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:60 +msgid "" +"Local IP detection by various methods, including UPnP, inspection of " +"incoming connections, and enumeration of network devices" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:61 +msgid "" +"Coordination of firewall status and local IP, and changes to either, " +"among the transports" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:62 +#: i2p2www/pages/site/docs/transport/ssu.html:36 +msgid "" +"Communication of firewall status and local IP, and changes to either, to " +"the router and the user interface" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:63 +msgid "" +"Determination of a consensus clock, which is used to periodically update " +"the router's clock, as a backup for NTP" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:64 +msgid "" +"Maintenance of status for each peer, including whether it is connected, " +"whether it was recently connected,\n" +"and whether it was reachable in the last attempt" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:68 +msgid "Qualification of valid IP addresses according to a local rule set" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:69 +msgid "" +"Honoring the automated and manual lists of banned peers maintained by the" +" router,\n" +"and refusing outbound and inbound connections to those peers" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:76 +msgid "Transport Addresses" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:78 +msgid "" +"The transport subsystem maintains a set of router addresses, each of " +"which lists a transport method, IP, and port.\n" +"These addresses constitute the advertised contact points, and are " +"published by the router to the network database.\n" +"Addresses may also contain an arbitrary set of additional options." +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:84 +msgid "Each transport method may publish multiple router addresses." +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:88 +msgid "Typical scenarios are:" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:90 +msgid "" +"A router has no published addresses, so it is considered \"hidden\" and " +"cannot receive incoming connections" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:91 +#, python-format +msgid "" +"A router is firewalled, and therefore publishes an SSU address which " +"contains a list of cooperating\n" +"peers or \"introducers\" who will assist in NAT traversal (see the SSU spec for details)" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:95 +msgid "" +"A router is not firewalled or its NAT ports are open; it publishes both " +"NTCP and SSU addresses containing\n" +"directly-accessible IP and ports." +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:101 +msgid "Transport Selection" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:103 +#, python-format +msgid "" +"The transport system delivers I2NP messages " +"only. The transport selected for any message is\n" +"independent of the upper-layer protocols and contents (router or client " +"messages, whether an external application was using\n" +"TCP or UDP to connect to I2P, whether the upper layer was using\n" +"the streaming library\n" +"streaming\n" +"or\n" +"datagrams,\n" +"datagrams\n" +"etc.)." +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:117 +msgid "" +"For each outgoing message, the transport system solicits \"bids\" from " +"each transport.\n" +"The transport bidding the lowest (best) value wins the bid and receives " +"the message for delivery.\n" +"A transport may refuse to bid." +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:123 +msgid "Whether a transport bids, and with what value, depend on numerous factors:" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:127 +msgid "Configuration of transport preferences" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:128 +msgid "Whether the transport is already connected to the peer" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:129 +msgid "" +"The number of current connections compared to various connection limit " +"thresholds" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:130 +msgid "Whether recent connection attempts to the peer have failed" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:131 +msgid "" +"The size of the message, as different transports have different size " +"limits" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:132 +msgid "" +"Whether the peer can accept incoming connections for that transport, as " +"advertised in its RouterInfo" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:133 +msgid "Whether the connection would be indirect (requiring introducers) or direct" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:134 +msgid "The peer's transport preference, as advertised in its RouterInfo" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:137 +msgid "" +"In general, the bid values are selected so that two routers are only " +"connected by a single transport\n" +"at any one time. However, this is not a requirement." +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:144 +msgid "New Transports and Future Work" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:146 +msgid "Additional transports may be developed, including:" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:151 +msgid "A TLS/SSH look-alike transport" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:152 +msgid "" +"An \"indirect\" transport for routers that are not reachable by all other" +" routers (one form of \"restricted routes\")" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:153 +msgid "Tor-compatible pluggable transports" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:156 +msgid "" +"Work continues on adjusting default connection limits for each transport." +"\n" +"I2P is designed as a \"mesh network\", where it is assumed that any " +"router can connect to any other router.\n" +"This assumption may be broken by routers that have exceeded their " +"connection limits, and by\n" +"routers that are behind restrictive state firewalls (restricted routes)." +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:163 +msgid "" +"The current connection limits are higher for SSU than for NTCP, based on " +"the assumption that\n" +"the memory requirements for an NTCP connection are higher than that for " +"SSU.\n" +"However, as NTCP buffers are partially in the kernel and SSU buffers are " +"on the Java heap,\n" +"that assumption is difficult to verify." +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:170 +#, python-format +msgid "" +"Analyze Breaking and Improving Protocol " +"Obfuscation\n" +"and see how transport-layer padding may improve things." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:2 +msgid "NTCP (NIO-based TCP)" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:6 +#, python-format +msgid "" +"NTCP is one of two transports currently " +"implemented in I2P.\n" +"The other is SSU.\n" +"NTCP is a Java NIO-based transport introduced in I2P release 0.6.1.22.\n" +"Java NIO (new I/O) does not suffer from the 1 thread per connection " +"issues of the old TCP transport.\n" +"NTCP-over-IPv6 is supported as of version 0.9.8." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:14 +msgid "" +"By default, NTCP uses the IP/Port\n" +"auto-detected by SSU. When enabled on config.jsp,\n" +"SSU will notify/restart NTCP when the external address changes\n" +"or when the firewall status changes.\n" +"Now you can enable inbound TCP without a static IP or dyndns service." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:22 +msgid "" +"The NTCP code within I2P is relatively lightweight (1/4 the size of the " +"SSU code)\n" +"because it uses the underlying Java TCP transport for reliable delivery." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:28 +#: i2p2www/pages/site/docs/transport/ssu.html:39 +msgid "Router Address Specification" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:30 +#: i2p2www/pages/site/docs/transport/ssu.html:41 +msgid "The following properties are stored in the network database." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:45 +msgid "NTCP Protocol Specification" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:47 +msgid "Standard Message Format" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:48 +msgid "" +"After establishment,\n" +"the NTCP transport sends individual I2NP messages, with a simple " +"checksum.\n" +"The unencrypted message is encoded as follows:" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:66 +msgid "" +"The data is then AES/256/CBC encrypted. The session key for the " +"encryption\n" +"is negotiated during establishment (using Diffie-Hellman 2048 bit).\n" +"The establishment between two routers is implemented in the " +"EstablishState class\n" +"and detailed below.\n" +"The IV for AES/256/CBC encryption is the last 16 bytes of the previous " +"encrypted message." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:74 +msgid "" +"0-15 bytes of padding are required to bring the total message length\n" +"(including the six size and checksum bytes) to a multiple of 16.\n" +"The maximum message size is currently 16 KB.\n" +"Therefore the maximum data size is currently 16 KB - 6, or 16378 bytes.\n" +"The minimum data size is 1." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:82 +msgid "Time Sync Message Format" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:83 +msgid "" +"One special case is a metadata message where the sizeof(data) is 0. In\n" +"that case, the unencrypted message is encoded as:" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:94 +msgid "" +"Total length: 16 bytes. The time sync message is sent at approximately 15" +" minute intervals.\n" +"The message is encrypted just as standard messages are." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:100 +msgid "Checksums" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:101 +#, python-format +msgid "" +"The standard and time sync messages use the Adler-32 checksum\n" +"as defined in the ZLIB Specification." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:107 +#: i2p2www/pages/site/docs/transport/ssu.html:183 +msgid "Idle Timeout" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:108 +#: i2p2www/pages/site/docs/transport/ssu.html:184 +msgid "" +"Idle timeout and connection close is at the discretion of each endpoint " +"and may vary.\n" +"The current implementation lowers the timeout as the number of " +"connections approaches the\n" +"configured maximum, and raises the timeout when the connection count is " +"low.\n" +"The recommended minimum timeout is two minutes or more, and the " +"recommended\n" +"maximum timeout is ten minutes or more." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:117 +msgid "RouterInfo Exchange" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:118 +msgid "" +"After establishment, and every 30-60 minutes thereafter,\n" +"the two routers should generally exchange RouterInfos using a " +"DatabaseStoreMessage.\n" +"However, Alice should check if the first queued message is a " +"DatabaseStoreMessage\n" +"so as not to send a duplicate message; this is often the case when " +"connecting to a floodfill router." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:126 +msgid "Establishment Sequence" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:127 +msgid "" +"In the establish state, there is a 4-phase message sequence to exchange " +"DH keys and signatures.\n" +"In the first two messages there is a 2048-bit Diffie Hellman exchange.\n" +"Then, signatures of the critical data are exchanged to confirm the " +"connection." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:143 +msgid "Legend:" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:144 +msgid "256 byte DH public keys" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:148 +msgid "timestamps (4 bytes, seconds since epoch)" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:149 +msgid "32 byte Session key" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:150 +msgid "2 byte size of Alice identity to follow" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:153 +msgid "DH Key Exchange" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:154 +#, python-format +msgid "" +"The initial 2048-bit DH key exchange\n" +"uses the same shared prime (p) and generator (g) as that used for I2P's\n" +"ElGamal encryption." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:160 +msgid "" +"The DH key exchange consists of a number of steps, displayed below.\n" +"The mapping between these steps and the messages sent between I2P " +"routers,\n" +"is marked in bold." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:166 +msgid "" +"Alice generates a secret integer x. She then calculates X = g^x mod" +" p." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:167 +msgid "Alice sends X to Bob (Message 1)." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:168 +msgid "" +"Bob generates a secret integer y. He then calculates Y = g^y mod " +"p." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:169 +msgid "Bob sends Y to Alice.(Message 2)" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:170 +msgid "Alice can now compute sessionKey = Y^x mod p." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:171 +msgid "Bob can now compute sessionKey = X^y mod p." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:172 +msgid "" +"Both Alice and Bob now have a shared key sessionKey = g^(x*y) mod " +"p." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:174 +#, python-format +msgid "" +"The sessionKey is then used to exchange identities in Message 3 " +"and Message 4.\n" +"The exponent (x and y) length for the DH exchange is documented on the\n" +"cryptography page." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:194 +msgid "Message 1 (Session Request)" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:195 +#, python-format +msgid "" +"This is the DH request. Alice already has Bob's\n" +"Router " +"Identity,\n" +"IP address, and port, as contained in his\n" +"Router Info,\n" +"which was published to the\n" +"network database.\n" +"Alice sends Bob:" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:208 +#: i2p2www/pages/site/docs/transport/ntcp.html:251 +#: i2p2www/pages/site/docs/transport/ntcp.html:333 +#: i2p2www/pages/site/docs/transport/ntcp.html:438 +msgid "Size:" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:210 +msgid "Contents:" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:228 +msgid "256 byte X from Diffie Hellman" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:230 +msgid "SHA256 Hash(X) xored with SHA256 Hash(Bob's `RouterIdentity`)" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:237 +#: i2p2www/pages/site/docs/transport/ntcp.html:320 +#: i2p2www/pages/site/docs/transport/ntcp.html:399 +msgid "Notes:" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:238 +msgid "" +"Bob verifies HXxorHI using his own router hash. If it does not verify,\n" +"Alice has contacted the wrong router, and Bob drops the connection." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:244 +msgid "Message 2 (Session Created)" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:245 +msgid "This is the DH reply. Bob sends Alice:" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:253 +#: i2p2www/pages/site/docs/transport/ntcp.html:335 +#: i2p2www/pages/site/docs/transport/ntcp.html:440 +msgid "Unencrypted Contents:" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:275 +#: i2p2www/pages/site/docs/transport/ntcp.html:311 +msgid "256 byte Y from Diffie Hellman" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:277 +msgid "SHA256 Hash(X concatenated with Y)" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:280 +#: i2p2www/pages/site/docs/transport/ntcp.html:365 +msgid "4 byte timestamp (seconds since the epoch)" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:282 +msgid "12 bytes random data" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:286 +#: i2p2www/pages/site/docs/transport/ntcp.html:377 +#: i2p2www/pages/site/docs/transport/ntcp.html:467 +msgid "Encrypted Contents:" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:313 +#, python-format +msgid "" +"48 bytes AES encrypted using the DH " +"session key and\n" +" the last 16 bytes of Y as the IV" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:321 +msgid "" +"Alice may drop the connection if the clock skew with Bob is too high as " +"calculated using tsB." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:326 +msgid "Message 3 (Session Confirm A)" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:327 +msgid "" +"This contains Alice's router identity, and a signature of the critical " +"data. Alice sends Bob:" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:361 +msgid "2 byte size of Alice's router identity to follow (387+)" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:363 +msgid "Alice's 387+ byte `RouterIdentity`" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:367 +#: i2p2www/pages/site/docs/transport/ntcp.html:462 +msgid "0-15 bytes random data" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:369 +msgid "" +"the `Signature` of the following concatenated data:\n" +" X, Y, Bob's `RouterIdentity`, tsA, tsB.\n" +" Alice signs it with the `SigningPrivateKey` associated with " +"the `SigningPublicKey` in her `RouterIdentity`" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:390 +#, python-format +msgid "" +"448 bytes AES encrypted using the DH" +" session key and\n" +" the last 16 bytes of HXxorHI (i.e., the last 16 bytes " +"of message #1) as the IV" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:401 +msgid "Bob verifies the signature, and on failure, drops the connection." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:404 +msgid "" +"Bob may drop the connection if the clock skew with Alice is too high as " +"calculated using tsA." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:407 +msgid "" +"Alice will use the last 16 bytes of the encrypted contents of this " +"message as the IV for the next message." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:431 +msgid "Message 4 (Session Confirm B)" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:432 +msgid "This is a signature of the critical data. Bob sends Alice:" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:456 +msgid "" +"the `Signature` of the following concatenated data:\n" +" X, Y, Alice's `RouterIdentity`, tsA, tsB.\n" +" Bob signs it with the `SigningPrivateKey` associated with " +"the `SigningPublicKey` in his `RouterIdentity`" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:480 +#, python-format +msgid "" +"Data AES encrypted using the DH " +"session key and\n" +" the last 16 bytes of the encrypted contents of message " +"#2 as the IV\n" +" 48 bytes for a DSA signature, may vary for other " +"signature types" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:489 +msgid "Alice verifies the signature, and on failure, drops the connection." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:492 +msgid "" +"Bob will use the last 16 bytes of the encrypted contents of this message " +"as the IV for the next message." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:507 +msgid "After Establishment" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:508 +msgid "" +"The connection is established, and standard or time sync messages may be " +"exchanged.\n" +"All subsequent messages are AES encrypted using the negotiated DH session" +" key.\n" +"Alice will use the last 16 bytes of the encrypted contents of message #3 " +"as the next IV.\n" +"Bob will use the last 16 bytes of the encrypted contents of message #4 as" +" the next IV." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:517 +msgid "Check Connection Message" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:518 +msgid "" +"Alternately, when Bob receives a connection, it could be a\n" +"check connection (perhaps prompted by Bob asking for someone\n" +"to verify his listener).\n" +"Check Connection is not currently used.\n" +"However, for the record, check connections are formatted as follows.\n" +"A check info connection will receive 256 bytes containing:" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:527 +msgid "32 bytes of uninterpreted, ignored data" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:528 +msgid "1 byte size" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:529 +msgid "" +"that many bytes making up the local router's IP address (as reached by " +"the remote side)" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:530 +msgid "2 byte port number that the local router was reached on" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:531 +msgid "" +"4 byte i2p network time as known by the remote side (seconds since the " +"epoch)" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:532 +msgid "uninterpreted padding data, up to byte 223" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:533 +msgid "" +"xor of the local router's identity hash and the SHA256 of bytes 32 " +"through bytes 223" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:536 +msgid "Check connection is completely disabled as of release 0.9.12." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:540 +msgid "Discussion" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:541 +#, python-format +msgid "Now on the NTCP Discussion Page." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:547 +msgid "The maximum message size should be increased to approximately 32 KB." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:551 +msgid "" +"A set of fixed packet sizes may be appropriate to further hide the data \n" +"fragmentation to external adversaries, but the tunnel, garlic, and end to" +" \n" +"end padding should be sufficient for most needs until then.\n" +"However, there is currently no provision for padding beyond the next " +"16-byte boundary,\n" +"to create a limited number of message sizes." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:559 +msgid "" +"Memory utilization (including that of the kernel) for NTCP should be " +"compared to that for SSU." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:563 +msgid "" +"Can the establishment messages be randomly padded somehow, to frustrate\n" +"identification of I2P traffic based on initial packet sizes?" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:2 +msgid "Secure Semireliable UDP" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:7 +#, python-format +msgid "" +"SSU (also called \"UDP\" in much of the I2P documentation and user " +"interfaces)\n" +"is one of two transports currently " +"implemented in I2P.\n" +"The other is NTCP." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:13 +msgid "" +"SSU is the newer of the two transports,\n" +"introduced in I2P release 0.6.\n" +"In a standard I2P installation, the router uses both NTCP and SSU for " +"outbound connections.\n" +"SSU-over-IPv6 is supported as of version 0.9.8." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:20 +msgid "" +"SSU is called \"semireliable\" because it will repeatedly retransmit " +"unacknowledged messages,\n" +"but only up to a maximum number of times. After that, the message is " +"dropped." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:25 +msgid "SSU Services" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:27 +msgid "" +"Like the NTCP transport, SSU provides reliable, encrypted, connection-" +"oriented, point-to-point data transport.\n" +"Unique to SSU, it also provides IP detection and NAT traversal services, " +"including:" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:33 +msgid "" +"Cooperative NAT/Firewall traversal using introducers" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:34 +msgid "" +"Local IP detection by inspection of incoming packets and peer testing" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:35 +msgid "" +"Communication of firewall status and local IP, and changes to either to " +"NTCP" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:47 +#: i2p2www/pages/site/docs/transport/ssu.html:60 +#: i2p2www/pages/site/docs/transport/ssu.html:61 +#: i2p2www/pages/site/docs/transport/ssu.html:63 +#: i2p2www/pages/site/docs/transport/ssu.html:66 +#: i2p2www/pages/site/docs/transport/ssu.html:67 +#: i2p2www/pages/site/docs/transport/ssu.html:73 +msgid "See below" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:80 +msgid "Protocol Details" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:82 +msgid "Congestion control" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:84 +msgid "" +"SSU's need for only semireliable delivery, TCP-friendly operation,\n" +"and the capacity for high throughput allows a great deal of latitude in\n" +"congestion control. The congestion control algorithm outlined below is\n" +"meant to be both efficient in bandwidth as well as simple to implement." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:91 +msgid "" +"Packets are scheduled according to the router's policy, taking care\n" +"not to exceed the router's outbound capacity or to exceed the measured \n" +"capacity of the remote peer. The measured capacity operates along the\n" +"lines of TCP's slow start and congestion avoidance, with additive " +"increases\n" +"to the sending capacity and multiplicative decreases in face of " +"congestion.\n" +"Unlike for TCP, routers may give up on some messages after\n" +"a given period or number of retransmissions while continuing to transmit" +" \n" +"other messages." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:102 +msgid "" +"The congestion detection techniques vary from TCP as well, since each \n" +"message has its own unique and nonsequential identifier, and each message" +"\n" +"has a limited size - at most, 32KB. To efficiently transmit this " +"feedback\n" +"to the sender, the receiver periodically includes a list of fully ACKed \n" +"message identifiers and may also include bitfields for partially received" +"\n" +"messages, where each bit represents the reception of a fragment. If \n" +"duplicate fragments arrive, the message should be ACKed again, or if the\n" +"message has still not been fully received, the bitfield should be \n" +"retransmitted with any new updates." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:114 +msgid "" +"The current implementation does not pad the packets to\n" +"any particular size, but instead just places a single message fragment " +"into\n" +"a packet and sends it off (careful not to exceed the MTU)." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:121 +msgid "" +"As of router version 0.8.12,\n" +"two MTU values are used for IPv4: 620 and 1484.\n" +"The MTU value is adjusted based on the percentage of packets that are " +"retransmitted." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:127 +msgid "" +"For both MTU values, it is desirable that (MTU % 16) == 12, so that\n" +"the payload portion after the 28-byte IP/UDP header is a multiple of\n" +"16 bytes, for encryption purposes." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:133 +msgid "" +"For the small MTU value, it is desirable to pack a 2646-byte\n" +"Variable Tunnel Build Message efficiently into multiple packets;\n" +"with a 620-byte MTU, it fits into 5 packets with nicely." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:139 +msgid "" +"Based on measurements, 1492 fits nearly all reasonably small I2NP " +"messages\n" +"(larger I2NP messages may be up to 1900 to 4500 bytes, which isn't going " +"to fit\n" +"into a live network MTU anyway)." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:145 +msgid "" +"The MTU values were 608 and 1492 for releases 0.8.9 - 0.8.11.\n" +"The large MTU was 1350 prior to release 0.8.9." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:150 +msgid "" +"The maximum receive packet size\n" +"is 1571 bytes as of release 0.8.12.\n" +"For releases 0.8.9 - 0.8.11 it was 1535 bytes.\n" +"Prior to release 0.8.9 it was 2048 bytes." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:157 +msgid "" +"As of release 0.9.2, if a router's network interface MTU is less than " +"1484,\n" +"it will publish that in the network database, and other routers should\n" +"honor that when a connection is established." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:163 +msgid "" +"For IPv6, the minimum MTU is 1280. The IPv6 IP/UDP header is 48 bytes,\n" +"so we use an MTU where (MTN % 16 == 0), which is true for 1280.\n" +"The maximum IPv6 MTU is 1488.\n" +" (max was 1472 prior to version 0.9.28)." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:170 +msgid "Message Size Limits" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:171 +msgid "" +"While the maximum message size is nominally 32KB, the practical\n" +"limit differs. The protocol limits the number of fragments to 7 bits, or " +"128.\n" +"The current implementation, however, limits each message to a maximum of " +"64 fragments,\n" +"which is sufficient for 64 * 534 = 33.3 KB when using the 608 MTU.\n" +"Due to overhead for bundled LeaseSets and session keys, the practical " +"limit\n" +"at the application level is about 6KB lower, or about 26KB.\n" +"Further work is necessary to raise the UDP transport limit above 32KB.\n" +"For connections using the larger MTU, larger messages are possible." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:193 +msgid "Keys" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:195 +msgid "" +"All encryption used is AES256/CBC with 32 byte keys and 16 byte IVs.\n" +"When Alice originates a session with Bob,\n" +"the MAC and session keys are negotiated as part of the DH exchange, and " +"are then used\n" +"for the HMAC and encryption, respectively. During the DH exchange, \n" +"Bob's publicly knowable introKey is used for the MAC and encryption." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:203 +msgid "" +"Both the initial message and the subsequent\n" +"reply use the introKey of the responder (Bob) - the responder does \n" +"not need to know the introKey of the requester (Alice). The DSA \n" +"signing key used by Bob should already be known to Alice when she \n" +"contacts him, though Alice's DSA key may not already be known by \n" +"Bob." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:212 +msgid "" +"Upon receiving a message, the receiver checks the \"from\" IP address and" +" port\n" +"with all established sessions - if there are matches,\n" +"that session's MAC keys are tested in the HMAC. If none\n" +"of those verify or if there are no matching IP addresses, the \n" +"receiver tries their introKey in the MAC. If that does not verify,\n" +"the packet is dropped. If it does verify, it is interpreted \n" +"according to the message type, though if the receiver is overloaded,\n" +"it may be dropped anyway." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:223 +msgid "" +"If Alice and Bob have an established session, but Alice loses the \n" +"keys for some reason and she wants to contact Bob, she may at any \n" +"time simply establish a new session through the SessionRequest and\n" +"related messages. If Bob has lost the key but Alice does not know\n" +"that, she will first attempt to prod him to reply, by sending a \n" +"DataMessage with the wantReply flag set, and if Bob continually \n" +"fails to reply, she will assume the key is lost and reestablish a \n" +"new one." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:234 +#, python-format +msgid "" +"For the DH key agreement,\n" +"RFC3526 2048bit\n" +"MODP group (#14) is used:" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:244 +#, python-format +msgid "" +"These are the same p and g used for I2P's\n" +"ElGamal encryption." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:249 +msgid "Replay prevention" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:251 +msgid "" +"Replay prevention at the SSU layer occurs by rejecting packets \n" +"with exceedingly old timestamps or those which reuse an IV. To\n" +"detect duplicate IVs, a sequence of Bloom filters are employed to\n" +"\"decay\" periodically so that only recently added IVs are detected." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:258 +msgid "" +"The messageIds used in DataMessages are defined at layers above\n" +"the SSU transport and are passed through transparently. These IDs\n" +"are not in any particular order - in fact, they are likely to be\n" +"entirely random. The SSU layer makes no attempt at messageId \n" +"replay prevention - higher layers should take that into account." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:266 +msgid "Addressing" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:268 +msgid "" +"To contact an SSU peer, one of two sets of information is necessary:\n" +"a direct address, for when the peer is publicly reachable, or an\n" +"indirect address, for using a third party to introduce the peer.\n" +"There is no restriction on the number of addresses a peer may have." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:280 +msgid "" +"Each of the addresses may also expose a series of options - special\n" +"capabilities of that particular peer. For a list of available\n" +"capabilities, see below." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:286 +#, python-format +msgid "" +"The addresses, options, and capabilities are published in the network database." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:291 +msgid "Direct Session Establishment" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:292 +msgid "" +"Direct session establishment is used when no third party is required for " +"NAT traversal.\n" +"The message sequence is as follows:" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:297 +msgid "Connection establishment (direct)" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:298 +msgid "" +"Alice connects directly to Bob.\n" +"IPv6 is supported as of version 0.9.8." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:313 +#, python-format +msgid "" +"After the SessionConfirmed message is received, Bob sends a small\n" +"DeliveryStatus message\n" +"as a confirmation.\n" +"In this message, the 4-byte message ID is set to a random number, and the" +"\n" +"8-byte \"arrival time\" is set to the current network-wide ID, which is 2" +"\n" +"(i.e. 0x0000000000000002)." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:322 +#, python-format +msgid "" +"After the status message is sent, the peers usually exchange\n" +"DatabaseStore messages\n" +"containing their\n" +"RouterInfos,\n" +"however, this is not required." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:331 +msgid "" +"It does not appear that the type of the status message or its contents " +"matters.\n" +"It was originally added becasue the DatabaseStore message was delayed\n" +"several seconds; since the store is now sent immediately, perhaps\n" +"the status message can be eliminated." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:340 +msgid "" +"Introduction keys are delivered through an external channel \n" +"(the network database, where they are identical to the router Hash for " +"now)\n" +"and must be used when establishing a session key. For the indirect\n" +"address, the peer must first contact the relayhost and ask them for\n" +"an introduction to the peer known at that relayhost under the given\n" +"tag. If possible, the relayhost sends a message to the addressed\n" +"peer telling them to contact the requesting peer, and also gives \n" +"the requesting peer the IP and port on which the addressed peer is\n" +"located. In addition, the peer establishing the connection must \n" +"already know the public keys of the peer they are connecting to (but\n" +"not necessary to any intermediary relay peer)." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:354 +msgid "" +"Indirect session establishment by means of a third party introduction\n" +"is necessary for efficient NAT traversal. Charlie, a router behind a\n" +"NAT or firewall which does not allow unsolicited inbound UDP packets,\n" +"first contacts a few peers, choosing some to serve as introducers. Each\n" +"of these peers (Bob, Bill, Betty, etc) provide Charlie with an " +"introduction\n" +"tag - a 4 byte random number - which he then makes available to the " +"public\n" +"as methods of contacting him. Alice, a router who has Charlie's " +"published\n" +"contact methods, first sends a RelayRequest packet to one or more of the" +" \n" +"introducers, asking each to introduce her to Charlie (offering the \n" +"introduction tag to identify Charlie). Bob then forwards a RelayIntro\n" +"packet to Charlie including Alice's public IP and port number, then sends" +"\n" +"Alice back a RelayResponse packet containing Charlie's public IP and port" +"\n" +"number. When Charlie receives the RelayIntro packet, he sends off a " +"small\n" +"random packet to Alice's IP and port (poking a hole in his NAT/firewall)," +"\n" +"and when Alice receives Bob's RelayResponse packet, she begins a new \n" +"full direction session establishment with the specified IP and port." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:381 +msgid "Connection establishment (indirect using an introducer)" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:383 +msgid "Alice first connects to introducer Bob, who relays the request to Charlie." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:401 +msgid "" +"After the hole punch, the session is established between Alice and " +"Charlie as in a direct establishment." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:413 +msgid "Peer testing" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:415 +msgid "" +"The automation of collaborative reachability testing for peers is\n" +"enabled by a sequence of PeerTest messages. With its proper \n" +"execution, a peer will be able to determine their own reachability\n" +"and may update its behavior accordingly. The testing process is \n" +"quite simple:" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:434 +msgid "" +"Each of the PeerTest messages carry a nonce identifying the\n" +"test series itself, as initialized by Alice. If Alice doesn't \n" +"get a particular message that she expects, she will retransmit\n" +"accordingly, and based upon the data received or the messages\n" +"missing, she will know her reachability. The various end states\n" +"that may be reached are as follows:" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:444 +msgid "" +"If she doesn't receive a response from Bob, she will retransmit\n" +"up to a certain number of times, but if no response ever arrives,\n" +"she will know that her firewall or NAT is somehow misconfigured, \n" +"rejecting all inbound UDP packets even in direct response to an\n" +"outbound packet. Alternately, Bob may be down or unable to get \n" +"Charlie to reply." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:453 +msgid "" +"If Alice doesn't receive a PeerTest message with the \n" +"expected nonce from a third party (Charlie), she will retransmit\n" +"her initial request to Bob up to a certain number of times, even\n" +"if she has received Bob's reply already. If Charlie's first message \n" +"still doesn't get through but Bob's does, she knows that she is\n" +"behind a NAT or firewall that is rejecting unsolicited connection\n" +"attempts and that port forwarding is not operating properly (the\n" +"IP and port that Bob offered up should be forwarded)." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:464 +msgid "" +"If Alice receives Bob's PeerTest message and both of Charlie's\n" +"PeerTest messages but the enclosed IP and port numbers in Bob's \n" +"and Charlie's second messages don't match, she knows that she is \n" +"behind a symmetric NAT, rewriting all of her outbound packets with\n" +"different 'from' ports for each peer contacted. She will need to\n" +"explicitly forward a port and always have that port exposed for \n" +"remote connectivity, ignoring further port discovery." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:474 +msgid "" +"If Alice receives Charlie's first message but not his second,\n" +"she will retransmit her PeerTest message to Charlie up to a \n" +"certain number of times, but if no response is received she knows\n" +"that Charlie is either confused or no longer online." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:482 +msgid "" +"Alice should choose Bob arbitrarily from known peers who seem\n" +"to be capable of participating in peer tests. Bob in turn should\n" +"choose Charlie arbitrarily from peers that he knows who seem to be\n" +"capable of participating in peer tests and who are on a different\n" +"IP from both Bob and Alice. If the first error condition occurs\n" +"(Alice doesn't get PeerTest messages from Bob), Alice may decide\n" +"to designate a new peer as Bob and try again with a different nonce." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:492 +msgid "" +"Alice's introduction key is included in all of the PeerTest \n" +"messages so that she doesn't need to already have an established\n" +"session with Bob and so that Charlie can contact her without knowing\n" +"any additional information. Alice may go on to establish a session\n" +"with either Bob or Charlie, but it is not required." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:520 +msgid "Transmission window, ACKs and Retransmissions" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:521 +#, python-format +msgid "" +"The DATA message may contain ACKs of full messages and\n" +"partial ACKs of individual fragments of a message. See\n" +"the data message section of\n" +"the protocol specification page\n" +"for details." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:529 +#, python-format +msgid "" +"The details of windowing, ACK, and retransmission strategies are not " +"specified\n" +"here. See the Java code for the current implementation.\n" +"During the establishment phase, and for peer testing, routers\n" +"should implement exponential backoff for retransmission.\n" +"For an established connection, routers should implement\n" +"an adjustable transmission window, RTT estimate and timeout, similar to " +"TCP\n" +"or streaming.\n" +"See the code for initial, min and max parameters." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:541 +msgid "Security" +msgstr "Seguretat" + +#: i2p2www/pages/site/docs/transport/ssu.html:542 +msgid "" +"UDP source addresses may, of course, be spoofed.\n" +"Additionally, the IPs and ports contained inside specific\n" +"SSU messages (RelayRequest, RelayResponse, RelayIntro, PeerTest)\n" +"may not be legitimate.\n" +"Also, certain actions and responses may need to be rate-limited." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:550 +msgid "" +"The details of validation are not specified\n" +"here. Implementers should add defenses where appropriate." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:556 +msgid "Peer capabilities" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:560 +msgid "" +"If the peer address contains the 'B' capability, that means \n" +"they are willing and able to participate in peer tests as\n" +"a 'Bob' or 'Charlie'." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:572 +msgid "" +"If the peer address contains the 'C' capability, that means\n" +"they are willing and able to serve as an introducer - serving\n" +"as a Bob for an otherwise unreachable Alice." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:581 +msgid "" +"Analysis of current SSU performance, including assessment of window size " +"adjustment\n" +"and other parameters, and adjustment of the protocol implementation to " +"improve\n" +"performance, is a topic for future work." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:587 +msgid "" +"The current implementation repeatedly sends acknowledgments for the same " +"packets,\n" +"which unnecessarily increases overhead." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:592 +msgid "" +"The default small MTU value of 620 should be analyzed and possibly " +"increased.\n" +"The current MTU adjustment strategy should be evaluated.\n" +"Does a streaming lib 1730-byte packet fit in 3 small SSU packets? " +"Probably not." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:598 +msgid "The protocol should be extended to exchange MTUs during the setup." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:602 +msgid "Rekeying is currently unimplemented and may never be." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:606 +msgid "" +"The potential use of the 'challenge' fields in RelayIntro and " +"RelayResponse,\n" +"and use of the padding field in SessionRequest and SessionCreated, is " +"undocumented." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:611 +msgid "" +"Instead of a single fragment per packet, a more efficient\n" +"strategy may be to bundle multiple message fragments into the same " +"packet,\n" +"so long as it doesn't exceed the MTU." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:617 +msgid "" +"A set of fixed packet sizes may be appropriate to further hide the data \n" +"fragmentation to external adversaries, but the tunnel, garlic, and end to" +" \n" +"end padding should be sufficient for most needs until then." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:623 +msgid "" +"Why are introduction keys the same as the router hash, should it be " +"changed, would there be any benefit?" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:627 +msgid "Capacities appear to be unused." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:631 +msgid "" +"Signed-on times in SessionCreated and SessionConfirmed appear to be " +"unused or unverified." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:636 +msgid "Implementation Diagram" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:637 +msgid "" +"This diagram\n" +"should accurately reflect the current implementation, however there may " +"be small differences." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:645 +msgid "Now on the SSU specification page" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:2 +msgid "Tunnel Implementation" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:3 +msgid "October 2010" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:7 +msgid "This page documents the current tunnel implementation." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:9 +msgid "Tunnel overview" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:11 +msgid "" +"Within I2P, messages are passed in one direction through a virtual\n" +"tunnel of peers, using whatever means are available to pass the \n" +"message on to the next hop. Messages arrive at the tunnel's \n" +"gateway, get bundled up and/or fragmented into fixed-size tunnel " +"messages, \n" +"and are forwarded on to the next hop in the tunnel, which processes and " +"verifies\n" +"the validity of the message and sends it on to the next hop, and so on, " +"until\n" +"it reaches the tunnel endpoint. That endpoint takes the messages\n" +"bundled up by the gateway and forwards them as instructed - either\n" +"to another router, to another tunnel on another router, or locally." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:23 +msgid "" +"Tunnels all work the same, but can be segmented into two different\n" +"groups - inbound tunnels and outbound tunnels. The inbound tunnels\n" +"have an untrusted gateway which passes messages down towards the \n" +"tunnel creator, which serves as the tunnel endpoint. For outbound \n" +"tunnels, the tunnel creator serves as the gateway, passing messages\n" +"out to the remote endpoint." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:32 +msgid "" +"The tunnel's creator selects exactly which peers will participate\n" +"in the tunnel, and provides each with the necessary configuration\n" +"data. They may have any number of hops.\n" +"It is the intent to make\n" +"it hard for either participants or third parties to determine the length " +"of \n" +"a tunnel, or even for colluding participants to determine whether they " +"are a\n" +"part of the same tunnel at all (barring the situation where colluding " +"peers are\n" +"next to each other in the tunnel)." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:43 +msgid "" +"In practice, a series of tunnel pools are used for different\n" +"purposes - each local client destination has its own set of inbound\n" +"tunnels and outbound tunnels, configured to meet its anonymity and\n" +"performance needs. In addition, the router itself maintains a series\n" +"of pools for participating in the network database and for managing\n" +"the tunnels themselves." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:52 +msgid "" +"I2P is an inherently packet switched network, even with these \n" +"tunnels, allowing it to take advantage of multiple tunnels running \n" +"in parallel, increasing resilience and balancing load. Outside of\n" +"the core I2P layer, there is an optional end to end streaming library \n" +"available for client applications, exposing TCP-esque operation,\n" +"including message reordering, retransmission, congestion control, etc." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:61 +#, python-format +msgid "" +"An overview of I2P tunnel terminology is\n" +"on the tunnel overview page." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:66 +msgid "Tunnel Operation (Message Processing)" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:69 +#, python-format +msgid "" +"After a tunnel is built, I2NP messages are " +"processed and passed through it.\n" +"Tunnel operation has four distinct processes, taken on by various \n" +"peers in the tunnel." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:75 +msgid "" +"First, the tunnel gateway accumulates a number\n" +"of I2NP messages and preprocesses them into tunnel messages for\n" +"delivery." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:80 +msgid "" +"Next, that gateway encrypts that preprocessed data, then\n" +"forwards it to the first hop." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:84 +msgid "" +"That peer, and subsequent tunnel \n" +"participants, unwrap a layer of the encryption, verifying that it isn't\n" +"a duplicate, then forward it on to the next peer." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:89 +msgid "" +"Eventually, the tunnel messages arrive at the endpoint where the I2NP " +"messages\n" +"originally bundled by the gateway are reassembled and forwarded on as \n" +"requested." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:96 +msgid "" +"Intermediate tunnel participants do not know whether they are in an\n" +"inbound or an outbound tunnel; they always \"encrypt\" for the next hop.\n" +"Therefore, we take advantage of symmetric AES encryption\n" +"to \"decrypt\" at the outbound tunnel gateway,\n" +"so that the plaintext is revealed at the outbound endpoint." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:110 +msgid "Role" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:111 +msgid "Preprocessing" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:112 +msgid "Encryption Operation" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:113 +msgid "Postprocessing" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:117 +msgid "Outbound Gateway (Creator)" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:118 +#: i2p2www/pages/site/docs/tunnels/implementation.html:141 +msgid "Fragment, Batch, and Pad" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:119 +msgid "Iteratively encrypt (using decryption operations)" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:120 +#: i2p2www/pages/site/docs/tunnels/implementation.html:127 +#: i2p2www/pages/site/docs/tunnels/implementation.html:143 +#: i2p2www/pages/site/docs/tunnels/implementation.html:150 +msgid "Forward to next hop" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:124 +#: i2p2www/pages/site/docs/tunnels/implementation.html:147 +msgid "Participant" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:126 +msgid "Decrypt (using an encryption operation)" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:133 +msgid "Decrypt (using an encryption operation) to reveal plaintext tunnel message" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:134 +msgid "Reassemble Fragments, Forward as instructed to Inbound Gateway or Router" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:142 +#: i2p2www/pages/site/docs/tunnels/implementation.html:149 +msgid "Encrypt" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:154 +msgid "Inbound Endpoint (Creator)" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:156 +msgid "Iteratively decrypt to reveal plaintext tunnel message" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:157 +msgid "Reassemble Fragments, Receive data" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:163 +msgid "Gateway Processing" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:164 +msgid "Message Preprocessing" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:166 +#, python-format +msgid "" +"A tunnel gateway's function is to fragment and pack\n" +"I2NP messages into fixed-size\n" +"tunnel messages\n" +"and encrypt the tunnel messages.\n" +"Tunnel messages contain the following:" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:174 +msgid "A 4 byte Tunnel ID" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:175 +msgid "A 16 byte IV (initialization vector)" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:176 +msgid "A checksum" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:177 +msgid "Padding, if necessary" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:178 +msgid "One or more { delivery instruction, I2NP message fragment } pairs" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:181 +msgid "" +"Tunnel IDs are 4 byte numbers used at each hop - participants know what\n" +"tunnel ID to listen for messages with and what tunnel ID they should be " +"forwarded\n" +"on as to the next hop, and each hop chooses the tunnel ID which they " +"receive messages\n" +"on. Tunnels themselves are short-lived (10 minutes).\n" +"Even if subsequent tunnels are built using the same sequence of \n" +"peers, each hop's tunnel ID will change." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:190 +msgid "" +"To prevent adversaries from tagging the messages along the path by " +"adjusting\n" +"the message size, all tunnel messages are a fixed 1024 bytes in size. To" +" accommodate \n" +"larger I2NP messages as well as to support smaller ones more efficiently," +" the\n" +"gateway splits up the larger I2NP messages into fragments contained " +"within each\n" +"tunnel message. The endpoint will attempt to rebuild the I2NP message " +"from the\n" +"fragments for a short period of time, but will discard them as necessary." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:199 +#, python-format +msgid "" +"Details are in the\n" +"tunnel message specification." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:205 +msgid "Gateway Encryption" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:207 +msgid "" +"After the preprocessing of messages into a padded payload, the gateway " +"builds\n" +"a random 16 byte IV value, iteratively encrypting it and the tunnel " +"message as\n" +"necessary, and forwards the tuple {tunnelID, IV, encrypted tunnel " +"message} to the next hop." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:213 +msgid "" +"How encryption at the gateway is done depends on whether the tunnel is an" +"\n" +"inbound or an outbound tunnel. For inbound tunnels, they simply select a" +" random\n" +"IV, postprocessing and updating it to generate the IV for the gateway and" +" using \n" +"that IV along side their own layer key to encrypt the preprocessed data." +" For outbound \n" +"tunnels they must iteratively decrypt the (unencrypted) IV and " +"preprocessed \n" +"data with the IV and layer keys for all hops in the tunnel. The result " +"of the outbound\n" +"tunnel encryption is that when each peer encrypts it, the endpoint will " +"recover \n" +"the initial preprocessed data." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:225 +msgid "Participant Processing" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:227 +msgid "" +"When a peer receives a tunnel message, it checks that the message came " +"from\n" +"the same previous hop as before (initialized when the first message comes" +" through\n" +"the tunnel). If the previous peer is a different router, or if the " +"message has\n" +"already been seen, the message is dropped. The participant then encrypts" +" the \n" +"received IV with AES256/ECB using their IV key to determine the current " +"IV, uses \n" +"that IV with the participant's layer key to encrypt the data, encrypts " +"the \n" +"current IV with AES256/ECB using their IV key again, then forwards the " +"tuple \n" +"{nextTunnelId, nextIV, encryptedData} to the next hop. This double " +"encryption\n" +"of the IV (both before and after use) help address a certain class of\n" +"confirmation attacks." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:243 +msgid "" +"Duplicate message detection is handled by a decaying Bloom filter on " +"message\n" +"IVs. Each router maintains a single Bloom filter to contain the XOR of " +"the IV and\n" +"the first block of the message received for all of the tunnels it is " +"participating\n" +"in, modified to drop seen entries after 10-20 minutes (when the tunnels " +"will have\n" +"expired). The size of the bloom filter and the parameters used are " +"sufficient to\n" +"more than saturate the router's network connection with a negligible " +"chance of \n" +"false positive. The unique value fed into the Bloom filter is the XOR of" +" the IV \n" +"and the first block so as to prevent nonsequential colluding peers in the" +" tunnel \n" +"from tagging a message by resending it with the IV and first block " +"switched." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:256 +msgid "Endpoint Processing" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:258 +msgid "" +"After receiving and validating a tunnel message at the last hop in the " +"tunnel,\n" +"how the endpoint recovers the data encoded by the gateway depends upon " +"whether \n" +"the tunnel is an inbound or an outbound tunnel. For outbound tunnels, " +"the \n" +"endpoint encrypts the message with its layer key just like any other " +"participant, \n" +"exposing the preprocessed data. For inbound tunnels, the endpoint is " +"also the \n" +"tunnel creator so they can merely iteratively decrypt the IV and message," +" using the \n" +"layer and IV keys of each step in reverse order." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:268 +msgid "" +"At this point, the tunnel endpoint has the preprocessed data sent by the " +"gateway,\n" +"which it may then parse out into the included I2NP messages and forwards " +"them as\n" +"requested in their delivery instructions." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:275 +msgid "Tunnel Building" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:277 +msgid "" +"When building a tunnel, the creator must send a request with the " +"necessary\n" +"configuration data to each of the hops and wait for all of them to agree " +"before\n" +"enabling the tunnel. The requests are encrypted so that only the peers " +"who need\n" +"to know a piece of information (such as the tunnel layer or IV key) has " +"that\n" +"data. In addition, only the tunnel creator will have access to the " +"peer's\n" +"reply. There are three important dimensions to keep in mind when " +"producing\n" +"the tunnels: what peers are used (and where), how the requests are sent " +"(and \n" +"replies received), and how they are maintained." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:291 +msgid "" +"Beyond the two types of tunnels - inbound and outbound - there are two " +"styles\n" +"of peer selection used for different tunnels - exploratory and client.\n" +"Exploratory tunnels are used for both network database maintenance and " +"tunnel\n" +"maintenance, while client tunnels are used for end to end client messages." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:299 +msgid "Exploratory tunnel peer selection" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:301 +msgid "" +"Exploratory tunnels are built out of a random selection of peers from a " +"subset\n" +"of the network. The particular subset varies on the local router and on " +"what their\n" +"tunnel routing needs are. In general, the exploratory tunnels are built " +"out of\n" +"randomly selected peers who are in the peer's \"not failing but active\" " +"profile\n" +"category. The secondary purpose of the tunnels, beyond merely tunnel " +"routing,\n" +"is to find underutilized high capacity peers so that they can be promoted" +" for\n" +"use in client tunnels." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:311 +#, python-format +msgid "" +"Exploratory peer selection is discussed further on the\n" +"Peer Profiling and Selection page." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:317 +msgid "Client tunnel peer selection" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:319 +msgid "" +"Client tunnels are built with a more stringent set of requirements - the " +"local\n" +"router will select peers out of its \"fast and high capacity\" profile " +"category so\n" +"that performance and reliability will meet the needs of the client " +"application.\n" +"However, there are several important details beyond that basic selection " +"that \n" +"should be adhered to, depending upon the client's anonymity needs." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:327 +#, python-format +msgid "" +"Client peer selection is discussed further on the\n" +"Peer Profiling and Selection page." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:332 +msgid "Peer Ordering within Tunnels" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:334 +#, python-format +msgid "" +"Peers are ordered within tunnels to deal with the\n" +"predecessor attack\n" +"(2008 update)." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:341 +msgid "" +"To frustrate the predecessor \n" +"attack, the tunnel selection keeps the peers selected in a strict order -" +"\n" +"if A, B, and C are in a tunnel for a particular tunnel pool, the hop " +"after A is always B, and the hop after\n" +"B is always C." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:348 +msgid "" +"Ordering is implemented by generating a random 32-byte key for each\n" +"tunnel pool at startup.\n" +"Peers should not be able to guess the ordering, or an attacker could\n" +"craft two router hashes far apart to maximize the chance of being at both" +"\n" +"ends of a tunnel.\n" +"Peers are sorted by XOR distance of the\n" +"SHA256 Hash of (the peer's hash concatenated with the random key) from " +"the random key" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:363 +msgid "" +"Because each tunnel pool uses a different random key, ordering is " +"consistent\n" +"within a single pool but not between different pools.\n" +"New keys are generated at each router restart." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:370 +msgid "Request delivery" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:372 +#, python-format +msgid "" +"A multi-hop tunnel is built using a single build message which is " +"repeatedly\n" +"decrypted and forwarded. In the terminology of\n" +"Hashing it out in Public,\n" +"this is \"non-interactive\" telescopic tunnel building." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:379 +#, python-format +msgid "" +"This tunnel request preparation, delivery, and response method is\n" +"designed to reduce the number of\n" +"predecessors exposed, cuts the number of messages transmitted, verifies " +"proper\n" +"connectivity, and avoids the message counting attack of traditional " +"telescopic\n" +"tunnel creation.\n" +"(This method, which sends messages to extend a tunnel through the " +"already-established\n" +"part of the tunnel, is termed \"interactive\" telescopic tunnel building " +"in\n" +"the \"Hashing it out\" paper.)" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:390 +#, python-format +msgid "" +"The details of tunnel request and response messages, and their " +"encryption,\n" +"are specified here." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:395 +msgid "" +"Peers may reject tunnel creation requests for a variety of reasons, " +"though\n" +"a series of four increasingly severe rejections are known: probabilistic " +"rejection\n" +"(due to approaching the router's capacity, or in response to a flood of " +"requests), \n" +"transient overload, bandwidth overload, and critical failure. When " +"received, \n" +"those four are interpreted by the tunnel creator to help adjust their " +"profile of\n" +"the router in question." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:404 +#, python-format +msgid "" +"For more information on peer profiling, see the\n" +"Peer Profiling and Selection page." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:410 +msgid "Tunnel Pools" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:412 +#, python-format +msgid "" +"To allow efficient operation, the router maintains a series of tunnel " +"pools,\n" +"each managing a group of tunnels used for a specific purpose with their " +"own\n" +"configuration. When a tunnel is needed for that purpose, the router " +"selects one\n" +"out of the appropriate pool at random. Overall, there are two " +"exploratory tunnel\n" +"pools - one inbound and one outbound - each using the router's default " +"configuration.\n" +"In addition, there is a pair of pools for each local destination -\n" +"one inbound and one outbound tunnel pool. Those pools use the " +"configuration specified\n" +"when the local destination connects to the router via I2CP, or the router's defaults if\n" +"not specified." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:424 +#, python-format +msgid "" +"Each pool has within its configuration a few key settings, defining how " +"many\n" +"tunnels to keep active, how many backup tunnels to maintain in case of " +"failure,\n" +"how long the tunnels should be, whether those\n" +"lengths should be randomized, as \n" +"well as any of the other settings allowed when configuring individual " +"tunnels.\n" +"Configuration options are specified on the I2CP " +"page." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:434 +msgid "Tunnel Lengths and Defaults" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:436 +msgid "On the tunnel overview page" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:438 +msgid "Anticipatory Build Strategy and Priority" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:440 +msgid "" +"Tunnel building is expensive, and tunnels expire a fixed time after they " +"are built.\n" +"However, when a pool that runs out of tunnels, the Destination is " +"essentially dead.\n" +"In addition, tunnel build success rate may vary greatly with both local " +"and global\n" +"network conditions.\n" +"Therefore, it is important to maintain an anticipatory, adaptive build " +"strategy\n" +"to ensure that new tunnels are successfully built before they are needed," +"\n" +"without building an excess of tunnels, building them too soon,\n" +"or consuming too much CPU or bandwidth creating and sending the encrypted" +" build messages." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:451 +msgid "" +"For each tuple {exploratory/client, in/out, length, length variance}\n" +"the router maintains statistics on the time required for a successful\n" +"tunnel build.\n" +"Using these statistics, it calculates how long before a tunnel's " +"expiration\n" +"it should start attempting to build a replacement.\n" +"As the expiration time approaches without a successful replacement,\n" +"it starts multiple build attempts in parallel, and then\n" +"will increase the number of parallel attempts if necessary." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:462 +msgid "" +"To cap bandwidth and CPU usage,\n" +"the router also limits the maximum number of build attempts outstanding\n" +"across all pools.\n" +"Critical builds (those for exploratory tunnels, and for pools that have\n" +"run out of tunnels) are prioritized." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:471 +msgid "Tunnel Message Throttling" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:473 +msgid "" +"Even though the tunnels within I2P bear a resemblance to a circuit " +"switched\n" +"network, everything within I2P is strictly message based - tunnels are " +"merely\n" +"accounting tricks to help organize the delivery of messages. No " +"assumptions are\n" +"made regarding reliability or ordering of messages, and retransmissions " +"are left\n" +"to higher levels (e.g. I2P's client layer streaming library). This " +"allows I2P\n" +"to take advantage of throttling techniques available to both packet " +"switched and\n" +"circuit switched networks. For instance, each router may keep track of " +"the \n" +"moving average of how much data each tunnel is using, combine that with " +"all of \n" +"the averages used by other tunnels the router is participating in, and be" +" able\n" +"to accept or reject additional tunnel participation requests based on its" +" \n" +"capacity and utilization. On the other hand, each router can simply drop" +" \n" +"messages that are beyond its capacity, exploiting the research used on " +"the \n" +"normal Internet." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:489 +msgid "" +"In the current implementation, routers implement a\n" +"weighted random early discard (WRED) strategy.\n" +"For all participating routers (internal participant, inbound gateway, and" +" outbound endpoint),\n" +"the router will start randomly dropping a portion of messages as the\n" +"bandwidth limits are approached.\n" +"As traffic gets closer to, or exceeds, the limits, more messages are " +"dropped.\n" +"For an internal participant, all messages are fragmented and padded and " +"therefore are the same size.\n" +"At the inbound gateway and outbound endpoint, however, the dropping " +"decision is made\n" +"on the full (coalesced) message, and the message size is taken into " +"account.\n" +"Larger messages are more likely to be dropped.\n" +"Also, messages are more likely to be dropped at the outbound endpoint " +"than the inbound gateway,\n" +"as those messages are not as \"far along\" in their journey and thus the " +"network cost of\n" +"dropping those messages is lower." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:507 +msgid "Mixing/batching" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:509 +msgid "" +"What strategies could be used at the gateway and at each hop for " +"delaying,\n" +"reordering, rerouting, or padding messages? To what extent should this " +"be done\n" +"automatically, how much should be configured as a per tunnel or per hop " +"setting,\n" +"and how should the tunnel's creator (and in turn, user) control this " +"operation?\n" +"All of this is left as unknown, to be worked out for a distant future " +"release." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:518 +msgid "Padding" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:519 +msgid "" +"The padding strategies can be used on a variety of levels, addressing the" +"\n" +"exposure of message size information to different adversaries.\n" +"The current fixed tunnel message size is 1024 bytes. Within this " +"however, the fragmented\n" +"messages themselves are not padded by the tunnel at all, though for end " +"to end \n" +"messages, they may be padded as part of the garlic wrapping." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:529 +msgid "" +"WRED strategies have a significant impact on end-to-end performance,\n" +"and prevention of network congestion collapse.\n" +"The current WRED strategy should be carefully evaluated and improved." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/old-implementation.html:2 +msgid "Old Tunnel Implementation" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/old-implementation.html:5 +#, python-format +msgid "" +"Note: Obsolete - NOT used! Replaced in 0.6.1.10 - see here for the current implementation" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/unidirectional.html:3 +msgid "November 2016" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/unidirectional.html:7 +msgid "" +"This page describes the origins and design of I2P's unidirectional " +"tunnels.\n" +"For further information see:" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/unidirectional.html:13 +msgid "Tunnel overview page" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/unidirectional.html:19 +msgid "Tunnel design discussion" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/unidirectional.html:21 +msgid "Peer selection" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/unidirectional.html:23 +msgid "Meeting 125 (~13:12-13:30)" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/unidirectional.html:28 +msgid "Review" +msgstr "Revisa" + +#: i2p2www/pages/site/docs/tunnels/unidirectional.html:30 +msgid "" +"While we aren't aware of any published research on the advantages of \n" +"unidirecdtional tunnels,\n" +"they appear to make it harder to detect a \n" +"request/response pattern, which is quite possible to detect over a \n" +"bidirectional tunnel.\n" +"Several apps and protocols, notably HTTP,\n" +"do transfer data in such manner. Having the traffic follow the same \n" +"route to its destination and back could make it easier for an \n" +"attacker who has only timing and traffic volume data to infer the path a" +" \n" +"tunnel is taking.\n" +"Having the response come back along a different path arguably \n" +"makes it harder." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/unidirectional.html:45 +msgid "" +"When dealing with \n" +"an internal adversary or most external adversaries, I2P's undirectional " +"tunnels\n" +"expose half as much traffic data than would be exposed with bidirectional" +" circuits\n" +"by simply looking at the flows themselves - an HTTP request and response " +"would \n" +"follow the same path in Tor, while in I2P the packets making up the " +"request \n" +"would go out through one or more outbound tunnels and the packets making " +"up \n" +"the response would come back through one or more different inbound " +"tunnels." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/unidirectional.html:55 +msgid "" +"The strategy of using two separate tunnels for inbound and outbound\n" +"communication is not the only technique available, and it does have " +"anonymity\n" +"implications. On the positive side, by using separate tunnels it lessens" +" the\n" +"traffic data exposed for analysis to participants in a tunnel - for " +"instance,\n" +"peers in an outbound tunnel from a web browser would only see the traffic" +" of\n" +"an HTTP GET, while the peers in an inbound tunnel would see the payload \n" +"delivered along the tunnel. With bidirectional tunnels, all participants" +" would\n" +"have access to the fact that e.g. 1KB was sent in one direction, then " +"100KB\n" +"in the other. On the negative side, using unidirectional tunnels means " +"that\n" +"there are two sets of peers which need to be profiled and accounted for, " +"and\n" +"additional care must be taken to address the increased speed of " +"predecessor\n" +"attacks. The tunnel pooling and building process\n" +"(peer selection and ordering strategies)\n" +"should minimize the worries of the predecessor attack." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/unidirectional.html:73 +msgid "Anonymity" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/unidirectional.html:75 +#, python-format +msgid "" +"A recent paper by Hermann and Grothoff\n" +"declared that I2P's unidirectional tunnels \"seems to be a bad design " +"decision\"." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/unidirectional.html:80 +msgid "" +"The paper's main point is that\n" +"deanonymizations on unidirectional tunnels take a longer time, which is " +"an \n" +"advantage, but that an attacker can be more certain in the unidirectional" +" case. \n" +"Therefore, the paper claims it isn't an advantage at all, but a " +"disadvantage, at least\n" +"with long-living eepsites." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/unidirectional.html:88 +msgid "" +"This conclusion is not fully supported by the paper. Unidirectional " +"tunnels clearly \n" +"mitigate other attacks and it's not clear how to trade off the risk of " +"the \n" +"attack in the paper\n" +"with attacks on a bidirectional tunnel architecture." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/unidirectional.html:95 +msgid "" +"This conclusion is based on an arbitrary certainty vs. time weighting \n" +"(tradeoff) that may not be applicable in all cases. For \n" +"example, somebody could make a list of possible IPs then issue subpoenas " +"to \n" +"each. Or the attacker could DDoS each in turn and via a simple \n" +"intersection attack see if the eepsite goes down or is slowed down. So " +"close \n" +"may be good enough, or time may be more important." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/unidirectional.html:104 +msgid "" +"The conclusion is based on a specific weighting of the importance of " +"certainty \n" +"vs. time, and that weighting may be wrong, and it's definitely debatable," +" \n" +"especially in a real world with subpoenas, search warrants, and other " +"methods \n" +"available for final confirmation." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/unidirectional.html:111 +msgid "" +"A full analysis of the tradeoffs of unidirectional vs. bidirectional \n" +"tunnels is clearly outside the scope of the paper, and has not been done" +" \n" +"elsewhere. For example, how does this attack compare to the numerous " +"possible \n" +"timing attacks published about onion-routed networks? Clearly the authors" +" have not\n" +"done that analysis, if it's even possible to do it\n" +"effectively." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/unidirectional.html:120 +msgid "" +"Tor uses bidirectional tunnels and has had a lot of academic review. I2P" +" \n" +"uses unidirectional tunnels and has had very little review. Does the lack" +" of a \n" +"research paper defending unidirectional tunnels mean that it is a poor " +"design \n" +"choice, or just that it needs more study? Timing attacks and \n" +"distributed attacks are difficult to defend against in both I2P and Tor. " +"The \n" +"design intent (see references above) was that unidirectional tunnels are " +"more \n" +"resistant to timing attacks. However, the paper presents a somewhat " +"different type of timing \n" +"attack. Is this attack, innovative as it is, sufficient to label I2P's \n" +"tunnel architecture (and thus I2P as a whole) a \"bad design\", and by \n" +"implication clearly inferior to Tor, or is it just a design alternative " +"that \n" +"clearly needs further investigation and analysis? There are several other" +" reasons \n" +"to consider I2P currently inferior to Tor and other projects (small " +"network \n" +"size, lack of funding, lack of review) but is unidirectional tunnels " +"really a \n" +"reason?" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/unidirectional.html:137 +msgid "" +"In summary, \"bad design decision\" is apparently (since the paper does\n" +"not label bidirectional tunnels \"bad\") shorthand for \"unidirectional \n" +"tunnels are unequivocally inferior to bidirectional tunnels\", yet this \n" +"conclusion is not supported by the paper." +msgstr "" + diff --git a/i2p2www/translations/cs/LC_MESSAGES/docs.po b/i2p2www/translations/cs/LC_MESSAGES/docs.po new file mode 100644 index 00000000..58ad3b8b --- /dev/null +++ b/i2p2www/translations/cs/LC_MESSAGES/docs.po @@ -0,0 +1,16068 @@ +# Czech translations for I2P. +# Copyright (C) 2017 ORGANIZATION +# This file is distributed under the same license as the I2P project. +# +# Translators: +# A5h8d0wf0x , 2014 +msgid "" +msgstr "" +"Project-Id-Version: I2P\n" +"Report-Msgid-Bugs-To: http://trac.i2p2.de\n" +"POT-Creation-Date: 2017-09-08 12:54+0000\n" +"PO-Revision-Date: 2017-12-08 10:02+0000\n" +"Last-Translator: str4d \n" +"Language-Team: Czech (http://www.transifex.com/otf/I2P/language/cs/)\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 1.3\n" + +#: i2p2www/pages/site/docs/index.html:2 i2p2www/pages/site/docs/index.html:23 +msgid "Index to Technical Documentation" +msgstr "Obsah technické dokumentace" + +#: i2p2www/pages/site/docs/index.html:3 i2p2www/pages/site/docs/reseed.html:3 +#: i2p2www/pages/site/docs/how/elgamal-aes.html:3 +msgid "January 2016" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:6 +msgid "Following is an index to the technical documentation for I2P." +msgstr "" + +#: i2p2www/pages/site/docs/index.html:10 +msgid "" +"This index is ordered from the highest to lowest layers.\n" +"The higher layers are for \"clients\" or applications;\n" +"the lower layers are inside the router itself.\n" +"The interface between applications and the router is the I2CP (I2P " +"Control Protocol) API." +msgstr "" + +#: i2p2www/pages/site/docs/index.html:17 +#, python-format +msgid "" +"The I2P Project is committed to maintaining accurate, current " +"documentation.\n" +"If you find any inaccuracies in the documents linked below, please\n" +"enter a ticket identifying the problem." +msgstr "" + +#: i2p2www/pages/site/docs/index.html:25 i2p2www/pages/site/docs/naming.html:6 +#: i2p2www/pages/site/docs/api/bob.html:42 +#: i2p2www/pages/site/docs/api/i2ptunnel.html:7 +#: i2p2www/pages/site/docs/api/streaming.html:6 +#: i2p2www/pages/site/docs/applications/embedding.html:7 +#: i2p2www/pages/site/docs/applications/managed-clients.html:7 +#: i2p2www/pages/site/docs/how/elgamal-aes.html:6 +#: i2p2www/pages/site/docs/how/network-database.html:6 +#: i2p2www/pages/site/docs/how/peer-selection.html:6 +#: i2p2www/pages/site/docs/how/tech-intro.html:9 +#: i2p2www/pages/site/docs/how/tech-intro.html:93 +#: i2p2www/pages/site/docs/how/tunnel-routing.html:6 +#: i2p2www/pages/site/docs/tunnels/implementation.html:67 +#: i2p2www/pages/site/docs/tunnels/unidirectional.html:6 +msgid "Overview" +msgstr "Přehled" + +#: i2p2www/pages/site/docs/index.html:27 +msgid "Technical Introduction" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:28 +msgid "A Less-Technical Introduction" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:29 +msgid "Threat model and analysis" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:30 +msgid "Comparisons to other anonymous networks" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:31 +msgid "Specifications" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:32 +msgid "Protocol stack chart" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:33 +msgid "Papers on I2P" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:34 +msgid "Presentations, articles, tutorials, videos, and interviews" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:35 +#, python-format +msgid "" +"Invisible Internet Project (I2P) Project Overview" +" August 28, 2003 (pdf)" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:38 +msgid "Application-Layer Topics" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:41 i2p2www/pages/site/docs/naming.html:2 +msgid "Naming and Addressbook" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:42 +msgid "Plugins Overview" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:43 +msgid "Plugin Specification" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:44 +#: i2p2www/pages/site/docs/applications/managed-clients.html:2 +#: i2p2www/pages/site/docs/applications/managed-clients.html:20 +msgid "Managed Clients" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:45 i2p2www/pages/site/docs/index.html:223 +msgid "Embedding the router in your application" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:46 +#: i2p2www/pages/site/docs/applications/bittorrent.html:2 +msgid "Bittorrent over I2P" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:47 +msgid "I2PControl Plugin API" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:48 +msgid "hostsdb.blockfile Format" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:49 i2p2www/pages/site/docs/index.html:195 +msgid "Configuration File Format" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:52 +msgid "Application Layer API and Protocols" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:53 +msgid "" +"High-level, easy-to-use APIs for applications written in any language to " +"send and receive data." +msgstr "" + +#: i2p2www/pages/site/docs/index.html:55 +msgid "Application Development Overview and Guide" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:59 +#: i2p2www/pages/site/docs/api/i2ptunnel.html:51 +msgid "I2PTunnel Configuration" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:75 +msgid "SAM Protocol" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:77 +msgid "SAMv2 Protocol" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:79 +msgid "SAMv3 Protocol" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:81 +msgid "BOB Protocol" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:84 +msgid "End-to-End Transport API and Protocols" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:85 +msgid "" +"The end-to-end protocols used by clients for reliable and unreliable " +"communication." +msgstr "" + +#: i2p2www/pages/site/docs/index.html:87 +#: i2p2www/pages/site/docs/api/streaming.html:2 +msgid "Streaming Library" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:89 +msgid "Streaming Protocol Specification" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:91 +msgid "Streaming Javadoc" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:93 +#: i2p2www/pages/site/docs/api/datagrams.html:2 +msgid "Datagrams" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:95 +msgid "Datagram Javadoc" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:98 +msgid "Client-to-Router Interface API and Protocol" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:99 +msgid "" +"The lowest-level API used for clients (applications) to send and receive " +"traffic to a router.\n" +"Traditionally used only by Java applications and higher-level APIs." +msgstr "" + +#: i2p2www/pages/site/docs/index.html:104 +msgid "I2CP - I2P Control Protocol / API overview" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:106 +msgid "I2CP Specification" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:108 +msgid "I2CP API Javadoc" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:110 +#: i2p2www/pages/site/docs/index.html:140 +msgid "Common data structures specification" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:112 +#: i2p2www/pages/site/docs/index.html:142 +msgid "Data Structures Javadoc" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:115 +msgid "End-to-End Encryption" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:116 +msgid "How client messages are end-to-end encrypted by the router." +msgstr "" + +#: i2p2www/pages/site/docs/index.html:118 +msgid "ElGamal/AES+SessionTag encryption" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:119 +#: i2p2www/pages/site/docs/index.html:153 +msgid "ElGamal and AES cryptography details" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:122 +#: i2p2www/pages/site/docs/how/tech-intro.html:11 +#: i2p2www/pages/site/docs/how/tech-intro.html:325 +msgid "Network Database" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:123 +msgid "" +"Distributed storage and retrieval of information about routers and " +"clients." +msgstr "" + +#: i2p2www/pages/site/docs/index.html:125 +msgid "Network database overview, details, and threat analysis" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:126 +msgid "Cryptographic hashes" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:127 +msgid "Cryptographic signatures" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:128 +#: i2p2www/pages/site/docs/index.html:187 +msgid "Router reseed specification" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:131 +msgid "Router Message Protocol" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:132 +msgid "" +"I2P is a message-oriented router. The messages sent between routers are " +"defined by the I2NP protocol." +msgstr "" + +#: i2p2www/pages/site/docs/index.html:134 +msgid "I2NP - I2P Network Protocol Overview" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:136 +msgid "I2NP Specification" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:138 +msgid "I2NP Javadoc" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:145 +#: i2p2www/pages/site/docs/how/tech-intro.html:10 +#: i2p2www/pages/site/docs/how/tech-intro.html:224 +msgid "Tunnels" +msgstr "Tunely" + +#: i2p2www/pages/site/docs/index.html:146 +msgid "" +"Selecting peers, requesting tunnels through those peers, and encrypting " +"and routing messages through these tunnels." +msgstr "" + +#: i2p2www/pages/site/docs/index.html:148 +msgid "Peer profiling and selection" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:149 +msgid "Tunnel routing overview" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:150 +msgid "Garlic routing and \"garlic\" terminology" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:151 +msgid "Tunnel building and encryption" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:152 +msgid "ElGamal/AES" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:152 +msgid "for build request encryption" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:154 +msgid "Tunnel building specification" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:155 +msgid "Low-level tunnel message specification" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:156 +#: i2p2www/pages/site/docs/tunnels/unidirectional.html:2 +msgid "Unidirectional Tunnels" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:157 +#: i2p2www/pages/site/docs/how/peer-selection.html:299 +msgid "Peer Profiling and Selection in the I2P Anonymous Network" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:158 +msgid "2009 paper (pdf), not current but still generally accurate" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:161 +msgid "Transport Layer" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:162 +msgid "The protocols for direct (point-to-point) router to router communication." +msgstr "" + +#: i2p2www/pages/site/docs/index.html:164 +msgid "Transport layer overview" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:166 +msgid "TCP-based transport overview and specification" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:168 +msgid "UDP-based transport overview" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:170 +msgid "SSU specification" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:172 +msgid "NTCP transport encryption" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:174 +msgid "SSU transport encryption" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:176 +msgid "Transport Javadoc" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:178 +msgid "NTCP Javadoc" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:180 +msgid "SSU Javadoc" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:183 +msgid "Other Router Topics" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:185 +msgid "Router software updates" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:189 +msgid "Native BigInteger Library" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:191 +msgid "Time synchronization and NTP" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:193 +msgid "Performance" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:200 +msgid "Developer's Guides and Resources" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:202 +msgid "New Developer's Guide" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:204 +msgid "New Translator's Guide" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:206 +msgid "Monotone Guide" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:208 +msgid "Developer Guidelines" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:210 +msgid "Javadocs on the standard internet:" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:211 +#: i2p2www/pages/site/docs/index.html:215 +#: i2p2www/pages/site/docs/index.html:216 +#: i2p2www/pages/site/docs/index.html:217 +#, python-format +msgid "Server %(num)s" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:212 +#: i2p2www/pages/site/docs/index.html:221 +msgid "" +"Note: always verify that javadocs are current by checking the release " +"number." +msgstr "" + +#: i2p2www/pages/site/docs/index.html:214 +msgid "Javadocs inside I2P:" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:225 +msgid "How to Set up a Reseed Server" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:227 +msgid "Ports used by I2P" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:229 +msgid "Automatic updates to development builds inside I2P" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:231 +msgid "Updating the wrapper manually" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:233 +msgid "User forum" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:235 +msgid "Developer forum inside I2P" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:237 +msgid "Bug tracker" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:239 +msgid "Viewmtn inside I2P" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:241 +msgid "I2P Source exported to GitHub" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:243 +msgid "I2P Source Git Repo inside I2P" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:245 +msgid "Source translation at Transifex" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:247 +msgid "Roadmap" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:249 +msgid "To Do List" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:249 +msgid "not current" +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:3 +msgid "May 2016" +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:8 +msgid "" +"I2P ships with a generic naming library and a base implementation \n" +"designed to work off a local name to destination mapping, as well as an\n" +"add-on application called the addressbook. \n" +"I2P also supports Base32 hostnames similar to " +"Tor's .onion addresses." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:15 +msgid "" +"The addressbook is a web-of-trust\n" +"driven secure, distributed, and human readable naming system, sacrificing" +" only\n" +"the call for all human readable names to be globally unique by mandating " +"only\n" +"local uniqueness. While all messages in I2P are cryptographically " +"addressed\n" +"by their destination, different people can have local addressbook entries" +" for\n" +"\"Alice\" which refer to different destinations. People can still " +"discover new\n" +"names by importing published addressbooks of peers specified in their web" +" of trust,\n" +"by adding in the entries provided through a third party, or (if some " +"people organize\n" +"a series of published addressbooks using a first come first serve " +"registration\n" +"system) people can choose to treat these addressbooks as name servers, " +"emulating\n" +"traditional DNS." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:29 +#, python-format +msgid "" +"NOTE: For the reasoning behind the I2P naming system, common arguments " +"against it\n" +"and possible alternatives see the naming" +" discussion\n" +"page." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:36 +msgid "Naming System Components" +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:38 +msgid "" +"There is no central naming authority in I2P.\n" +"All hostnames are local." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:43 +msgid "" +"The naming system is quite simple and most of it is implemented\n" +"in applications external to the router, but bundled with\n" +"the I2P distribution.\n" +"The components are:" +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:51 +msgid "" +"The local naming service which does lookups\n" +"and also handles Base32 hostnames." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:55 +msgid "" +"The HTTP proxy which asks the router for " +"lookups and points\n" +"the user to remote jump services to assist with failed lookups." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:59 +msgid "" +"HTTP host-add forms which allow users to " +"add hosts to their local hosts.txt" +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:62 +msgid "" +"HTTP jump services which provide their own" +" lookups and redirection." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:65 +msgid "" +"The addressbook application which merges " +"external\n" +"host lists, retrieved via HTTP, with the local list." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:69 +msgid "" +"The SusiDNS application which is a simple web " +"front-end\n" +"for addressbook configuration and viewing of the local host lists." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:76 +msgid "Naming Services" +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:78 +#, python-format +msgid "" +"All destinations in I2P are 516-byte (or longer) keys.\n" +"(To be more precise, it is a 256-byte public key plus a 128-byte signing " +"key\n" +"plus a null certificate, which in Base64 representation is 516 bytes.\n" +"Certificates are not " +"used now,\n" +"if they are, the keys will be longer.\n" +"One possible use of certificates is for proof of work.)" +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:87 +msgid "" +"If an application (i2ptunnel or the HTTP proxy) wishes to access\n" +"a destination by name, the router does a very simple local lookup\n" +"to resolve that name." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:93 +msgid "Hosts.txt Naming Service" +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:95 +msgid "" +"The hosts.txt Naming Service does a simple linear search through\n" +"text files. This naming service was the default until\n" +"release 0.8.8 when it was replaced by the Blockfile Naming Service.\n" +"The hosts.txt format had become too slow after the file grew to thousands" +" of entries." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:102 +#, python-format +msgid "" +"It does a linear search through three local files, in order, to\n" +"look up host names and convert them to a 516-byte destination key.\n" +"Each file is in a simple configuration file" +" format, with hostname=base64, one per line.\n" +"The files are:" +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:114 +msgid "Blockfile Naming Service" +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:116 +msgid "" +"The Blockfile Naming Service stores multiple \"addressbooks\" in a single" +"\n" +"database file named hostsdb.blockfile.\n" +"This Naming Service is the default since release 0.8.8." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:122 +#, python-format +msgid "" +"A blockfile is simply on-disk storage of multiple sorted maps (key-value " +"pairs),\n" +"implemented as skiplists.\n" +"The blockfile format is specified on the Blockfile page.\n" +"It provides fast Destination lookup in a compact format. While the " +"blockfile overhead is substantial,\n" +"the destinations are stored in binary rather than in Base 64 as in the " +"hosts.txt format.\n" +"In addition, the blockfile provides the capability of arbitrary metadata " +"storage\n" +"(such as added date, source, and comments) for each entry to implement " +"advanced addressbook features.\n" +"The blockfile storage requirement is a modest increase over the hosts.txt" +" format, and the blockfile provides\n" +"approximately 10x reduction in lookup times." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:134 +msgid "" +"On creation, the naming service imports entries from the three files used" +" by the hosts.txt Naming Service.\n" +"The blockfile mimics the previous implementation by maintaining three " +"maps that\n" +"are searched in-order, named privatehosts.txt, userhosts.txt, and " +"hosts.txt.\n" +"It also maintains a reverse-lookup map to implement rapid reverse lookups." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:141 +msgid "Other Naming Service Facilities" +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:143 +#, python-format +msgid "" +"The lookup is case-insensitive.\n" +"The first match is used, and conflicts are not detected.\n" +"There is no enforcement of naming rules in lookups.\n" +"Lookups are cached for a few minutes.\n" +"Base 32 resolution is described below.\n" +"For a full description of the Naming Service API see the\n" +"Naming Service Javadocs.\n" +"This API was significantly expanded in release 0.8.7 to provide\n" +"adds and removes, storage of arbitrary properties with the hostname,\n" +"and other features." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:156 +msgid "Alternatives and Experimental Naming Services" +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:158 +#, python-format +msgid "" +"The naming service is specified with the configuration property " +"i2p.naming.impl=class.\n" +"Other implementations are possible. For example,\n" +"there is an experimental facility for real-time lookups (a la DNS) over " +"the network within the router.\n" +"For more information see the alternatives on the discussion" +" page." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:165 +msgid "" +"The HTTP proxy does a lookup via the router for all hostnames ending in " +"'.i2p'.\n" +"Otherwise, it forwards the request to a configured HTTP outproxy.\n" +"Thus, in practice, all HTTP (eepsite) hostnames must end in the pseudo-" +"Top Level Domain '.i2p'." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:171 +#, python-format +msgid "" +"We have applied to reserve the .i2p TLD\n" +"following the procedures specified in RFC " +"6761." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:177 +msgid "" +"If the router fails to resolve the hostname, the HTTP proxy returns\n" +"an error page to the user with links to several \"jump\" services.\n" +"See below for details." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:183 +msgid "Addressbook" +msgstr "Adresář" + +#: i2p2www/pages/site/docs/naming.html:184 +msgid "Incoming Subscriptions and Merging" +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:186 +msgid "" +"The addressbook application periodically\n" +"retrieves other users' hosts.txt files and merges\n" +"them with the local hosts.txt, after several checks.\n" +"Naming conflicts are resolved on a first-come first-served\n" +"basis." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:194 +msgid "" +"Subscribing to another user's hosts.txt file involves\n" +"giving them a certain amount of trust.\n" +"You do not want them, for example, 'hijacking' a new site\n" +"by quickly entering in their own key for a new site before\n" +"passing the new host/key entry to you." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:202 +msgid "" +"For this reason, the only subscription configured by\n" +"default is http://i2p-projekt.i2p/hosts.txt " +"(http://udhdrtrcetjm5sxzskjyr5ztpeszydbh4dpl3pl4utgqqw2v4jna.b32.i2p/hosts.txt)," +" \n" +"which contains a copy of the hosts.txt included\n" +"in the I2P release.\n" +"Users must configure additional subscriptions in their\n" +"local addressbook application (via subscriptions.txt or SusiDNS)." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:211 +msgid "Some other public addressbook subscription links:" +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:218 +msgid "" +"The operators of these services may have various policies for listing " +"hosts.\n" +"Presence on this list does not imply endorsement." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:223 +#: i2p2www/pages/site/docs/naming.html:235 +msgid "Naming Rules" +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:224 +msgid "" +"While there are hopefully not any technical limitations within I2P on " +"host names,\n" +"the addressbook enforces several restrictions on host names\n" +"imported from subscriptions.\n" +"It does this for basic typographical sanity and compatibility with " +"browsers,\n" +"and for security.\n" +"The rules are essentially the same as those in RFC2396 Section 3.2.2.\n" +"Any hostnames violating these rules may not be propagated\n" +"to other routers." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:239 +msgid "Names are converted to lower case on import." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:243 +msgid "" +"Names are checked for conflict with existing names in the existing " +"userhosts.txt and hosts.txt\n" +"(but not privatehosts.txt) after conversion to lower case." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:248 +msgid "Must contain only [a-z] [0-9] '.' and '-' after conversion to lower case." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:252 +msgid "Must not start with '.' or '-'." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:256 +msgid "Must end with '.i2p'." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:260 +msgid "67 characters maximum, including the '.i2p'." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:264 +msgid "Must not contain '..'." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:268 +msgid "Must not contain '.-' or '-.' (as of 0.6.1.33)." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:272 +msgid "Must not contain '--' except in 'xn--' for IDN." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:276 +msgid "" +"Base32 hostnames (*.b32.i2p) are reserved for base 32 use and so are not " +"allowed to be imported." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:280 +msgid "" +"Certain hostnames reserved for project use are not allowed\n" +"(proxy.i2p, router.i2p, console.i2p, *.proxy.i2p, *.router.i2p, " +"*.console.i2p, and others)" +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:285 +msgid "Keys are checked for base64 validity." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:289 +msgid "" +"Keys are checked for conflict with existing keys in hosts.txt (but not " +"privatehosts.txt)." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:293 +msgid "Minimum key length 516 bytes." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:297 +msgid "Maximum key length 616 bytes (to account for certs up to 100 bytes)." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:302 +msgid "" +"Any name received via subscription that passes all the checks is added " +"via the local naming service." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:306 +msgid "" +"Note that the '.' symbols in a host name are of no significance,\n" +"and do not denote any actual naming or trust hierarchy.\n" +"If the name 'host.i2p' already exists, there is nothing\n" +"to prevent anybody from adding a name 'a.host.i2p' to their hosts.txt,\n" +"and this name can be imported by others' addressbook.\n" +"Methods to deny subdomains to non-domain 'owners' (certificates?),\n" +"and the desirability and feasibility of these methods,\n" +"are topics for future discussion." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:317 +msgid "" +"International Domain Names (IDN) also work in i2p (using punycode 'xn--' " +"form).\n" +"To see IDN .i2p domain names rendered correctly in Firefox's location " +"bar,\n" +"add 'network.IDN.whitelist.i2p (boolean) = true' in about:config." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:323 +msgid "" +"As the addressbook application does not use privatehosts.txt at all, in " +"practice\n" +"this file is the only place where it is appropriate to place private " +"aliases or\n" +"\"pet names\" for sites already in hosts.txt." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:329 +msgid "Advanced Subscription Feed Format" +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:337 +msgid "Outgoing Subscriptions" +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:338 +msgid "" +"Addressbook will publish the merged hosts.txt to a location\n" +"(traditionally hosts.txt in the local eepsite's home directory) to be " +"accessed by others\n" +"for their subscriptions.\n" +"This step is optional and is disabled by default." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:346 +msgid "" +"The addressbook application, together with eepget, saves the Etag and/or " +"Last-Modified\n" +"information returned by the web server of the subscription.\n" +"This greatly reduces the bandwidth required, as the web server will\n" +"return a '304 Not Modified' on the next fetch if nothing has changed." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:353 +msgid "" +"However the entire hosts.txt is downloaded if it has changed.\n" +"See below for discussion on this issue." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:358 +msgid "" +"Hosts serving a static hosts.txt or an equivalent CGI application\n" +"are strongly encouraged to deliver\n" +"a Content-Length header, and either an Etag or Last-Modified header.\n" +"Also ensure that the server delivers a '304 Not Modified' when " +"appropriate.\n" +"This will dramatically reduce the network bandwidth, and\n" +"reduce chances of corruption." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:367 +msgid "Host Add Services" +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:368 +msgid "" +"A host add service is a simple CGI application that takes a hostname and " +"a Base64 key as parameters\n" +"and adds that to its local hosts.txt.\n" +"If other routers subscribe to that hosts.txt, the new hostname/key\n" +"will be propagated through the network." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:375 +msgid "" +"It is recommended that host add services impose, at a minimum, the " +"restrictions imposed by the addressbook application listed above.\n" +"Host add services may impose additional restrictions on hostnames and " +"keys, for example:" +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:380 +msgid "A limit on number of 'subdomains'." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:384 +msgid "Authorization for 'subdomains' through various methods." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:388 +msgid "Hashcash or signed certificates." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:392 +msgid "Editorial review of host names and/or content." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:396 +msgid "Categorization of hosts by content." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:400 +msgid "Reservation or rejection of certain host names." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:404 +msgid "Restrictions on the number of names registered in a given time period." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:408 +msgid "Delays between registration and publication." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:412 +msgid "Requirement that the host be up for verification." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:416 +msgid "Expiration and/or revocation." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:420 +msgid "IDN spoof rejection." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:425 +msgid "Jump Services" +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:426 +msgid "" +"A jump service is a simple CGI application that takes a hostname as a " +"parameter\n" +"and returns a 301 redirect to the proper URL with a " +"?i2paddresshelper=key\n" +"string appended.\n" +"The HTTP proxy will interpret the appended string and\n" +"use that key as the actual destination.\n" +"In addition, the proxy will cache that key so the\n" +"address helper is not necessary until restart." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:436 +msgid "" +"Note that, like with subscriptions, using a jump service\n" +"implies a certain amount of trust, as a jump service could maliciously\n" +"redirect a user to an incorrect destination." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:442 +msgid "" +"To provide the best service, a jump service should be subscribed to\n" +"several hosts.txt providers so that its local host list is current." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:448 +msgid "" +"SusiDNS is simply a web interface front-end to configuring addressbook " +"subscriptions\n" +"and accessing the four addressbook files.\n" +"All the real work is done by the 'addressbook' application." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:454 +msgid "" +"Currently, there is little enforcement of addressbook naming rules within" +" SusiDNS,\n" +"so a user may enter hostnames locally that would be rejected by\n" +"the addressbook subscription rules." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:460 +msgid "Base32 Names" +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:461 +msgid "" +"I2P supports Base32 hostnames similar to Tor's .onion addresses.\n" +"Base32 addresses are much shorter and easier to handle than the\n" +"full 516-character Base64 Destinations or addresshelpers.\n" +"Example: " +"ukeu3k5oycgaauneqgtnvselmt4yemvoilkln7jpvamvfx7dnkdq.b32.i2p" +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:468 +#, python-format +msgid "" +"In Tor, the address is 16 characters (80 bits), or half of the SHA-1 " +"hash.\n" +"I2P uses 52 characters (256 bits) to represent the full SHA-256 hash.\n" +"The form is {52 chars}.b32.i2p.\n" +"Tor has recently published a\n" +"proposal\n" +"to convert to an identical format of {52 chars}.onion for their hidden " +"services.\n" +"Base32 is implemented in the naming service, which queries the\n" +"router over I2CP to lookup the LeaseSet to get the full Destination.\n" +"Base32 lookups will only be successful when the Destination is up and " +"publishing\n" +"a LeaseSet.\n" +"Because resolution may require a network database lookup, it may take " +"significantly\n" +"longer than a local address book lookup." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:483 +msgid "" +"Base32 addresses can be used in most places where hostnames or full " +"destinations\n" +"are used, however there are some exceptions where they may fail if the\n" +"name does not immediately resolve. I2PTunnel will fail, for example, if\n" +"the name does not resolve to a destination." +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:2 +msgid "Plugins" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:3 +msgid "June 2012" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:6 +msgid "General Information" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:7 +msgid "" +"I2P includes a plugin architecture\n" +"to support easy development and installation of additional software." +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:12 +msgid "" +"There are now plugins available that support distributed email, blogs, " +"IRC\n" +"clients, distributed file storage, wikis, and more." +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:17 +msgid "Benefits to i2p users and app developers:" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:22 +msgid "Easy distribution of applications" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:26 +msgid "" +"Allows innovation and use of additional libraries without worrying about\n" +"increasing the size of i2pupdate.sud" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:31 +msgid "" +"Support large or special-purpose applications that would never be bundled" +"\n" +"with the I2P installation" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:36 +msgid "Cryptographically signed and verified applications" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:40 +msgid "Automatic updates of applications, just like for the router" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:44 +msgid "" +"Separate initial install and update packages, if desired, for smaller " +"update downloads" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:48 +msgid "" +"One-click installation of applications. No more asking users to modify\n" +"wrapper.config or clients.config" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:53 +msgid "Isolate applications from the base $I2P installation" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:57 +msgid "" +"Automatic compatibility checking for I2P version, Java version, Jetty\n" +"version, and previous installed application version" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:62 +msgid "Automatic link addition in console" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:66 +msgid "" +"Automatic startup of application, including modifying classpath, without " +"requiring a restart" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:70 +msgid "Automatic integration and startup of webapps into console Jetty instance" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:74 +#, python-format +msgid "" +"Facilitate creation of 'app stores' like the one at\n" +"%(pluginsite)s" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:79 +msgid "One-click uninstall" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:83 +msgid "Language and theme packs for the console" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:87 +msgid "Bring detailed application information to the router console" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:91 +msgid "Non-java applications also supported" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:97 +msgid "Required I2P version" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:98 +msgid "0.7.12 or newer." +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:100 +msgid "Installation" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:101 +msgid "" +"To install and start a plugin, copy the .xpi2p install link " +"to\n" +"the form at the bottom of\n" +"configclients.jsp" +" in\n" +"your router console and click the \"install plugin\" button. After a" +"\n" +"plugin is installed and started, a link to the plugin will usually appear" +" at\n" +"the top of your summary bar." +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:110 +msgid "" +"To update a plugin to the latest version, just click the update button on" +"\n" +"configclients.jsp." +"\n" +"There is also a button to check if the plugin has a more recent version, " +"as\n" +"well as a button to check for updates for all plugins. Plugins will be " +"checked\n" +"for updates automatically when updating to a new I2P release (not " +"including dev\n" +"builds)." +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:120 +msgid "Development" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:121 +#, python-format +msgid "" +"See the latest plugin specification and " +"the\n" +"plugin forum on %(zzz)s." +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:126 +#, python-format +msgid "" +"See also the sources for plugins developed by various people. Some " +"plugins, such\n" +"as snowman, were " +"developed\n" +"specifically as examples." +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:132 +msgid "" +"Developers wanted! Plugins are a great way to learn more about I2P" +"\n" +"or easily add some feature." +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:137 +msgid "Getting Started" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:138 +#, python-format +msgid "" +"To create a plugin from an existing binary package you will need to get\n" +"makeplugin.sh from the i2p.scripts branch in " +"monotone." +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:144 +msgid "Known Issues" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:145 +msgid "" +"Note that the router's plugin architecture does NOT currently\n" +"provide any additional security isolation or sandboxing of plugins." +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:151 +msgid "" +"Updates of a plugin with included jars (not wars) won't be recognized if\n" +"the plugin was already run, as it requires class loader trickery to flush" +" the\n" +"class cache; a full router restart is required." +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:157 +msgid "The stop button may be displayed even if there is nothing to stop." +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:161 +msgid "" +"Plugins running in a separate JVM create a logs/ directory " +"in\n" +"$CWD." +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:166 +msgid "" +"No initial keys are present, except for those of jrandom and zzz (using " +"the\n" +"same keys as for router update), so the first key seen for a signer is\n" +"automatically accepted—there is no signing key authority." +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:172 +msgid "" +"When deleting a plugin, the directory is not always deleted, especially " +"on\n" +"Windows." +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:177 +msgid "" +"Installing a plugin requiring Java 1.6 on a Java 1.5 machine will result " +"in a\n" +"\"plugin is corrupt\" message if pack200 compression of the plugin file " +"is used." +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:182 +msgid "Theme and translation plugins are untested." +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:186 +msgid "Disabling autostart doesn't always work." +msgstr "" + +#: i2p2www/pages/site/docs/ports.html:2 +msgid "Ports Used by I2P" +msgstr "" + +#: i2p2www/pages/site/docs/ports.html:3 +msgid "December 2015" +msgstr "" + +#: i2p2www/pages/site/docs/ports.html:7 +msgid "" +"These are the ports used or reserved by I2P, including those for known " +"plugins,\n" +"common alternates,\n" +"and some typical related applications." +msgstr "" + +#: i2p2www/pages/site/docs/ports.html:13 +#, python-format +msgid "" +"Note that many of these are not enabled by default.\n" +"There is more information in the FAQ.\n" +"See also the documentation for individual plugins.\n" +"Plugin authors please add any ports you use here.\n" +"For new plugins, we recommend using the next available port\n" +"in the 766x range." +msgstr "" + +#: i2p2www/pages/site/docs/ports.html:53 +msgid "recommended spot for new plugins/applications" +msgstr "" + +#: i2p2www/pages/site/docs/reseed.html:2 +msgid "Reseed Hosts" +msgstr "" + +#: i2p2www/pages/site/docs/reseed.html:8 +msgid "About Reseed hosts" +msgstr "" + +#: i2p2www/pages/site/docs/reseed.html:10 +msgid "" +"Reseed hosts are needed to for bootstrapping, that is, providing the " +"initial set of I2P nodes for your I2P node to talk to. Depending on the " +"status of your node it may need to bootstrap every now and then if many " +"of the nodes it knows of aren't contactable." +msgstr "" + +#: i2p2www/pages/site/docs/reseed.html:14 +msgid "" +"Reseeding is done over an encrypted connection and all of the bootstrap " +"information is signed by the reseed host you connect to, making it " +"impossible for an unauthenticated source to provide you with false " +"information." +msgstr "" + +#: i2p2www/pages/site/docs/reseed.html:19 +msgid "Running a Reseed host" +msgstr "" + +#: i2p2www/pages/site/docs/reseed.html:21 +msgid "" +"The more reseed hosts that are run, the more resilient the I2P network " +"becomes, and the harder it is to prevent users of I2P from connecting to " +"the network." +msgstr "" + +#: i2p2www/pages/site/docs/reseed.html:25 +msgid "" +"There have also been cases where the reseed hosts we had, have been under" +" heavy load due to botnet activities." +msgstr "" + +#: i2p2www/pages/site/docs/reseed.html:33 +msgid "Thank you" +msgstr "" + +#: i2p2www/pages/site/docs/reseed.html:35 +msgid "" +"If you are running a reseed server, We would like to thank you for " +"helping to\n" +"make the I2P network stronger and more resilient than ever." +msgstr "" + +#: i2p2www/pages/site/docs/reseed.html:41 +msgid "Thank you." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:2 +msgid "BOB - Basic Open Bridge" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:3 +msgid "August 2016" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:12 +msgid "Technical differences from SAM (for the better?)" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:14 +msgid "" +"BOB has separate command and data channels. \n" +"One, an application command channel socket to router to configure.\n" +"Two, the application data sockets to/from router that carry only data.\n" +"The command channel is only needed for making or setting the initial\n" +"destination key, and to set the destination key to port bindings. \n" +"All connections run in parallel." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:23 +msgid "" +"SAM has one connection that does everything, and you need to parse every " +"packet." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:27 +msgid "" +"BOB does not hold keypair values, nor does the router.\n" +"Your application holds the keypair values. \n" +"This is to reduce any extra complexity in the router code, it also adds " +"to\n" +"your privacy." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:34 +msgid "SAM router stores every keypair you ever make." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:38 +msgid "Those are the important differences." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:44 +msgid "KEYS = keypair public+private, these are BASE64" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:47 +msgid "KEY = public key, also BASE64" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:50 +msgid "" +"ERROR as is implied returns the message \"ERROR " +"\"+DESCRIPTION+\"\\n\", where the DESCRIPTION is what" +" went wrong." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:53 +msgid "" +"OK returns \"OK\", and if data is to be " +"returned, it is on the same line. OK means the command is " +"finished." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:56 +msgid "" +"DATA lines contain information that you requested. There may" +" be multiple DATA lines per request." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:60 +msgid "" +"NOTE: The help command is the ONLY command that has an exception " +"to\n" +"the rules... it can actually return nothing! This is intentional, since\n" +"help is a HUMAN and not an APPLICATION command." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:66 +msgid "Connection and Version" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:68 +msgid "" +"All BOB status output is by lines. Lines may be \\n or \\r\\n terminated," +" depending on the system.\n" +"On connection, BOB outputs two lines:" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:78 +msgid "The current version is:" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:82 +msgid "" +"Note that previous versions used upper-case hex digits and did not " +"conform to I2P versioning standards.\n" +"It is recommended that subsequent versions use digits 0-9 only." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:87 +msgid "Version history" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:92 +msgid "Version" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:93 +msgid "I2P Router Version" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:94 +msgid "Changes" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:97 +msgid "current version" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:100 +msgid "development versions" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:104 +msgid "Commands" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:106 +msgid "" +"PLEASE NOTE:\n" +"For CURRENT details on the commands PLEASE use the built-in help command." +" \n" +"Just telnet to localhost 2827 and type help and you can get full " +"documentation on each command." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:112 +msgid "" +"Commands never get obsoleted or changed, however new commands do get " +"added from time to time." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:117 +msgid "COMMAND" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:117 +msgid "OPERAND" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:117 +msgid "RETURNS" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:145 +msgid "" +"Once set up, all TCP sockets can and will block as needed, and there is " +"no need for any \n" +"additional messages to/from the command channel. This allows the router " +"to pace the\n" +"stream without exploding with OOM like SAM does as it chokes on " +"attempting to shove \n" +"many streams in or out one socket -- that can't scale when you have alot " +"of connections!" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:152 +msgid "" +"What is also nice about this particular interface is that writing " +"anything to interface \n" +"to it, is much much easier than SAM. There is no other processing to do " +"after the set up.\n" +"It's configuration is so simple, that very simple tools, such as nc " +"(netcat) can be used \n" +"to point to some application. The value there is that one could schedule " +"up and down times \n" +"for an application, and not have to change the application to do that, or" +" to even have \n" +"to stop that application. Instead, you can literally \"unplug\" the " +"destination, and \n" +"\"plug it in\" again. As long as the same IP/port addresses and " +"destination keys are used \n" +"when bringing the bridge up, the normal TCP application won't care, and " +"won't notice.\n" +"It will simply be fooled -- the destinations are not reachable, and that " +"nothing is coming in." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:164 +msgid "Examples" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:166 +msgid "" +"For the following example, we'll setup a very simple local loopback " +"connection, \n" +"with two destinations. Destination \"mouth\" will be the CHARGEN service " +"from \n" +"the INET superserver daemon. Destination \"ear\" will be a local port " +"that you\n" +"can telnet into, and watch the pretty ASCII test puke forth." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:174 +msgid "EXAMPLE SESSION DIALOGUE -- simple telnet 127.0.0.1 2827 works" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:175 +msgid "Application" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:176 +msgid "BOB's Command response." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:178 +#: i2p2www/pages/site/docs/api/bob.html:192 +#: i2p2www/pages/site/docs/api/bob.html:212 +#: i2p2www/pages/site/docs/api/bob.html:322 +#: i2p2www/pages/site/docs/api/bob.html:334 +#: i2p2www/pages/site/docs/api/bob.html:349 +msgid "FROM" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:178 +#: i2p2www/pages/site/docs/api/bob.html:192 +#: i2p2www/pages/site/docs/api/bob.html:212 +#: i2p2www/pages/site/docs/api/bob.html:322 +#: i2p2www/pages/site/docs/api/bob.html:334 +#: i2p2www/pages/site/docs/api/bob.html:349 +msgid "TO" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:178 +#: i2p2www/pages/site/docs/api/bob.html:192 +#: i2p2www/pages/site/docs/api/bob.html:212 +#: i2p2www/pages/site/docs/api/bob.html:322 +#: i2p2www/pages/site/docs/api/bob.html:334 +#: i2p2www/pages/site/docs/api/bob.html:349 +msgid "DIALOGUE" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:187 +msgid "MAKE NOTE OF THE ABOVE DESTINATION KEY, YOURS WILL BE DIFFERENT!" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:201 +msgid "" +"At this point, there was no error, a destination with a nickname of " +"\"mouth\" \n" +"is set up. When you contact the destination provided, you actually " +"connect \n" +"to the CHARGEN service on 19/TCP." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:207 +msgid "Now for the other half, so that we can actually contact this destination." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:229 +msgid "" +"Now all we need to do is telnet into 127.0.0.1, port 37337,\n" +"send the destination key or host address from addressbook we want to " +"contact.\n" +"In this case, we want to contact \"mouth\", all we do is paste in the\n" +"key and it goes." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:236 +msgid "" +"NOTE: The \"quit\" command in the command channel does NOT " +"disconnect the tunnels like SAM." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:253 +msgid "After a few virtual miles of this spew, press Control-]" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:265 +msgid "Here is what happened..." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:273 +msgid "You can connect to EEPSITES too!" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:306 +msgid "" +"Pretty cool isn't it? Try some other well known EEPSITES if you like, " +"nonexistent ones, \n" +"etc, to get a feel for what kind of output to expect in different " +"situations. \n" +"For the most part, it is suggested that you ignore any of the error " +"messages. \n" +"They would be meaningless to the application, and are only presented for " +"human debugging." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:313 +msgid "Let's put down our destinations now that we are all done with them." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:317 +msgid "First, lets see what destination nicknames we have." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:329 +msgid "Alright, there they are. First, let's remove \"mouth\"." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:343 +msgid "" +"Now to remove \"ear\", note that this is what happens when you type too " +"fast,\n" +"and shows you what typical ERROR messages looks like." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:362 +msgid "" +"I won't bother to show an example of the receiver end of a bridge\n" +"because it is very simple. There are two possible settings for it, and\n" +"it is toggled with the \"quiet\" command." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:368 +msgid "" +"The default is NOT quiet, and the first data to come into your\n" +"listening socket is the destination that is making the contact. It is a\n" +"single line consisting of the BASE64 address followed by a newline.\n" +"Everything after that is for the application to actually consume." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:375 +msgid "" +"In quiet mode, think of it as a regular Internet connection. No\n" +"extra data comes in at all. It's just as if you are plain connected to\n" +"the regular Internet. This mode allows a form of transparency much like\n" +"is available on the router console tunnel settings pages, so that you\n" +"can use BOB to point a destination at a web server, for example, and\n" +"you would not have to modify the web server at all." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:384 +msgid "" +"The advantage with using BOB for this is as discussed\n" +"previously. You could schedule random uptimes for the application,\n" +"redirect to a different machine, etc. One use of this may be something\n" +"like wanting to try to goof up router-to-destination upness guessing.\n" +"You could stop and start the destination with a totally different\n" +"process to make random up and down times on services. That way you\n" +"would only be stopping the ability to contact such a service, and not\n" +"have to bother shutting it down and restarting it. You could redirect\n" +"and point to a different machine on your LAN while you do updates, or\n" +"point to a set of backup machines depending on what is running, etc,\n" +"etc. Only your imagination limits what you could do with BOB." +msgstr "" + +#: i2p2www/pages/site/docs/api/datagrams.html:3 +#: i2p2www/pages/site/docs/protocol/index.html:3 +msgid "August 2010" +msgstr "" + +#: i2p2www/pages/site/docs/api/datagrams.html:6 +msgid "Datagram Overview" +msgstr "" + +#: i2p2www/pages/site/docs/api/datagrams.html:7 +#, python-format +msgid "" +"Datagrams build upon the base I2CP to provide " +"authenticated\n" +"and repliable messages in a standard format. This lets applications " +"reliably read\n" +"the \"from\" address out of a datagram and know that the address really " +"sent the\n" +"message. This is necessary for some applications since the base I2P " +"message is\n" +"completely raw - it has no \"from\" address (unlike IP packets). In " +"addition, the\n" +"message and sender are authenticated by signing the payload." +msgstr "" + +#: i2p2www/pages/site/docs/api/datagrams.html:16 +#, python-format +msgid "" +"Datagrams, like streaming library packets,\n" +"are an application-level construct.\n" +"These protocols are independent of the low-level transports;\n" +"the protocols are converted to I2NP messages by the router, and\n" +"either protocol may be carried by either transport." +msgstr "" + +#: i2p2www/pages/site/docs/api/datagrams.html:25 +msgid "Application Guide" +msgstr "" + +#: i2p2www/pages/site/docs/api/datagrams.html:26 +#, python-format +msgid "" +"Applications written in Java may use the \n" +"datagram API,\n" +"while applications in other languages \n" +"can use SAM's datagram support.\n" +"There is also limited support in i2ptunnel in the SOCKS proxy,\n" +"the 'streamr' tunnel types, and udpTunnel classes." +msgstr "" + +#: i2p2www/pages/site/docs/api/datagrams.html:37 +msgid "Datagram Length" +msgstr "" + +#: i2p2www/pages/site/docs/api/datagrams.html:38 +msgid "" +"The application designer should carefully consider the tradeoff of " +"repliable vs. non-repliable\n" +"datagrams. Also, the datagram size will affect reliability, due to tunnel" +" fragmentation into 1KB\n" +"tunnel messages. The more message fragments, the more likely that one of " +"them will be dropped\n" +"by an intermediate hop. Messages larger than a few KB are not " +"recommended.\n" +"Over about 10 KB, the delivery probablility drops dramatically.\n" +"Messages over 16 KB cannot be delivered over NTCP, dropping delivery " +"chances even more." +msgstr "" + +#: i2p2www/pages/site/docs/api/datagrams.html:47 +#, python-format +msgid "" +"Also note that the various overheads added by lower layers, in particular" +" asymmetric\n" +"ElGamal/AES, place a large burden on " +"intermittent messages\n" +"such as used by a Kademlia-over-UDP application. The implementations are " +"currently tuned\n" +"for frequent traffic using the streaming library. There are a high number" +"\n" +"of session tags delivered, and a short session tag lifetime, for example." +"\n" +"There are currently no configuration parameters available within I2CP to " +"tune\n" +"the ElGamal Session Tag parameters." +msgstr "" + +#: i2p2www/pages/site/docs/api/datagrams.html:57 +msgid "I2CP Protocol Number and Ports" +msgstr "" + +#: i2p2www/pages/site/docs/api/datagrams.html:58 +msgid "" +"The standard I2CP protocol number for datagrams is PROTO_DATAGRAM (17).\n" +"Applications may or may not choose to set the\n" +"protocol in the I2CP header. It is not set by default.\n" +"It must be set to demultiplex datagram and streaming traffic received on " +"the same Destination." +msgstr "" + +#: i2p2www/pages/site/docs/api/datagrams.html:65 +#, python-format +msgid "" +"As datagrams are not connection-oriented, the application may require\n" +"port numbers to correlate datagrams with particular peers or " +"communications sessions,\n" +"as is traditional with UDP over IP.\n" +"Applications may add 'from' and 'to' ports to the I2CP (gzip) header as " +"described in\n" +"the I2CP page." +msgstr "" + +#: i2p2www/pages/site/docs/api/datagrams.html:73 +#, python-format +msgid "" +"There is no method within the datagram API to specify whether it is non-" +"repliable (raw)\n" +"or repliable. The application should be designed to expect the " +"appropriate type.\n" +"The I2CP protocol number or port should be used by the application to\n" +"indicate datagram type.\n" +"The I2CP protocol numbers PROTO_DATAGRAM (signed) and PROTO_DATAGRAM_RAW " +"are defined in the\n" +"I2PSession API\n" +"for this purpose. A common design pattern in client/server datagram " +"applications is to\n" +"use signed datagrams for a request which includes a nonce, and use a raw " +"datagram\n" +"for the reply, returning the nonce from the request." +msgstr "" + +#: i2p2www/pages/site/docs/api/datagrams.html:85 +#, python-format +msgid "" +"The protocols and ports may be set in I2CP's\n" +"I2PSession API,\n" +"as implemented in\n" +"I2PSessionMuxedImpl." +msgstr "" + +#: i2p2www/pages/site/docs/api/datagrams.html:93 +#: i2p2www/pages/site/docs/api/streaming.html:404 +msgid "Data Integrity" +msgstr "" + +#: i2p2www/pages/site/docs/api/datagrams.html:94 +#, python-format +msgid "" +"Data integrity is assured by the gzip CRC-32 checksum implemented in\n" +"the I2CP layer.\n" +"There is no checksum field in the datagram protocol." +msgstr "" + +#: i2p2www/pages/site/docs/api/datagrams.html:100 +#: i2p2www/pages/site/docs/api/streaming.html:412 +msgid "Packet Encapsulation" +msgstr "" + +#: i2p2www/pages/site/docs/api/datagrams.html:101 +#, python-format +msgid "" +"Each datagram is sent through I2P as a single message (or as an " +"individual clove in a\n" +"Garlic Message).\n" +"Message encapsulation is implemented in the underlying\n" +"I2CP,\n" +"I2NP, and\n" +"tunnel message layers.\n" +"There is no packet delimiter mechanism or length field in the datagram " +"protocol." +msgstr "" + +#: i2p2www/pages/site/docs/api/datagrams.html:114 +#: i2p2www/pages/site/docs/transport/ssu.html:644 +msgid "Specification" +msgstr "" + +#: i2p2www/pages/site/docs/api/datagrams.html:116 +msgid "See the Datagrams Specification page." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:2 +msgid "I2PControl - Remote Control Service" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:4 +#, python-format +msgid "" +"I2P enables a JSONRPC2 interface via the plugin I2PControl.\n" +"The aim of the interface is to provide simple way to interface with a " +"running I2P node. A client, itoopie, has been developed in parallel.\n" +"The JSONRPC2 implementation for the client as well as the plugin is " +"provided by the java libraries JSON-RPC 2.0. \n" +"A list of implementations of JSON-RPC for various languages can be found " +"at the JSON-RPC " +"wiki." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:11 +msgid "I2PControl is by default listening on https://localhost:7650" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:13 +msgid "API, version 1." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:14 +msgid "Parameters are only provided in a named way (maps)." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:18 +msgid "JSON-RPC 2 format" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:19 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:44 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:57 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:67 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:76 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:86 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:101 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:154 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:175 +msgid "Request:" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:32 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:49 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:61 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:71 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:81 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:92 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:118 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:164 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:190 +msgid "Response:" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:43 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:45 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:46 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:50 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:51 +#: i2p2www/pages/site/docs/protocol/i2cp.html:108 +#: i2p2www/pages/site/docs/protocol/i2cp.html:483 +msgid "Description" +msgstr "Popis" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:47 +msgid "" +"Token used for authenticating every request (excluding the 'Authenticate'" +" RPC method)" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:55 +msgid "Implemented methods" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:56 +msgid "" +"Creates and returns an authentication token used for further " +"communication." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:58 +msgid "The version of the I2PControl API used by the client." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:59 +msgid "The password used for authenticating against the remote server." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:62 +msgid "The primary I2PControl API version implemented by the server." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:63 +msgid "The token used for further communication." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:66 +msgid "Echoes the value of the echo key, used for debugging and testing." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:68 +msgid "Value will be returned in response." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:69 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:79 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:90 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:116 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:162 +msgid "" +"Token used for authenticating the client. Is provided by the server via " +"the 'Authenticate' RPC method." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:72 +msgid "Value of the key 'echo' in the request." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:75 +msgid "" +"Fetches rateStat from router statManager. Creates stat if not already " +"created." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:77 +#, python-format +msgid "" +"Determines which rateStat to fetch, see ratestats." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:78 +msgid "Determines which period a stat is fetched for. Measured in ms." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:82 +msgid "Returns the average value for the reuested rateStat and period." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:85 +msgid "Manages I2PControl. Ports, passwords and the like." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:87 +msgid "" +"Sets a new listen address for I2PControl (only 127.0.0.1 and 0.0.0.0 are " +"implemented in I2PControl currently)." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:88 +msgid "" +"Sets a new password for I2PControl, all Authentication tokens will be " +"revoked." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:89 +msgid "Switches which port I2PControl will listen for connections on." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:93 +msgid "Returned if address was changed" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:94 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:95 +msgid "Returned if setting was changed" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:96 +msgid "Returns true if any changes were made." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:97 +msgid "Returns true if any changes requiring a restart to take effect were made." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:100 +msgid "Fetches basic information about the I2P router. Uptime, version etc." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:119 +msgid "What the status of the router is." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:120 +msgid "What the uptime of the router is in ms." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:121 +msgid "What version of I2P the router is running." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:122 +msgid "The 1 second average inbound bandwidth in Bps." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:123 +msgid "The 15 second average inbound bandwidth in Bps." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:124 +msgid "The 1 second average outbound bandwidth in Bps." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:125 +msgid "The 15 second average outbound bandwidth in Bps." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:126 +msgid "What the current network status is. According to the below enum:" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:145 +msgid "How many tunnels on the I2P net are we participating in." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:146 +msgid "How many peers have we communicated with recently." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:147 +msgid "How many peers are considered 'fast'." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:148 +msgid "How many peers are considered 'high capacity'." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:149 +msgid "Is the router reseeding hosts to its NetDB?" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:150 +msgid "How many peers are known to us (listed in our NetDB)." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:153 +msgid "Manages I2P router restart/shutdown." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:155 +msgid "Blocking. Initiates a search for signed updates." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:156 +msgid "" +"Initiates a router reseed, fetching peers into our NetDB from a remote " +"host." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:157 +msgid "Restarts the router." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:158 +msgid "" +"Restarts the router gracefully (waits for participating tunnels to " +"expire)." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:159 +msgid "Shuts down the router." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:160 +msgid "" +"Shuts down the router gracefully (waits for participating tunnels to " +"expire)." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:161 +msgid "Initiates a router update from signed sources." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:165 +msgid "Blocking. Returns true iff a signed update has been found." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:166 +msgid "If requested, verifies that a reseed has been initiated." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:167 +msgid "If requested, verifies that a restart has been initiated." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:168 +msgid "If requested, verifies that a graceful restart has been initiated." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:169 +msgid "If requested, verifies that a shutdown has been initiated" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:170 +msgid "If requested, verifies that a graceful shutdown has been initiated" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:171 +msgid "Blocking. If requested, returns the status of the the update" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:174 +msgid "Fetches or sets various network related settings. Ports, addresses etc." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:176 +msgid "" +"What port is used for the TCP transport. If null is submitted, current " +"setting will be returned." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:177 +msgid "" +"What hostname is used for the TCP transport. If null is submitted, " +"current setting will be returned." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:178 +msgid "" +"Use automatically detected ip for TCP transport. If null is submitted, " +"current setting will be returned." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:179 +msgid "" +"What port is used for the UDP transport. If null is submitted, current " +"setting will be returned." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:180 +msgid "" +"What hostname is used for the UDP transport. If null is submitted, " +"current setting will be returned." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:181 +msgid "" +"Which methods should be used for detecting the ip address of the UDP " +"transport. If null is submitted, current setting will be returned." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:182 +msgid "What ip has been detected by the UDP transport." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:183 +msgid "Is UPnP enabled. If null is submitted, current setting will be returned." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:184 +msgid "" +"How many percent of bandwidth is usable for participating tunnels. If " +"null is submitted, current setting will be returned." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:185 +msgid "" +"How many KB/s of inbound bandwidth is allowed. If null is submitted, " +"current setting will be returned." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:186 +msgid "" +"How many KB/s of outbound bandwidth is allowed. If null is submitted, " +"current setting will be returned." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:187 +msgid "" +"Is laptop mode enabled (change router identity and UDP port when IP " +"changes ). If null is submitted, current setting will be returned." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:188 +msgid "" +"Token used for authenticating the client. Is provided by the server via " +"the 'Authenticate' RPC method. If null is submitted, current setting will" +" be returned." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:191 +msgid "If requested, returns the port used for the TCP transport." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:192 +msgid "If requested, returns the hostname used for the TCP transport." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:193 +msgid "" +"If requested, returns the method used for automatically detecting ip for " +"the TCP transport." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:194 +msgid "If requested, returns the port used for the UDP transport." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:195 +msgid "If requested, returns the hostname used for the UDP transport." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:196 +msgid "" +"If requested, returns methods used for detecting the ip address of the " +"UDP transport." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:197 +msgid "If requested, returns what ip has been detected by the UDP transport." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:198 +msgid "If requested, returns the UPNP setting." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:199 +msgid "" +"If requested, returns how many percent of bandwidth is usable for " +"participating tunnels." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:200 +msgid "If requested, returns how many KB/s of inbound bandwidth is allowed." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:201 +msgid "If requested, returns how many KB/s of outbound bandwidth is allowed." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:202 +msgid "If requested, returns the laptop mode." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:203 +msgid "Have the provided settings been saved." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:204 +msgid "Is a restart needed for the new settings to be used." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:207 +msgid "Allows for manipulation of advanced i2p settings" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:208 +msgid "Set:" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:208 +msgid "Set the sent key-value pairs" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:211 +msgid "SetAll:" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:211 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:214 +msgid "Set the sent key-value pairs, remove everything else" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:214 +msgid "Get:" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:217 +msgid "GetAall:" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:220 +msgid "denotes an optional value." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:221 +msgid "denotes a possibly occuring return value" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:223 +msgid "Error codes" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:224 +msgid "Standard JSON-RPC2 error codes." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:225 +msgid "JSON parse error." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:226 +msgid "Invalid request." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:227 +msgid "Method not found." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:228 +msgid "Invalid parameters." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:229 +msgid "Internal error." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:231 +msgid "I2PControl specific error codes." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:232 +msgid "Invalid password provided." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:233 +msgid "No authentication token presented." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:234 +msgid "Authentication token doesn't exist." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:235 +msgid "The provided authentication token was expired and will be removed." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:236 +msgid "" +"The version of the I2PControl API used wasn't specified, but is required " +"to be specified." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:237 +msgid "" +"The version of the I2PControl API specified is not supported by " +"I2PControl." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:8 +#, python-format +msgid "" +"I2PTunnel is a tool for interfacing with and providing services on I2P.\n" +"Destination of an I2PTunnel can be defined using a hostname,\n" +"Base32, or a full 516-byte destination " +"key.\n" +"An established I2PTunnel will be available on your client machine as " +"localhost:port.\n" +"If you wish to provide a service on I2P network, you simply create " +"I2PTunnel to the\n" +"appropriate ip_address:port. A corresponding 516-byte destination key " +"will be generated\n" +"for the service and it will become avaliable throughout I2P.\n" +"A web interface for I2PTunnel management is avaliable on\n" +"localhost:7657/i2ptunnel/." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:20 +msgid "Default Services" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:21 +msgid "Server tunnels" +msgstr "Tunely serveru" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:23 +msgid "" +"I2P Webserver - A tunnel pointed to a Jetty webserver run\n" +"on localhost:7658 for convenient " +"and quick hosting on I2P.\n" +"
The document root is:" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:31 +msgid "Client tunnels" +msgstr "Tunely klienta" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:33 +msgid "" +"A HTTP proxy used for browsing I2P and the regular internet anonymously " +"through I2P. \n" +"Browsing internet through I2P uses a random proxy specified by the " +"\"Outproxies:\" option." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:37 +msgid "An IRC tunnel to the default anonymous IRC network, Irc2P." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:38 +#, python-format +msgid "" +"The anonymous monotone\n" +"sourcecode repository for I2P" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:42 +#, python-format +msgid "" +"A SMTP service provided by postman at %(postman)s" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:45 +#, python-format +msgid "" +"The accompanying POP sevice of postman at %(postman)s" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:50 +msgid "Configuration" +msgstr "Konfigurace" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:54 +msgid "Client Modes" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:55 +#: i2p2www/pages/site/docs/api/i2ptunnel.html:165 +msgid "Standard" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:56 +msgid "" +"Opens a local TCP port that connects to a service (like HTTP, FTP or " +"SMTP) on a destination inside of I2P.\n" +"The tunnel is directed to a random host from the comma seperated (\", \")" +" list of destinations." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:62 +msgid "" +"A HTTP-client tunnel. The tunnel connects to the destination specified by" +" the URL\n" +"in a HTTP request. Supports proxying onto internet if an outproxy is " +"provided. Strips HTTP connections of the following headers:" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:67 +msgid "" +"Accept, Accept-Charset, Accept-Language\n" +" and Accept-Ranges as they vary greatly between browsers and can be " +"used as an identifier." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:90 +msgid "" +"Depending on if the tunnel is using an outproxy or not it will append the" +" following User-Agent:" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:94 +msgid "Outproxy:" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:95 +msgid "Internal I2P use:" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:100 +msgid "" +"Creates a connection to a random IRC server specified by the comma " +"seprated (\", \") \n" +"list of destinations. Only a whitelisted subset of IRC commands are " +"allowed due to anonymity concerns." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:105 +msgid "Whitelist:" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:139 +msgid "Enables using the I2P router as a SOCKS proxy." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:144 +msgid "" +"Enables using the I2P router as a SOCKS proxy with the command whitelist " +"specified by\n" +"IRC client mode." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:150 +msgid "" +"Creates a HTTP tunnel and uses the HTTP request method \"CONNECT\" \n" +"to build a TCP tunnel that usually is used for SSL and HTTPS." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:156 +msgid "" +"Creates a UDP-server attached to a Streamr client I2PTunnel. The streamr " +"client tunnel will \n" +"subscribe to a streamr server tunnel." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:164 +msgid "Server Modes" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:166 +msgid "Creates a destination to a local ip:port with an open TCP port." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:171 +msgid "" +"Creates a destination to a local HTTP server ip:port. Supports gzip for " +"requests with \n" +"Accept-encoding: x-i2p-gzip, replies with Content-encoding: x-i2p-gzip in" +" such a request." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:177 +msgid "" +"Functions as both a I2PTunnel HTTP Server, and a I2PTunnel HTTP client " +"with no outproxying\n" +"capabilities. An example application would be a web application that does" +" client-type\n" +"requests, or loopback-testing an eepsite as a diagnostic tool." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:184 +msgid "" +"Creates a destination that filters the reqistration sequence of a client " +"and passes \n" +"the clients destination key as a hostname to the IRC-server." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:190 +msgid "" +"A UDP-client that connects to a media server is created. The UDP-Client " +"is coupled with a Streamr server I2PTunnel." +msgstr "" + +#: i2p2www/pages/site/docs/api/ministreaming.html:2 +#: i2p2www/pages/site/docs/api/ministreaming.html:17 +msgid "Ministreaming Library" +msgstr "" + +#: i2p2www/pages/site/docs/api/ministreaming.html:5 +msgid "Note" +msgstr "" + +#: i2p2www/pages/site/docs/api/ministreaming.html:7 +#, python-format +msgid "" +"The ministreaming library has been enhanced and extended by the\n" +"\"full\" streaming library.\n" +"Ministreaming is deprecated and is incompatible with today's " +"applications.\n" +"The following documentation is old.\n" +"Also note that streaming extends ministreaming in the same Java package " +"(net.i2p.client.streaming),\n" +"so the current API documentation contains both.\n" +"Obsolete ministreaming classes and methods are clearly marked as " +"deprecated in the Javadocs." +msgstr "" + +#: i2p2www/pages/site/docs/api/ministreaming.html:19 +#, python-format +msgid "" +"\n" +"The ministreaming library is a layer on top of the core \n" +"I2CP that allows reliable, in order, and " +"authenticated streams\n" +"of messages to operate across an unreliable, unordered, and " +"unauthenticated \n" +"message layer. Just like the TCP to IP relationship, this streaming \n" +"functionality has a whole series of tradeoffs and optimizations " +"available, but\n" +"rather than embed that functionality into the base I2P code, it has been " +"factored\n" +"off into its own library both to keep the TCP-esque complexities separate" +" and to\n" +"allow alternative optimized implementations." +msgstr "" + +#: i2p2www/pages/site/docs/api/ministreaming.html:30 +#, python-format +msgid "" +"The ministreaming library was written by mihi as a part of his \n" +"I2PTunnel application and then factored out" +" and released\n" +"under the BSD license. It is called the \"mini\"streaming library " +"because it makes\n" +"some simplifications in the implementation, while a more robust streaming" +" library\n" +"could be further optimized for operation over I2P. The two main issues " +"with \n" +"the ministreaming library are its use of the traditional TCP two phase \n" +"establishment protocol and the current fixed window size of 1. The " +"establishment\n" +"issue is minor for long lived streams, but for short ones, such as quick " +"HTTP\n" +"requests, the impact can be significant. As " +"for the window\n" +"size, the ministreaming library doesn't maintain any ID or ordering " +"within the \n" +"messages sent (or include any application level ACK or SACK), so it must " +"wait \n" +"on average twice the time it takes to send a message before sending " +"another." +msgstr "" + +#: i2p2www/pages/site/docs/api/ministreaming.html:45 +#, python-format +msgid "" +"Even with those issues, the ministreaming library performs quite well in " +"many\n" +"situations, and its API\n" +"is both quite simple and capable of remaining unchanged as different " +"streaming\n" +"implementations are introduced. The library is deployed in its own \n" +"ministreaming.jar.\n" +"Developers in Java who would like to use it can\n" +"access the API directly, while developers in other languages can use it " +"through\n" +"SAM's streaming support." +msgstr "" + +#: i2p2www/pages/site/docs/api/socks.html:4 +msgid "SOCKS and SOCKS proxies" +msgstr "" + +#: i2p2www/pages/site/docs/api/socks.html:5 +msgid "" +"\n" +"The SOCKS proxy is working as of release 0.7.1. SOCKS 4/4a/5 are " +"supported.\n" +"Enable SOCKS by creating a SOCKS client tunnel in i2ptunnel.\n" +"Both shared-clients and non-shared are supported.\n" +"There is no SOCKS outproxy so it is of limited use." +msgstr "" + +#: i2p2www/pages/site/docs/api/socks.html:12 +#, python-format +msgid "" +"\n" +"As it says on the FAQ:" +msgstr "" + +#: i2p2www/pages/site/docs/api/socks.html:15 +msgid "" +"Many applications leak sensitive\n" +"information that could identify you on the Internet. I2P only filters\n" +"connection data, but if the program you intend to run sends this\n" +"information as content, I2P has no way to protect your anonymity. For\n" +"example, some mail applications will send the IP address of the machine\n" +"they are running on to a mail server. There is no way for I2P to filter\n" +"this, thus using I2P to 'socksify' existing applications is possible, but" +"\n" +"extremely dangerous." +msgstr "" + +#: i2p2www/pages/site/docs/api/socks.html:25 +msgid "And quoting from a 2005 email:" +msgstr "" + +#: i2p2www/pages/site/docs/api/socks.html:28 +msgid "" +"... there is a reason why human and\n" +"others have both built and abandoned the SOCKS proxies. Forwarding\n" +"arbitrary traffic is just plain unsafe, and it behooves us as\n" +"developers of anonymity and security software to have the safety of\n" +"our end users foremost in our minds." +msgstr "" + +#: i2p2www/pages/site/docs/api/socks.html:36 +msgid "" +"Hoping that we can simply strap an arbitrary client on top of I2P\n" +"without auditing both its behavior and its exposed protocols for\n" +"security and anonymity is naive. Pretty much *every* application\n" +"and protocol violates anonymity, unless it was designed for it\n" +"specifically, and even then, most of those do too. That's the\n" +"reality. End users are better served with systems designed for\n" +"anonymity and security. Modifying existing systems to work in\n" +"anonymous environments is no small feat, orders of magnitude more\n" +"work that simply using the existing I2P APIs." +msgstr "" + +#: i2p2www/pages/site/docs/api/socks.html:48 +msgid "" +"The SOCKS proxy\n" +"supports standard addressbook names, but not Base64 destinations.\n" +"Base32 hashes should work as of release 0.7.\n" +"It supports outgoing connections only, i.e. an I2PTunnel Client.\n" +"UDP support is stubbed out but not working yet.\n" +"Outproxy selection by port number is stubbed out." +msgstr "" + +#: i2p2www/pages/site/docs/api/socks.html:57 +#: i2p2www/pages/site/docs/how/network-database.html:183 +#: i2p2www/pages/site/docs/how/tunnel-routing.html:281 +msgid "See Also" +msgstr "" + +#: i2p2www/pages/site/docs/api/socks.html:59 +#, python-format +msgid "" +"The notes for Meeting 81 and\n" +"Meeting 82 in March 2004." +msgstr "" + +#: i2p2www/pages/site/docs/api/socks.html:69 +msgid "If You Do Get Something Working" +msgstr "" + +#: i2p2www/pages/site/docs/api/socks.html:70 +msgid "" +"Please let us know. And please provide substantial warnings about the\n" +"risks of socks proxies." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:3 +msgid "February 2017" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:8 +#, python-format +msgid "" +"The streaming library is technically part of the \"application\" layer,\n" +"as it is not a core router function.\n" +"In practice, however, it provides a vital function for almost all\n" +"existing I2P applications, by providing a TCP-like\n" +"streams over I2P, and allowing existing apps to be easily ported to I2P.\n" +"The other end-to-end transport library for client communication is the\n" +"datagram library." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:18 +#, python-format +msgid "" +"The streaming library is a layer on top of the core \n" +"I2CP API that allows reliable, in-order, and " +"authenticated streams\n" +"of messages to operate across an unreliable, unordered, and " +"unauthenticated \n" +"message layer. Just like the TCP to IP relationship, this streaming \n" +"functionality has a whole series of tradeoffs and optimizations " +"available, but\n" +"rather than embed that functionality into the base I2P code, it has been " +"factored\n" +"off into its own library both to keep the TCP-esque complexities separate" +" and to\n" +"allow alternative optimized implementations." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:29 +msgid "" +"In consideration of the relatively high cost of messages, \n" +"the streaming library's protocol for scheduling and delivering those " +"messages has been optimized to\n" +"allow individual messages passed to contain as much information as is " +"available.\n" +"For instance, a small HTTP transaction proxied through the streaming " +"library can\n" +"be completed in a single round trip - the first messages bundle a SYN, " +"FIN, and\n" +"the small HTTP request payload, and the reply bundles the SYN,\n" +"FIN, ACK, and the HTTP response payload. While an additional\n" +"ACK must be transmitted to tell the HTTP server that the SYN/FIN/ACK has " +"been\n" +"received, the local HTTP proxy can often deliver the full response to the" +" browser \n" +"immediately." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:42 +msgid "" +"The streaming library bears much resemblance to an \n" +"abstraction of TCP, with its sliding windows, congestion control " +"algorithms\n" +"(both slow start and congestion avoidance), and general packet behavior " +"(ACK,\n" +"SYN, FIN, RST, rto calculation, etc)." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:49 +msgid "" +"The streaming library is\n" +"a robust library\n" +"which is optimized for operation over I2P.\n" +"It has a one-phase setup, and\n" +"it contains a full windowing implementation." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:58 +msgid "API" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:60 +#, python-format +msgid "" +"The streaming library API provides a standard socket paradigm to Java " +"applications.\n" +"The lower-level I2CP API is completely hidden, " +"except that\n" +"applications may pass I2CP parameters " +"through the\n" +"streaming library, to be interpreted by I2CP." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:67 +#, python-format +msgid "" +"The standard interface to the streaming lib is for the application to use" +" the\n" +"I2PSocketManagerFactory to create an\n" +"I2PSocketManager. The application then asks " +"the\n" +"socket manager for an I2PSession, which will " +"cause\n" +"a connection to the router via I2CP. The " +"application\n" +"can then setup connections with an I2PSocket " +"or\n" +"receive connections with an I2PServerSocket." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:82 +#, python-format +msgid "Here are the full streaming library Javadocs." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:86 +msgid "For a good example of usage, see the i2psnark code." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:91 +msgid "Options and Defaults" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:92 +#, python-format +msgid "" +"The options and current default values are listed below.\n" +"Options are case-sensitive and may be set for the whole router, for a " +"particular client, or for an individual socket on a\n" +"per-connection basis.\n" +"Many values are tuned for HTTP performance over typical I2P conditions. " +"Other applications such\n" +"as peer-to-peer services are strongly encouraged to\n" +"modify as necessary, by setting the options and passing them via the call" +" to\n" +"I2PSocketManagerFactory.createManager(_i2cpHost," +" _i2cpPort, opts).\n" +"Time values are in ms." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:103 +#, python-format +msgid "" +"Note that higher-layer APIs, such as SAM,\n" +"BOB, and I2PTunnel," +"\n" +"may override these defaults with their own defaults.\n" +"Also note that many options only apply to servers listening for incoming " +"connections." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:110 +msgid "" +"As of release 0.9.1, most, but not all, options may be changed on an " +"active socket manager or session.\n" +"See the javadocs for details." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:117 +#: i2p2www/pages/site/docs/protocol/i2cp.html:103 +#: i2p2www/pages/site/docs/protocol/i2cp.html:478 +msgid "Option" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:117 +#: i2p2www/pages/site/docs/protocol/i2cp.html:107 +#: i2p2www/pages/site/docs/protocol/i2cp.html:482 +msgid "Default" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:117 +#: i2p2www/pages/site/docs/how/elgamal-aes.html:264 +#: i2p2www/pages/site/docs/how/peer-selection.html:282 +msgid "Notes" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:119 +msgid "" +"Comma- or space-separated list of Base64 peer Hashes used for either " +"access list or blacklist." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:121 +#: i2p2www/pages/site/docs/api/streaming.html:129 +#: i2p2www/pages/site/docs/api/streaming.html:135 +#: i2p2www/pages/site/docs/api/streaming.html:141 +#: i2p2www/pages/site/docs/api/streaming.html:148 +#: i2p2www/pages/site/docs/api/streaming.html:160 +#: i2p2www/pages/site/docs/api/streaming.html:171 +#: i2p2www/pages/site/docs/api/streaming.html:200 +#: i2p2www/pages/site/docs/api/streaming.html:212 +#: i2p2www/pages/site/docs/api/streaming.html:220 +#: i2p2www/pages/site/docs/api/streaming.html:243 +#: i2p2www/pages/site/docs/api/streaming.html:260 +#: i2p2www/pages/site/docs/api/streaming.html:272 +#: i2p2www/pages/site/docs/api/streaming.html:278 +#: i2p2www/pages/site/docs/api/streaming.html:284 +#: i2p2www/pages/site/docs/api/streaming.html:298 +#: i2p2www/pages/site/docs/api/streaming.html:305 +#: i2p2www/pages/site/docs/api/streaming.html:312 +#: i2p2www/pages/site/docs/api/streaming.html:337 +#: i2p2www/pages/site/docs/api/streaming.html:344 +#: i2p2www/pages/site/docs/api/streaming.html:351 +#, python-format +msgid "As of release %(release)s." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:125 +#: i2p2www/pages/site/docs/api/streaming.html:133 +msgid "Use the access list as a whitelist for incoming connections." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:127 +msgid "The name or number of the signature type for a transient destination." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:139 +msgid "Use the access list as a blacklist for incoming connections." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:153 +msgid "Whether to respond to incoming pings" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:165 +msgid "" +"Comma- or space-separated list of Base64 peer Hashes to be\n" +"blacklisted for incoming connections to ALL destinations in the context.\n" +"This option must be set in the context properties, NOT in the " +"createManager() options argument.\n" +"Note that setting this in the router context will not affect clients " +"outside the\n" +"router in a separate JVM and context." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:175 +msgid "" +"How much transmit data (in bytes) will be accepted that hasn't been " +"written out yet." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:179 +msgid "" +"When we're in congestion avoidance, we grow the window size at the rate\n" +"of 1/(windowSize*factor). In standard TCP, window sizes are" +" in bytes,\n" +"while in I2P, window sizes are in messages.\n" +"A higher number means slower growth." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:186 +msgid "" +"How long to wait after instantiating a new con \n" +"before actually attempting to connect. If this is\n" +"<= 0, connect immediately with no initial data. If greater than 0, " +"wait\n" +"until the output stream is flushed, the buffer fills, \n" +"or that many milliseconds pass, and include any initial data with the SYN." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:194 +msgid "" +"How long to block on connect, in milliseconds. Negative means " +"indefinitely. Default is 5 minutes." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:198 +msgid "" +"Whether to disable warnings in the logs when an incoming connection is " +"rejected due to connection limits." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:204 +msgid "" +"Comma- or space-separated list of Base64 peer Hashes or host names to be\n" +"contacted using an alternate DSA destination.\n" +"Only applies if multisession is enabled and the primary session is non-" +"DSA\n" +"(generally for shared clients only).\n" +"This option must be set in the context properties, NOT in the " +"createManager() options argument.\n" +"Note that setting this in the router context will not affect clients " +"outside the\n" +"router in a separate JVM and context." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:216 +msgid "" +"Whether to listen only for the streaming protocol.\n" +"Setting to true will prohibit communication with Destinations earlier " +"than release 0.7.1\n" +"(released March 2009). Set to true if running multiple protocols on this " +"Destination." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:224 +msgid "" +"(0=noop, 1=disconnect)\n" +"What to do on an inactivity timeout - do nothing, disconnect, or send a " +"duplicate ack." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:230 +msgid "Idle time before sending a keepalive" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:233 +msgid "Delay before sending an ack" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:235 +msgid "" +"The initial value of the resend delay field in the packet header, times " +"1000.\n" +"Not fully implemented; see below." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:240 +msgid "" +"Initial timeout\n" +"(if no sharing data available)." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:247 +msgid "" +"Initial round trip time estimate\n" +"(if no sharing data available).\n" +"Disabled as of release 0.9.8; uses actual RTT." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:253 +msgid "if no sharing data available" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:253 +msgid "" +"In standard TCP, window sizes are in bytes, while in I2P, window sizes " +"are in messages." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:265 +msgid "" +"(0 or negative value means unlimited)\n" +"This is a total limit for incoming and outgoing combined." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:270 +msgid "Incoming connection limit (per peer; 0 means disabled)" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:276 +#: i2p2www/pages/site/docs/api/streaming.html:282 +msgid "(per peer; 0 means disabled)" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:288 +msgid "The MTU in bytes." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:292 +msgid "Maximum number of retransmissions before failure." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:296 +msgid "Incoming connection limit (all peers; 0 means disabled)" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:302 +#: i2p2www/pages/site/docs/api/streaming.html:309 +msgid "" +"(all peers; 0 means disabled)\n" +"Use with caution as exceeding this will disable a server for a long time." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:318 +msgid "" +"(2=interactive not supported)\n" +"This doesn't currently do anything, but setting it to a value other than " +"1 will cause an error." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:323 +msgid "How long to block on read, in milliseconds. Negative means indefinitely." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:327 +msgid "" +"When we're in slow start, we grow the window size at the rate\n" +"of 1/(factor). In standard TCP, window sizes are in bytes,\n" +"while in I2P, window sizes are in messages.\n" +"A higher number means slower growth." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:334 +#: i2p2www/pages/site/docs/api/streaming.html:341 +#: i2p2www/pages/site/docs/api/streaming.html:348 +msgid "" +"Ref: RFC 2140. Floating point value.\n" +"May be set only via context properties, not connection options." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:355 +msgid "" +"How long to block on write/flush, in milliseconds. Negative means " +"indefinitely." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:363 +msgid "Protocol Specification" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:365 +msgid "See the Streaming Library Specification page." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:369 +msgid "Implementation Details" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:371 +msgid "Setup" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:372 +msgid "" +"The initiator sends a packet with the SYNCHRONIZE flag set. This packet " +"may contain the initial data as well.\n" +"The peer replies with a packet with the SYNCHRONIZE flag set. This packet" +" may contain the initial response data as well." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:377 +msgid "" +"The initiator may send additional data packets, up to the initial window " +"size, before receiving the SYNCHRONIZE response.\n" +"These packets will also have the send Stream ID field set to 0.\n" +"Recipients must buffer packets received on unknown streams for a short " +"period of time, as they may\n" +"arrive out of order, in advance of the SYNCHRONIZE packet." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:384 +msgid "MTU Selection and Negotiation" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:385 +msgid "" +"The maximum message size (also called the MTU / MRU) is negotiated to the" +" lower value supported by\n" +"the two peers. As tunnel messages are padded to 1KB, a poor MTU selection" +" will lead to\n" +"a large amount of overhead.\n" +"The MTU is specified by the option i2p.streaming.maxMessageSize.\n" +"The current default MTU of 1730 was chosen to fit precisely into two 1K " +"I2NP tunnel messages,\n" +"including overhead for the typical case." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:394 +msgid "" +"The first message in a connection includes a 387 byte (typical) " +"Destination added by the streaming layer,\n" +"and usually a 898 byte (typical) LeaseSet, and Session keys, bundled in " +"the Garlic message by the router.\n" +"(The LeaseSet and Session Keys will not be bundled if an ElGamal Session " +"was previously established).\n" +"Therefore, the goal of fitting a complete HTTP request in a single 1KB " +"I2NP message is not always attainable.\n" +"However, the selection of the MTU, together with careful implementation " +"of fragmentation\n" +"and batching strategies in the tunnel gateway processor, are important " +"factors in network bandwidth,\n" +"latency, reliability, and efficiency, especially for long-lived " +"connections." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:405 +#, python-format +msgid "" +"Data integrity is assured by the gzip CRC-32 checksum implemented in\n" +"the I2CP layer.\n" +"There is no checksum field in the streaming protocol." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:413 +#, python-format +msgid "" +"Each packet is sent through I2P as a single message (or as an individual " +"clove in a\n" +"Garlic Message). Message encapsulation " +"is implemented\n" +"in the underlying I2CP, I2NP, and\n" +"tunnel message layers. There is no " +"packet delimiter\n" +"mechanism or payload length field in the streaming protocol." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:423 +msgid "Optional Delay" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:424 +msgid "" +"Data packets may include an optional delay field specifying the requested" +" delay,\n" +"in ms, before the receiver should ack the packet.\n" +"Valid values are 0 to 60000 inclusive.\n" +"A value of 0 requests an immediate ack.\n" +"This is advisory only, and receivers should delay slightly so that\n" +"additional packets may be acknowledged with a single ack.\n" +"Some implementations may include an advisory value of (measured RTT / 2) " +"in this field.\n" +"For nonzero optional delay values, receivers should limit the maximum " +"delay\n" +"before sending an ack to a few seconds at most.\n" +"Optional delay values greater than 60000 indicate choking, see below." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:438 +msgid "Receive Window and Choking" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:439 +msgid "" +"TCP headers include the receive window in bytes.\n" +"The streaming protocol does not contain a receive window, it uses only a " +"simple choke/unchoke indication.\n" +"Each endpoint must maintain its own estimate of the far-end receive " +"window, in either bytes or packets.\n" +"The recommended minimum buffer size for receiver implementations is 128 " +"packets or 217 KB (approximately 128x1730).\n" +"Because of I2P netowrk latency, packet drops, and the resulting " +"congestion control,\n" +"a buffer of this size is rarely filled.\n" +"Overflow is, however, likely to occur on high-bandwidth \"local " +"loopback\" (same-router) connections." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:448 +msgid "" +"To quickly indicate and smoothly recover from overflow conditions,\n" +"there is a simple mechanism for pushback in the streaming protocol.\n" +"If a packet is received with an optional delay field of value of 60001 or" +" higher,\n" +"that indicates \"choking\" or a receive window of zero.\n" +"A packet with an optional delay field of value of 60000 or less indicates" +" \"unchoking\".\n" +"Packets without an optional delay field do not affect the choke/unchoke " +"state." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:456 +msgid "" +"After being choked, no more packets with data should be sent until the " +"transmitter is unchoked,\n" +"except for occasional \"probe\" data packets to compensate for possible " +"lost unchoke packets.\n" +"The choked endpoint should start a \"persist timer\" to control the " +"probing, as in TCP.\n" +"The unchoking endpoint should send several packets with this field set,\n" +"or continue sending them periodically until data packets are received " +"again.\n" +"Maximum time to wait for unchoking is implementation-dependent.\n" +"Transmitter window size and congestion control strategy after being " +"unchoked is implementation-dependent." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:467 +msgid "Congestion Control" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:468 +msgid "" +"The streaming lib uses standard slow-start (exponential window growth) " +"and congestion avoidance (linear window growth)\n" +"phases, with exponential backoff.\n" +"Windowing and acknowledgments use packet count, not byte count." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:475 +msgid "Close" +msgstr "Zavřít" + +#: i2p2www/pages/site/docs/api/streaming.html:476 +msgid "" +"Any packet, including one with the SYNCHRONIZE flag set, may have the " +"CLOSE flag sent as well.\n" +"The connection is not closed until the peer responds with the CLOSE flag." +"\n" +"CLOSE packets may contain data as well." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:484 +msgid "" +"There is no ping function at the I2CP layer (equivalent to ICMP echo) or " +"in datagrams.\n" +"This function is provided in streaming.\n" +"Pings and pongs may not be combined with a standard streaming packet;\n" +"if the ECHO option is set, then\n" +"most other flags, options, ackThrough, sequenceNum, NACKs, etc. are " +"ignored." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:492 +msgid "" +"A ping packet must have the ECHO, SIGNATURE_INCLUDED, and FROM_INCLUDED " +"flags set.\n" +"The sendStreamId must be greater than zero, and the receiveStreamId is " +"ignored.\n" +"The sendStreamId may or may not correspond to an existing connection." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:498 +msgid "" +"A pong packet must have the ECHO flag set.\n" +"The sendStreamId must be zero, and the receiveStreamId is the " +"sendStreamId from the ping.\n" +"Prior to release 0.9.18, the pong packet does not include any payload " +"that was contained in the ping." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:504 +msgid "" +"As of release 0.9.18, pings and pongs may contain a payload.\n" +"The payload in the ping, up to a maximum of 32 bytes, is returned in the " +"pong." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:509 +msgid "" +"Streaming may be configured to disable sending pongs with the " +"configuration i2p.streaming.answerPings=false." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:514 +msgid "Control Block Sharing" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:515 +msgid "" +"The streaming lib supports \"TCP\" Control Block sharing.\n" +"This shares three important streaming lib parameters\n" +"(window size, round trip time, round trip time variance)\n" +"across connections to the same remote peer.\n" +"This is used for \"temporal\" sharing at connection open/close time,\n" +"not \"ensemble\" sharing during a connection (See\n" +"RFC 2140).\n" +"There is a separate share per ConnectionManager (i.e. per local " +"Destination)\n" +"so that there is no information leakage to other Destinations on the\n" +"same router.\n" +"The share data for a given peer expires after a few minutes.\n" +"The following Control Block Sharing parameters can be set per router:" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:536 +msgid "Other Parameters" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:537 +msgid "" +"The following parameters are hardcoded, but may be of interest for " +"analysis:" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:556 +#: i2p2www/pages/site/docs/how/network-database.html:897 +msgid "History" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:557 +msgid "" +"The streaming library has grown organically for I2P - first mihi " +"implemented the\n" +"\"mini streaming library\" as part of I2PTunnel, which was limited to a " +"window\n" +"size of 1 message (requiring an ACK before sending the next one), and " +"then it was\n" +"refactored out into a generic streaming interface (mirroring TCP sockets)" +" and the\n" +"full streaming implementation was deployed with a sliding window protocol" +" and \n" +"optimizations to take into account the high bandwidth x delay product. " +"Individual\n" +"streams may adjust the maximum packet size and other options. The default" +"\n" +"message size is selected to fit precisely in two 1K I2NP tunnel messages," +"\n" +"and is a reasonable tradeoff between the bandwidth costs of \n" +"retransmitting lost messages, and the latency and overhead of multiple " +"messages." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:571 +#: i2p2www/pages/site/docs/how/elgamal-aes.html:344 +#: i2p2www/pages/site/docs/how/garlic-routing.html:251 +#: i2p2www/pages/site/docs/how/network-database.html:902 +#: i2p2www/pages/site/docs/how/peer-selection.html:265 +#: i2p2www/pages/site/docs/how/tunnel-routing.html:255 +#: i2p2www/pages/site/docs/protocol/i2cp.html:723 +#: i2p2www/pages/site/docs/protocol/i2np.html:226 +#: i2p2www/pages/site/docs/transport/ntcp.html:545 +#: i2p2www/pages/site/docs/transport/ssu.html:579 +#: i2p2www/pages/site/docs/tunnels/implementation.html:506 +msgid "Future Work" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:572 +msgid "" +"The behavior of the streaming library has a profound impact on\n" +"application-level performance, and as such, is an important\n" +"area for further analysis." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:578 +msgid "Additional tuning of the streaming lib parameters may be necessary." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:581 +#, python-format +msgid "" +"Another area for research is the interaction of the streaming lib with " +"the\n" +"NTCP and SSU transport layers.\n" +"See the NTCP discussion page for details." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:586 +msgid "" +"The interaction of the routing algorithms with the streaming lib strongly" +" affects performance.\n" +"In particular, random distribution of messages to multiple tunnels in a " +"pool\n" +"leads to a high degree of out-of-order delivery which results in smaller " +"window\n" +"sizes than would otherwise be the case. The router currently routes \n" +"messages for a single from/to destination pair through a consistent set \n" +"of tunnels, until tunnel expiration or delivery failure. The router's \n" +"failure and tunnel selection algorithms should be reviewed for possible \n" +"improvements." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:596 +msgid "The data in the first SYN packet may exceed the receiver's MTU." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:599 +msgid "The DELAY_REQUESTED field could be used more." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:602 +msgid "" +"Duplicate initial SYNCHRONIZE packets on short-lived streams may not be " +"recognized and removed." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:605 +msgid "Don't send the MTU in a retransmission." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:608 +msgid "" +"Data is sent along unless the outbound window is full.\n" +"(i.e. no-Nagle or TCP_NODELAY)\n" +"Probably should have a configuration option for this." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:613 +msgid "" +"zzz has added debug code to the streaming library to log packets in a " +"wireshark-compatible\n" +"(pcap) format; Use this to further analyze performance.\n" +"The format may require enhancement to map more streaming lib parameters " +"to TCP fields." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:618 +msgid "" +"There are proposals to replace the streaming lib with standard TCP\n" +"(or perhaps a null layer together with raw sockets).\n" +"This would unfortunately be incompatible with the streaming lib\n" +"but it would be good to compare the performance of the two." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:3 +msgid "January 2017" +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:7 +msgid "" +"There are several bittorrent clients and trackers on I2P.\n" +"As I2P addressing uses a Destination instead of an IP and port, minor\n" +"changes are required to tracker and client software for operation on I2P." +"\n" +"These changes are specified below.\n" +"Note carefully the guidelines for compatibility with older I2P clients " +"and trackers." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:15 +msgid "" +"This page specifies protocol details common to all clients and trackers.\n" +"Specific clients and trackers may implement other unique features or " +"protocols." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:20 +msgid "We welcome additional ports of client and tracker software to I2P." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:26 +msgid "Announces" +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:27 +msgid "" +"Clients generally include a fake port=6881 parameter in the announce, for" +" compatibility with older trackers.\n" +"Trackers may ignore the port parameter, and should not require it." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:32 +#, python-format +msgid "" +"The ip parameter is the base 64 of the client's\n" +"Destination,\n" +"using the I2P Base 64 alphabet [A-Z][a-z][0-9]-~.\n" +"Destinations\n" +"are 387+ bytes, so the Base 64 is 516+ bytes.\n" +"Clients generally append \".i2p\" to the Base 64 Destination for " +"compatibility with older trackers.\n" +"Trackers should not require an appended \".i2p\"." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:42 +msgid "Other parameters are the same as in standard bittorrent." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:46 +msgid "" +"Current Destinations for clients are 387 or more bytes (516 or more in " +"Base 64 encoding).\n" +"A reasonable maximum to assume, for now, is 475 bytes.\n" +"As the tracker must decode the Base64 to deliver compact responses (see " +"below),\n" +"the tracker should probably decode and reject bad Base64 when announced." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:53 +msgid "" +"The default response type is non-compact. Clients may request a compact " +"response with\n" +"the parameter compact=1. A tracker may, but is not required to, return\n" +"a compact response when requested." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:59 +msgid "" +"Developers of new I2P clients\n" +"are strongly encouraged to implemenent announces over their own tunnel " +"rather than\n" +"the HTTP client proxy at port 4444. Doing so is both more efficient and " +"it allows\n" +"destination enforcement by the tracker (see below)." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:66 +msgid "" +"There are no known I2P clients or trackers that currently support UDP " +"announce/responses." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:71 +msgid "Non-Compact Tracker Responses" +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:72 +msgid "" +"The non-compact response is just as in standard bittorrent, with an I2P " +"\"ip\"." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:76 +msgid "" +"Trackers generally include a fake port key, or use the port from the " +"announce, for compatibility with older clients.\n" +"Clients must ignore the port parameter, and should not require it." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:81 +#, python-format +msgid "" +"The value of the ip key is the base 64 of the client's\n" +"Destination, as " +"described above.\n" +"Trackers generally append \".i2p\" to the Base 64 Destination if it " +"wasn't in the announce ip, for compatibility with older clients.\n" +"Clients should not require an appended \".i2p\" in the responses." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:88 +msgid "Other response keys and values are the same as in standard bittorrent." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:94 +msgid "Compact Tracker Responses" +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:95 +#, python-format +msgid "" +"In the compact response, the value of the \"peers\" dictionary key is a " +"single byte string,\n" +"whose length is a multiple of 32 bytes.\n" +"This string contains the concatenated\n" +"32-byte SHA-256 Hashes\n" +"of the binary\n" +"Destinations\n" +"of the peers.\n" +"This hash must be computed by the tracker, unless destination enforcement" +"\n" +"(see below) is used, in which case the hash delivered in the X-I2P-" +"DestHash\n" +"or X-I2P-DestB32 HTTP headers may be converted to binary and stored.\n" +"The peers key may be absent, or the peers value may be zero-length." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:109 +msgid "" +"While compact response support is optional for both clients and trackers," +" it is highly\n" +"recommended as it reduces the nominal response size by over 90%." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:116 +msgid "Destination Enforcement" +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:117 +#, python-format +msgid "" +"Some, but not all, I2P bittorrent clients announce over their own " +"tunnels.\n" +"Trackers may choose to prevent spoofing by requiring this, and verifying " +"the\n" +"client's\n" +"Destination\n" +"using HTTP headers added by the I2PTunnel HTTP Server tunnel.\n" +"The headers are X-I2P-DestHash, X-I2P-DestB64, and X-I2P-DestB32, which " +"are\n" +"different formats for the same information.\n" +"These headers cannot be spoofed by the client.\n" +"A tracker enforcing destinations need not require the ip announce " +"parameter at all." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:129 +msgid "" +"As several clients use the HTTP proxy instead of their own tunnel for " +"announces,\n" +"destination enforcement will prevent usage by those clients unless or " +"until\n" +"those clients are converted to announcing over their own tunnel." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:135 +msgid "" +"Unfortunately, as the network grows, so will the amount of maliciousness," +"\n" +"so we expect that all trackers will eventually enforce destinations.\n" +"Both tracker and client developers should anticipate it." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:143 +msgid "Announce Host Names" +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:144 +#, python-format +msgid "" +"Announce URL host names in torrent files generally follow the\n" +"I2P naming standards.\n" +"In addition to host names from address books and \".b32.i2p\" Base 32 " +"hostnames,\n" +"the full Base 64 Destination (with [or without?] \".i2p\" appended) " +"should be supported.\n" +"Non-open trackers should recognize their own host name in any of these " +"formats." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:152 +msgid "" +"To preserve anonymity,\n" +"clients should generally ignore non-I2P announce URLs in torrent files." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:159 +msgid "Client Connections" +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:160 +msgid "" +"Client-to-client connections use the standard protocol over TCP.\n" +"There are no known I2P clients that currently support uTP communication." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:165 +#, python-format +msgid "" +"I2P uses 387+ byte Destinations\n" +"for addresses, as explained above." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:170 +msgid "" +"If the client has only the hash of the destination (such as from a " +"compact response or PEX), it must perform a lookup\n" +"by encoding it with Base 32, appending \".b32.i2p\", and querying the " +"Naming Service,\n" +"which will return the full Destination if available." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:176 +msgid "" +"If the client has a peer's full Destination it received in a non-compact " +"response, it should use it\n" +"directly in the connection setup.\n" +"Do not convert a Destination back to a Base 32 hash for lookup, this is " +"quite inefficient." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:183 +msgid "Cross-Network Prevention" +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:184 +msgid "" +"To preserve anonymity,\n" +"I2P bittorrent clients generally do not support non-I2P announces or peer" +" connections.\n" +"I2P HTTP outproxies often block announces.\n" +"There are no known SOCKS outproxies supporting bittorrent traffic." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:191 +msgid "" +"To prevent usage by non-I2P clients via an HTTP inproxy, I2P trackers " +"often\n" +"block accesses or announces that contain an X-Forwarded-For HTTP header.\n" +"Trackers should reject standard network announces with IPv4 or IPv6 IPs, " +"and not deliver them in responses." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:200 +#, python-format +msgid "" +"I2P PEX is based on ut_pex.\n" +"As there does not appear to be a formal specification of ut_pex " +"available,\n" +"it may be necessary to review the libtorrent source for assistance.\n" +"It is an extension message, identified as \"i2p_pex\" in\n" +"the extension " +"handshake.\n" +"It contains a bencoded dictionary with up to 3 keys, \"added\", " +"\"added.f\", and \"dropped\".\n" +"The added and dropped values are each a single byte string, whose length " +"is a multiple of 32 bytes.\n" +"These byte strings are the concatenated SHA-256 Hashes of the binary\n" +"Destinations\n" +"of the peers.\n" +"This is the same format as the peers dictionary value in the i2p compact " +"response format specified above.\n" +"The added.f value, if present, is the same as in ut_pex." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:218 +msgid "" +"DHT support is included in the i2psnark client as of version 0.9.2.\n" +"Preliminary differences from\n" +"BEP 5\n" +"are described below, and are subject to change.\n" +"Contact the I2P developers if you wish to develop a client supporting DHT." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:226 +msgid "" +"Unlike standard DHT, I2P DHT does not use a bit in the options handshake," +" or the PORT message.\n" +"It is advertised with an extension message, identified as \"i2p_dht\" in\n" +"the extension " +"handshake.\n" +"It contains a bencoded dictionary with two keys, \"port\" and \"rport\", " +"both integers." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:233 +msgid "" +"The UDP (datagram) port listed in the compact node info is used\n" +"to receive repliable (signed) datagrams.\n" +"This is used for queries, except for announces.\n" +"We call this the \"query port\".\n" +"This is the \"port\" value from the extension message.\n" +"Queries use I2CP protocol number 17." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:242 +msgid "" +"In addition to that UDP port, we use a second datagram\n" +"port equal to the query port + 1. This is used to receive\n" +"unsigned (raw) datagrams for replies, errors, and announces.\n" +"This port provides increased efficiency since replies\n" +"contain tokens sent in the query, and need not be signed.\n" +"We call this the \"response port\".\n" +"This is the \"rport\" value from the extension message.\n" +"It must be 1 + the query port.\n" +"Responses and announces use I2CP protocol number 18." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:254 +msgid "" +"Compact peer info is 32 bytes (32 byte SHA256 Hash)\n" +"instead of 4 byte IP + 2 byte port. There is no peer port.\n" +"In a response, the \"values\" key is a list of strings, each containing a" +" single compact peer info." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:260 +msgid "" +"Compact node info is 54 bytes (20 byte SHA1 Hash + 32 byte SHA256 Hash + " +"2 byte port)\n" +"instead of 20 byte SHA1 Hash + 4 byte IP + 2 byte port.\n" +"In a response, the \"nodes\" key is a\n" +"single byte string with concatenated compact node info." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:267 +msgid "" +"Secure node ID requirement: To make various DHT attacks more difficult,\n" +"the first 4 bytes of the Node ID must match the first 4 bytes of the " +"destination Hash,\n" +"and the next two bytes of the Node ID must match the next two bytes of " +"the\n" +"destination hash exclusive-ORed with the port." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:274 +msgid "" +"In a torrent file,\n" +"the trackerless torrent dictionary \"nodes\" key is TBD.\n" +"It could be a list of\n" +"32 byte binary strings (SHA256 Hashes) instead of a list of lists\n" +"containing a host string and a port integer.\n" +"Alternatives: A single byte string with concatenated hashes,\n" +"or a list of strings alone." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:286 +msgid "Datagram (UDP) Trackers" +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:287 +msgid "" +"UDP tracker support in clients and trackers is not yet available.\n" +"Preliminary differences from\n" +"BEP 15\n" +"are described below, and are subject to change.\n" +"Contact the I2P developers if you wish to develop a client or tracker " +"supporting datagram announces." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:295 +msgid "" +"A UDP tracker listens on two ports.\n" +"The \"query port\" is the advertised port, and is used to receive " +"repliable (signed) datagrams, for the connect request only.\n" +"The \"response port\" is used to receive unsigned (raw) datagrams, and is" +" the source port for all replies.\n" +"The response port is arbitrary.\n" +"A client sends and receives on a single port only.\n" +"It receives only unsigned (raw) datagrams.\n" +"Raw datagrams provides increased efficiency for replies since they " +"contain tokens sent in the query, and need not be signed." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:305 +msgid "" +"In the announce request, the 4-byte IP is replaced by a 32-byte hash, and" +" the port is still present,\n" +"although it may be ignored by the tracker.\n" +"In the announce response, each 4-byte IP and 2-byte port is replaced by a" +" 32-byte hash (compact peer info), and no port is present.\n" +"The client sends the announce request and scrape request to the source " +"port in the announce response packet.\n" +"The connect request, connect response, scrape request, scrape response, " +"and error response are the same as in BEP 15." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:313 +msgid "" +"Source addresses in I2P cannot be spoofed, so it is possible to use a " +"simplified protocol\n" +"with 2 packets instead of 4, omitting the connect request and response.\n" +"In this case, the announce request would be a repliable datagram sent to " +"the tracker's query port,\n" +"and the tracker would not require a response port.\n" +"While this is more efficient, it would be more difficult to modify an " +"existing tracker to support this mode.\n" +"The URL for the 4-packet-mode tracker would use standard \"udp://\" " +"prefix. \n" +"The URL for a modified 2-packet-mode tracker would require a different " +"prefix if both modes are supported in I2P." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:326 +#: i2p2www/pages/site/docs/how/intro.html:184 +msgid "Additional Information" +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:328 +#, python-format +msgid "" +"I2P bittorrent standards are generally discussed on %(zzz)s." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:331 +#, python-format +msgid "" +"A chart of current tracker software capabilities is also available there." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:334 +#, python-format +msgid "" +"The\n" +"I2P bittorrent FAQ" +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:338 +#, python-format +msgid "DHT on I2P discussion" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:2 +msgid "Embedding I2P in your Application" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:3 +msgid "April 2015" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:8 +msgid "" +"This page is about bundling the entire I2P router binary with your " +"application.\n" +"It is not about writing an application to work with I2P (either bundled " +"or external)." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:13 +msgid "" +"Lots of projects are bundling, or talking about bundling, I2P. That's " +"great if done right.\n" +"If done wrong, it could cause real harm to our network.\n" +"The I2P router is complex, and it can be a challenge to hide all the " +"complexity from your users.\n" +"This page discusses some general guidelines." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:23 +msgid "Talk to us" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:24 +msgid "" +"Start a dialog. We're here to help. Applications that embed I2P are the " +"most promising - and exciting -\n" +"opportunities for us to grow the network and improve anonymity for " +"everyone." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:30 +msgid "Choose your router wisely" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:31 +msgid "" +"If your application is in Java or Scala, it's an easy choice - use the " +"Java router.\n" +"If in C/C++, we recommend i2pd. The development of i2pcpp has stopped.\n" +"For apps in other languages, best to use SAM or BOB or SOCKS and bundle " +"the Java router as a separate process.\n" +"Some of the following only applies to the Java router." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:39 +msgid "Licensing" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:40 +msgid "Ensure you meet the license requirements of the software you are bundling." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:45 +msgid "Verify default configuration" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:46 +msgid "" +"A correct default configuration is crucial. Most users will not change " +"the defaults.\n" +"The defaults for your application may need to be different than the " +"defaults for the router you are bundling.\n" +"Override the router defaults if necessary." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:51 +msgid "" +"Some important defaults to review: Max bandwidth, tunnel quantity and " +"length, max participating tunnels.\n" +"A lot of this depends on the expected bandwidth and usage patterns of " +"your app." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:55 +msgid "" +"Configure enough bandwidth and tunnels to allow your users to contribute " +"to the network.\n" +"Consider disabling external I2CP, as you probably don't need it and it " +"would conflict with any other running I2P instance.\n" +"Also look at the configs for disabling killing of the JVM on exit, for " +"example." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:62 +msgid "Participating Traffic Considerations" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:63 +msgid "" +"It may be tempting for you to disable participating traffic.\n" +"There's several ways to do this (hidden mode, setting max tunnels to 0, " +"setting shared bandwidth below 12 KBytes/sec).\n" +"Without participating traffic, you don't have to worry about graceful " +"shutdown,\n" +"your users don't see bandwidth usage not generated by them, etc.\n" +"However, there's lots of reasons why you should allow participating " +"tunnels." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:70 +msgid "" +"First of all, the router doesn't work that well if it doesn't have a " +"chance to \"integrate\" with the network,\n" +"which is helped tremendously by others building tunnels through you." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:74 +msgid "" +"Secondly, over 90% of the routers in the current network allow " +"participating traffic.\n" +"It's the default in the Java router.\n" +"If your application doesn't route for others and it gets really popular, " +"then it's a leech on the network,\n" +"and it upsets the balance we have now.\n" +"If it gets really big, then we become Tor, and spend our time begging for" +" people to enable relaying." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:81 +msgid "" +"Thirdly, participating traffic is cover traffic that helps your users' " +"anonymity." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:84 +msgid "" +"We strongly discourage you from disabling participating traffic by " +"default.\n" +"If you do this and your application gets hugely popular, it could break " +"the network." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:90 +msgid "Persistence" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:91 +msgid "" +"You must save the router's data (netdb, configuration, etc.) between runs" +" of the router.\n" +"I2P does not work well if you must reseed each startup, and that's a huge" +" load on our reseed servers, and not very good for anonymity either.\n" +"Even if you bundle router infos, I2P needs saved profile data for best " +"performance." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:99 +msgid "Configurability" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:100 +msgid "" +"Give your users a way to change the configuration of the important " +"settings.\n" +"We understand that you will probably want to hide most of I2P's " +"complexity, but it's important to show some basic settings.\n" +"In addition to the defaults above, some network settings such as UPnP, " +"IP/port may be helpful." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:108 +msgid "Floodfill Considerations" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:109 +msgid "" +"Above a certain bandwidth setting, and meeting other health criteria, " +"your router will become floodfill,\n" +"which may cause a large increase in connections and memory usage (at " +"least with the Java router).\n" +"Think about whether that's OK. You can disable floodfill, but then your " +"fastest users aren't contributing what they could.\n" +"It also depends on the typical uptime for your application." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:119 +msgid "Reseeding" +msgstr "Opětovné sdílení (reseeding)" + +#: i2p2www/pages/site/docs/applications/embedding.html:120 +msgid "" +"Decide if you are bundling router infos or using our reseed hosts.\n" +"The Java reseed host list is in the source code, so if you keep your " +"source up to date, the host list will be also.\n" +"Be aware of possible blocking by hostile governments." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:129 +msgid "Reduce Network Resource Usage" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:130 +msgid "" +"Consider setting your application tunnels to delay-open, reduce-on-idle " +"and/or close-on-idle.\n" +"This is straightforward if using i2ptunnel but you'll have to implement " +"some of it yourself if using I2CP directly.\n" +"See i2psnark for code that reduces tunnel count and then closes the " +"tunnel, even in the presence of some background DHT activity." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:138 +msgid "Updatability" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:139 +msgid "" +"Have an auto-update feature if at all possible, or at least auto-" +"notification of a new version.\n" +"Our biggest fear is a huge number of routers out there that can't be " +"updated.\n" +"We have about 6-8 releases a year of the Java router, and it's critical " +"to the health of the network that the users keep up.\n" +"We usually have over 80% of the network on the latest release within " +"6 weeks after the release, and we'd like to keep it that way.\n" +"You don't need to worry about disabling the router's built-in auto-update" +" function, as that code is in the router console,\n" +"which you presumably are not bundling." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:150 +msgid "Rollout" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:151 +msgid "" +"Have a gradual rollout plan. Don't overwhelm the network all at once.\n" +"We currently have approximately 25K unique users per day and 40K uniques " +"per month.\n" +"We are probably able to handle growth of 2-3X per year without too much " +"issue.\n" +"If you anticipate a faster rampup than that, OR the bandwidth " +"distribution (or uptime distribution,\n" +"or any other significant characteristic) of your userbase is " +"significantly different from our current userbase,\n" +"we really need to have a discussion.\n" +"The bigger your growth plans, the more important everthing else in this " +"checklist is." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:163 +msgid "Design for and Encourage Long Uptimes" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:164 +msgid "" +"Tell your users that I2P works best if it keeps running.\n" +"It may be several minutes after startup before it works well, and even " +"more after first install.\n" +"If your average uptime is less than an hour, I2P is probably the wrong " +"solution." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:172 +msgid "Show Status" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:173 +msgid "" +"Provide some indication to the user that the application tunnels are " +"ready. Encourage patience." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:178 +msgid "Graceful Shutdown" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:179 +msgid "" +"If possible, delay the shutdown until your participating tunnels expire.\n" +"Don't let your users break tunnels easily, or at least ask them to " +"confirm." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:185 +msgid "Education and Donation" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:186 +msgid "" +"It would be nice if you give your users links to learn more about I2P and" +" to donate." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:192 +msgid "External Router Option" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:193 +msgid "" +"Depending on your user base and application,\n" +"it may be helpful to provide an option or a separate package to use an " +"external router." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:200 +msgid "Use of other Common Services" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:201 +msgid "" +"If you plan to use or link to other common I2P services (news feeds, " +"hosts.txt subscriptions, trackers, outproxies, etc.),\n" +"make sure you aren't overloading them,\n" +"and talk to the people who are running them to make sure it's ok." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:209 +msgid "Time / NTP Issues" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:210 +msgid "" +"I2P includes an SNTP client. I2P requires correct time to operate.\n" +"It will compensate for a skewed system clock but this may delay startup. " +"You may disable I2P's SNTP queries,\n" +"but this isn't advised unless your application makes sure the system " +"clock is correct." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:218 +msgid "Choose What and How you Bundle" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:219 +msgid "" +"At a minimum you will need i2p.jar, router.jar, streaming.jar, and " +"mstreaming.jar.\n" +"You may omit the two streaming jars for a datagram-only app.\n" +"Some apps may need more, e.g. i2ptunnel.jar or addressbook.jar.\n" +"Don't forget jbigi.jar, or a subset of it for the platforms you support, " +"to make the crypto much faster.\n" +"We are currently building them for Java 6, as of 0.9.14. The source is " +"mostly compatible with Java 5 if you want to do your own compile,\n" +"but we may start using Java 6 features at any time without notice.\n" +"We plan to migrate to Java 7 in 2015.\n" +"If you're building Debian / Ubuntu packages, you should require the I2P " +"package from our PPA instead of bundling it.\n" +"You almost certainly do not need susimail, susidns, the router console, " +"and i2psnark, for example." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:230 +msgid "" +"The following files should be included in the I2P installation directory," +" specified with the \"i2p.dir.base\" property.\n" +"Don't forget certificates/reseed and certificates/ssl, required for " +"reseeding, and blocklist.txt for IP validation.\n" +"The geoip directory is optional, but recommended so the router can make " +"decisions based on location.\n" +"The hosts.txt file may be necessary, you may modify it to include any " +"hosts your application uses.\n" +"You may add a router.config file to the base directory to override " +"initial defaults." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:237 +msgid "" +"License requirements may require you to include the LICENSES.txt file and" +" the licenses directory." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:243 +msgid "You may also wish to bundle a hosts.txt file." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:246 +msgid "Be sure to specify a Java 6 bootclasspath if compiling with Java 8." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:254 +msgid "Datagram (DHT) considerations" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:255 +msgid "" +"If your application is using I2P datagrams, e.g. for a DHT,\n" +"there's lots of advanced options available to reduce overhead and " +"increase reliability.\n" +"This may take some time and experimentation to get working well.\n" +"Be aware of size/reliability tradeoffs. Talk to us for help.\n" +"It is possible - and recommended - to use Datagrams and Streaming on the " +"same Destination.\n" +"Don't create separate Destinations for this.\n" +"Don't try to store your unrelated data in the existing network DHTs " +"(iMule, bote, bittorrent, and router).\n" +"Build your own. If you are hardcoding seed nodes, we recommend that you " +"have several." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:268 +msgid "Comarketing" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:269 +msgid "" +"Let's work together. Don't wait until it's done.\n" +"Give us your Twitter handle and start tweeting about it, we will return " +"the favor." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:275 +msgid "Malware" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:276 +msgid "" +"Please don't use I2P for evil.\n" +"It could cause great harm both to our network and our reputation." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:282 +msgid "Join Us" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:283 +msgid "" +"This may be obvious, but join the community. Run I2P 24/7. Start an " +"eepsite about your project.\n" +"Hang out in IRC #i2p-dev. Post on the forums. Spread the word.\n" +"We can help get you users, testers, translators, or even coders." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:291 +msgid "Application Examples" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:292 +msgid "" +"You may wish to install and play with the I2P Android app, and look at " +"its code, for an example of an application that bundles the router.\n" +"See what we expose to the user and what we hide.\n" +"Look at the state machine we use to start and stop the router.\n" +"Other examples are: Vuze, the Nightweb Android app, iMule, TAILS, iCloak," +" and Monero." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:300 +msgid "Code Example" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:301 +msgid "" +"None of the above actually tells you how to write your code to\n" +"bundle the Java router, so following is a brief example." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:331 +msgid "" +"This code is for the case where your application starts the router, as in" +" our Android app.\n" +"You could also have the router start the application via the " +"clients.config and i2ptunnel.config files,\n" +"together with Jetty webapps,\n" +"as is done in our Java packages.\n" +"As always, state management is the difficult part." +msgstr "" + +#: i2p2www/pages/site/docs/applications/managed-clients.html:3 +msgid "February 2014" +msgstr "" + +#: i2p2www/pages/site/docs/applications/managed-clients.html:8 +#, python-format +msgid "" +"Clients may be started directly by the router when they are listed\n" +"in the clients.config file.\n" +"These clients may be \"managed\" or \"unmanaged\".\n" +"This is handled by the ClientAppManager.\n" +"Additionally, managed or unmanaged clients may register with the\n" +"ClientAppManager so that other clients may retrieve a reference to them.\n" +"There is also a simple Port Mapper facility for clients to register an\n" +"internal port that other clients may look up." +msgstr "" + +#: i2p2www/pages/site/docs/applications/managed-clients.html:21 +msgid "" +"As of release 0.9.4, the router supports managed clients.\n" +"Managed clients are instantiated and started by the ClientAppManager.\n" +"The ClientAppManager maintains a reference to the client and receives " +"updates on the client's state.\n" +"Managed clients are preferred, as it is much easier to implement state " +"tracking\n" +"and to start and stop a client. It also is much easier to avoid static " +"references in the client code\n" +"which could lead to excessive memory usage after a client is stopped.\n" +"Managed clients may be started and stopped by the user in the router " +"console,\n" +"and are stopped at router shutdown." +msgstr "" + +#: i2p2www/pages/site/docs/applications/managed-clients.html:31 +msgid "" +"Managed clients implement either the net.i2p.app.ClientApp or " +"net.i2p.router.app.RouterApp interface.\n" +"Clients implementing the ClientApp interface must provide the following " +"constructor:" +msgstr "" + +#: i2p2www/pages/site/docs/applications/managed-clients.html:38 +msgid "" +"Clients implementing the RouterApp interface must provide the following " +"constructor:" +msgstr "" + +#: i2p2www/pages/site/docs/applications/managed-clients.html:44 +msgid "The arguments provided are specified in the clients.config file." +msgstr "" + +#: i2p2www/pages/site/docs/applications/managed-clients.html:48 +msgid "Unmanaged Clients" +msgstr "" + +#: i2p2www/pages/site/docs/applications/managed-clients.html:49 +msgid "" +"If the main class specified in the clients.config file does not implement" +" a managed interface,\n" +"it will be started with main() with the arguments specified,\n" +"and stopped with main() with the arguments specified.\n" +"The router does not maintain a reference, since all interactions are via " +"the static main() method.\n" +"The console cannot provide accurate state information to the user." +msgstr "" + +#: i2p2www/pages/site/docs/applications/managed-clients.html:57 +msgid "Registered Clients" +msgstr "" + +#: i2p2www/pages/site/docs/applications/managed-clients.html:58 +msgid "" +"Clients, whether managed or unmanaged, may register with the " +"ClientAppManager\n" +"so that other clients may retrieve a reference to them.\n" +"Registration is by name.\n" +"Known registered clients are:" +msgstr "" + +#: i2p2www/pages/site/docs/applications/managed-clients.html:68 +msgid "Port Mapper" +msgstr "" + +#: i2p2www/pages/site/docs/applications/managed-clients.html:69 +msgid "" +"The router also provides a simple mechanism for clients to find an " +"internal socket service,\n" +"such as the HTTP proxy. This is provided by the Port Mapper.\n" +"Registration is by name.\n" +"Clients that register generally provide an internal emulated socket on " +"that port." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:2 +msgid "Supported Applications" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:5 +#: i2p2www/pages/site/docs/applications/supported.html:183 +msgid "Blogging, Forums, and Wikis" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:7 +#: i2p2www/pages/site/docs/applications/supported.html:229 +msgid "Decentralized File Storage" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:10 +#: i2p2www/pages/site/docs/applications/supported.html:241 +msgid "Development Tools" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:13 +#: i2p2www/pages/site/docs/applications/supported.html:243 +msgid "Version control" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:17 +#: i2p2www/pages/site/docs/applications/supported.html:262 +msgid "Domain Naming" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:19 +#: i2p2www/pages/site/docs/applications/supported.html:280 +msgid "Email" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:22 +#: i2p2www/pages/site/docs/applications/supported.html:325 +msgid "File Sharing" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:25 +#: i2p2www/pages/site/docs/applications/supported.html:327 +msgid "BitTorrent clients" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:27 +#: i2p2www/pages/site/docs/applications/supported.html:369 +msgid "BitTorrent trackers and indexers" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:36 +#: i2p2www/pages/site/docs/applications/supported.html:436 +msgid "Network Administration" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:39 +#: i2p2www/pages/site/docs/applications/supported.html:438 +msgid "General-purpose socket utilities" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:46 +#: i2p2www/pages/site/docs/applications/supported.html:479 +msgid "Real-time Chat" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:49 +#: i2p2www/pages/site/docs/applications/supported.html:481 +msgid "Instant messaging clients" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:51 +#: i2p2www/pages/site/docs/applications/supported.html:491 +msgid "IRC clients" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:53 +#: i2p2www/pages/site/docs/applications/supported.html:542 +msgid "IRC servers" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:58 +#: i2p2www/pages/site/docs/applications/supported.html:558 +msgid "Web Browsing" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:61 +#: i2p2www/pages/site/docs/applications/supported.html:560 +msgid "Anonymous websites" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:63 +#: i2p2www/pages/site/docs/applications/supported.html:609 +msgid "Proxy software" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:65 +#: i2p2www/pages/site/docs/applications/supported.html:634 +msgid "Inproxies" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:67 +#: i2p2www/pages/site/docs/applications/supported.html:674 +msgid "Outproxies" +msgstr "Výstupní proxy (Outproxies)" + +#: i2p2www/pages/site/docs/applications/supported.html:72 +#: i2p2www/pages/site/docs/applications/supported.html:688 +msgid "Website Hosting" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:75 +#: i2p2www/pages/site/docs/applications/supported.html:703 +msgid "Web servers" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:82 +#, python-format +msgid "" +"This is intended to be a comprehensive listing of applications used with\n" +"I2P. If you know of something that's missing please submit a ticket on\n" +"Trac, and be sure to select the\n" +"“www” component in the submission form." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:89 +msgid "" +"\n" +"Supported applications are tagged with one or more of the following:" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:94 +#: i2p2www/pages/site/docs/applications/supported.html:276 +#: i2p2www/pages/site/docs/applications/supported.html:308 +#: i2p2www/pages/site/docs/applications/supported.html:333 +#: i2p2www/pages/site/docs/applications/supported.html:700 +msgid "bundled" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:97 +msgid "" +"Bundled application — I2P ships with a few officially\n" +"supported applications that let new users take immediate advantage of\n" +"some of I2P's more useful capabilities." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:104 +#: i2p2www/pages/site/docs/applications/supported.html:192 +#: i2p2www/pages/site/docs/applications/supported.html:205 +#: i2p2www/pages/site/docs/applications/supported.html:217 +#: i2p2www/pages/site/docs/applications/supported.html:225 +#: i2p2www/pages/site/docs/applications/supported.html:238 +#: i2p2www/pages/site/docs/applications/supported.html:289 +#: i2p2www/pages/site/docs/applications/supported.html:401 +#: i2p2www/pages/site/docs/applications/supported.html:423 +#: i2p2www/pages/site/docs/applications/supported.html:432 +#: i2p2www/pages/site/docs/applications/supported.html:520 +msgid "plugin" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:107 +#, python-format +msgid "" +"Third-party plugin — I2P's plugin system provides convenient\n" +"deployment of I2P-enabled applications and allows tighter integration\n" +"with the router. Plugins are [reviewed by the community](http://%(plugins)s) to identify security and\n" +"anonymity issues." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:118 +#: i2p2www/pages/site/docs/applications/supported.html:217 +#: i2p2www/pages/site/docs/applications/supported.html:225 +#: i2p2www/pages/site/docs/applications/supported.html:238 +#: i2p2www/pages/site/docs/applications/supported.html:249 +#: i2p2www/pages/site/docs/applications/supported.html:258 +#: i2p2www/pages/site/docs/applications/supported.html:321 +#: i2p2www/pages/site/docs/applications/supported.html:339 +#: i2p2www/pages/site/docs/applications/supported.html:350 +#: i2p2www/pages/site/docs/applications/supported.html:365 +#: i2p2www/pages/site/docs/applications/supported.html:411 +#: i2p2www/pages/site/docs/applications/supported.html:423 +#: i2p2www/pages/site/docs/applications/supported.html:432 +#: i2p2www/pages/site/docs/applications/supported.html:447 +#: i2p2www/pages/site/docs/applications/supported.html:453 +#: i2p2www/pages/site/docs/applications/supported.html:459 +#: i2p2www/pages/site/docs/applications/supported.html:469 +#: i2p2www/pages/site/docs/applications/supported.html:475 +#: i2p2www/pages/site/docs/applications/supported.html:487 +#: i2p2www/pages/site/docs/applications/supported.html:520 +#: i2p2www/pages/site/docs/applications/supported.html:526 +#: i2p2www/pages/site/docs/applications/supported.html:532 +#: i2p2www/pages/site/docs/applications/supported.html:538 +#: i2p2www/pages/site/docs/applications/supported.html:615 +#: i2p2www/pages/site/docs/applications/supported.html:624 +#: i2p2www/pages/site/docs/applications/supported.html:630 +#: i2p2www/pages/site/docs/applications/supported.html:700 +#: i2p2www/pages/site/docs/applications/supported.html:715 +#: i2p2www/pages/site/docs/applications/supported.html:721 +#: i2p2www/pages/site/docs/applications/supported.html:727 +#: i2p2www/pages/site/docs/applications/supported.html:733 +msgid "standalone" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:118 +#: i2p2www/pages/site/docs/applications/supported.html:192 +#: i2p2www/pages/site/docs/applications/supported.html:199 +#: i2p2www/pages/site/docs/applications/supported.html:205 +#: i2p2www/pages/site/docs/applications/supported.html:211 +#: i2p2www/pages/site/docs/applications/supported.html:359 +#: i2p2www/pages/site/docs/applications/supported.html:383 +#: i2p2www/pages/site/docs/applications/supported.html:392 +#: i2p2www/pages/site/docs/applications/supported.html:548 +#: i2p2www/pages/site/docs/applications/supported.html:554 +msgid "standalone/mod" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:121 +msgid "" +"Third-party standalone application — Many standard network\n" +"applications only require careful setup and configuration to communicate\n" +"anonymously over I2P. These are tagged with standalone. Some\n" +"applications, tagged with standalone/mod, require patching to\n" +"function properly over I2P or to prevent inadvertent disclosure of\n" +"identifying information such as the user's hostname or external IP\n" +"address." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:132 +#: i2p2www/pages/site/docs/applications/supported.html:299 +#: i2p2www/pages/site/docs/applications/supported.html:568 +#: i2p2www/pages/site/docs/applications/supported.html:578 +#: i2p2www/pages/site/docs/applications/supported.html:587 +#: i2p2www/pages/site/docs/applications/supported.html:593 +#: i2p2www/pages/site/docs/applications/supported.html:599 +#: i2p2www/pages/site/docs/applications/supported.html:605 +#: i2p2www/pages/site/docs/applications/supported.html:646 +#: i2p2www/pages/site/docs/applications/supported.html:654 +#: i2p2www/pages/site/docs/applications/supported.html:663 +#: i2p2www/pages/site/docs/applications/supported.html:670 +#: i2p2www/pages/site/docs/applications/supported.html:684 +msgid "service" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:135 +msgid "" +"Third-party essential network service — Services which on\n" +"the I2P network are analogous to those provided on the public Internet\n" +"by hosting providers, ISPs, and Google: eepsite indexes and jump\n" +"services, search engines, email, DNS-style name services, hosting,\n" +"proxies, etc. These services focus on boosting the usefulness of the\n" +"network as a whole, and making network content more discoverable." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:145 +#: i2p2www/pages/site/docs/applications/supported.html:217 +#: i2p2www/pages/site/docs/applications/supported.html:365 +msgid "unmaintained" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:148 +msgid "" +"Unmaintained — This is used to tag plugins, applications,\n" +"and services which appear to be unmaintained and may be removed from\n" +"this listing in the future." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:156 +#, python-format +msgid "" +"Warning: Using an application, plugin, or service with I2P\n" +"doesn't automatically protect your anonymity. I2P is merely a set of " +"tools\n" +"which can help you mitigate certain identified\n" +"threats to anonymity. We do not and cannot make any guarantees about " +"the\n" +"safety of the applications, plugins, and services listed below. Most\n" +"applications and plugins must be properly configured, and some will need " +"to\n" +"be patched — and even then your anonymity might not be assured. " +"Similarly,\n" +"services could put your anonymity at risk, either by design or through\n" +"carelessness on their part or your own." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:168 +msgid "" +"If you have doubts about the suitability of an application,\n" +"plugin, or service for use with I2P, you are urged to inquire about " +"privacy\n" +"issues with its maintainers, to search its mailing lists and bug tracker " +"if\n" +"one exists, and consult trusted, knowledgeable members of the I2P\n" +"community." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:176 +msgid "" +"Take responsibility for your own anonymity and safety — always\n" +"seek expert advice, educate yourself, practice good judgment, be mindful " +"of\n" +"disclosing personally identifying information, and don't take\n" +"shortcuts." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:198 +msgid "Lightweight forum software." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:204 +msgid "Another lightweight blogging platform." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:210 +msgid "Most popular open source forum software." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:216 +msgid "Distributed forums software, originally developed by jrandom." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:221 +#, python-format +msgid "" +"A Java-based MediaWiki clone. No external database needed.\n" +"Plugin available here." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:233 +#, python-format +msgid "" +"Port of the Tahoe-" +"LAFS\n" +"distributed file system to the I2P network. Controller plugin here." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:248 +msgid "Most popular distributed version control system." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:254 +#, python-format +msgid "" +"Another distributed version control system. Currently\n" +"used in I2P development." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:266 +#, python-format +msgid "" +"Provides management of addressbooks, which are part of a simple,\n" +"user-controlled I2P naming system somewhat\n" +"analogous to the Internet's Domain Name System (DNS). Addressbooks map\n" +"Base64 destinations to short, usually human-readable “domain” names " +"ending\n" +"with a .i2p suffix which the I2P router's HTTP client can resolve back to" +"\n" +"Base64 addresses. (Note: While Base64 destinations are globally\n" +"unique, addressbook “domain” names only resolve to unique destinations\n" +"locally.)" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:285 +msgid "" +"Serverless peer-to-peer email application using a distributed hash table\n" +"(DHT) for secure mail storage." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:294 +msgid "" +"Provides email service within the I2P network via @mail.i2p addresses,\n" +"and email gateway service between the I2P network and the public Internet" +"\n" +"via @i2pmail.org addresses. One of the oldest continuous services on I2P." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:304 +msgid "" +"Simple web browser-based email interface. Configured to use Postman's\n" +"email service by default." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:313 +#, python-format +msgid "" +"Can be configured to use Postman's email service. See\n" +"this comparison of MUAs,\n" +"and configuration settings for\n" +"SMTP and POP3." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:332 +msgid "I2P's integrated BitTorrent client." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:338 +msgid "Modified version of I2PSnark." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:344 +msgid "" +"\n" +"A fork of rufus that uses the Basic Open Bridge (BOB) and has many\n" +"improvements, including using the latest wxwidgets and python. It also\n" +"supports use of seedless if installed for trackerless torrents and\n" +"magnet-link like fetching of torrents within I2P.\n" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:355 +msgid "" +"Clean, full-featured cross-platform BitTorrent client with official\n" +"ports for several GUI toolkits." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:364 +msgid "Has a plugin providing I2P support." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:371 +#, python-format +msgid "" +"For a detailed feature comparison of I2P-enabled trackers/indexers, see\n" +"here." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:379 +msgid "" +"The code that powered one of the first major tracker/indexer sites on the" +"\n" +"Internet. Patched for I2P." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:388 +#, python-format +msgid "" +"Lightweight tracker/indexer. I2P mod available in the i2p.opentracker\n" +"branch of the I2P Monotone repository." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:397 +#, python-format +msgid "" +"zzz's Java-based open tracker. More info\n" +"here." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:410 +msgid "I2P port of the aMule ED2K client." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:419 +#, python-format +msgid "" +"Port of the Phex Gnutella " +"client. Website\n" +"for plugin version here." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:428 +#, python-format +msgid "" +"Cache for Gnutella peers on I2P. Website for plugin version\n" +"here." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:443 +msgid "" +"Unix standard tool for socket relaying. Several clones, ports, and forks\n" +"have appeared over the years." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:452 +msgid "Like netcat but more powerful." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:458 +msgid "" +"Proxy providing simple, transparent SOCKS-ification of network " +"applications." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:468 +msgid "" +"Most popular implementation of the Secure Shell (SSH) protocol and " +"related tools." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:474 +msgid "Open source Secure Shell (SSH) client for Windows." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:486 +msgid "IM client with multiple incarnations." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:493 +msgid "" +"Many IRC clients leak identifying information to servers or other\n" +"clients, so I2P's IRC and SOCKS IRC client tunnels filter certain inbound" +"\n" +"and outbound messages to scrub data such as LAN IP addresses, external IP" +"\n" +"addresses, local hostnames, and the name and version of the IRC client. " +"Two\n" +"message types in particular, DCC and CTCP, can't be sufficiently " +"anonymized\n" +"without changes to the protocols or to IRC client/server code, so they " +"are\n" +"completely blocked, except for CTCP ACTION (the message emitted by the\n" +"/me command) which isn't inherently dangerous." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:504 +msgid "" +"I2P's IRC filtering may not cover every possible leak — users should also" +"\n" +"check if their client is sending their real name or local username. " +"Packet\n" +"sniffers such as Wireshark are\n" +"useful here. Eliminating remaining leaks may be as simple as changing the" +"\n" +"client's default configuration. If that doesn't help, inform the I2P\n" +"developers; they may be able to solve it via additional filtering." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:516 +#, python-format +msgid "" +"Small Java-based IRC client. Plugin available here." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:525 +msgid "Cross-platform graphical IRC client." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:531 +msgid "Unixy terminal-based IRC client." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:537 +msgid "Another Unixy terminal-based IRC client." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:547 +msgid "IRC server developed from scratch." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:553 +msgid "Most popular IRC server." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:565 +msgid "" +"Any website hosted anonymously on I2P, reachable through the I2P router's" +" HTTP proxy." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:573 +msgid "" +"Distributed anonymous websites hosted\n" +"using Tahoe-LAFS-I2P, currently only reachable with Tahoe-LAFS-I2P\n" +"clients or through the Tahoe-LAFS-I2P HTTP proxy." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:583 +#, python-format +msgid "" +"Website for sponge's jump service.\n" +"Source code available." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:592 +msgid "Another jump service." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:598 +msgid "Dynamically updated eepsite index." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:604 +#, python-format +msgid "Website for zzz's jump service." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:614 +msgid "SOCKS-enabled caching web proxy with basic filtering capabilities." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:620 +msgid "" +"Privacy-focused non-caching web proxy with advanced filtering\n" +"capabilities. Excels at removing ads and other junk." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:629 +msgid "Venerable caching web proxy." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:636 +msgid "Gateways allowing users on the public Internet to access eepsites." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:643 +#, python-format +msgid "tino's inproxy on the public Internet." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:651 +#: i2p2www/pages/site/docs/applications/supported.html:660 +#: i2p2www/pages/site/docs/applications/supported.html:667 +msgid "Another inproxy on the public Internet." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:676 +msgid "" +"Gateways allowing I2P users to access content hosted on the public " +"Internet." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:683 +msgid "Publicly advertised outproxy running Squid, located in Europe." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:693 +msgid "" +"Lightweight web server and Java servlet container. I2P is tightly\n" +"integrated with a bundled copy of Jetty which by default is configured to" +"\n" +"host the user's eepsite. The " +"bundled\n" +"Jetty also serves the I2P router console and web applications bundled " +"with\n" +"I2P." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:705 +msgid "" +"In addition to Jetty, any web server should function over I2P without\n" +"modification so long as it's HTTP-compliant. Some web servers known to\n" +"currently serve content on the I2P network are:" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:714 +msgid "Most popular web server on the public WWW." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:720 +msgid "Web server and Java servlet container. More features than Jetty." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:726 +msgid "Fast lightweight web server." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:732 +msgid "High-performance lightweight web server." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:2 +msgid "Naming discussion" +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:4 +#, python-format +msgid "" +"NOTE: The following is a discussion of the reasons behind the I2P naming " +"system,\n" +"common arguments and possible alternatives.\n" +"See the naming page for current documentation." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:10 +msgid "Discarded alternatives" +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:12 +msgid "" +"Naming within I2P has been an oft-debated topic since the very beginning " +"with\n" +"advocates across the spectrum of possibilities. However, given I2P's " +"inherent\n" +"demand for secure communication and decentralized operation, the " +"traditional\n" +"DNS-style naming system is clearly out, as are \"majority rules\" voting " +"systems." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:19 +msgid "" +"I2P does not promote the use of DNS-like services though, as the damage " +"done\n" +"by hijacking a site can be tremendous - and insecure destinations have no" +"\n" +"value. DNSsec itself still falls back on registrars and certificate " +"authorities,\n" +"while with I2P, requests sent to a destination cannot be intercepted or " +"the reply\n" +"spoofed, as they are encrypted to the destination's public keys, and a " +"destination\n" +"itself is just a pair of public keys and a certificate. DNS-style " +"systems on the\n" +"other hand allow any of the name servers on the lookup path to mount " +"simple denial\n" +"of service and spoofing attacks. Adding on a certificate authenticating " +"the\n" +"responses as signed by some centralized certificate authority would " +"address many of\n" +"the hostile nameserver issues but would leave open replay attacks as well" +" as \n" +"hostile certificate authority attacks." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:33 +msgid "" +"Voting style naming is dangerous as well, especially given the " +"effectiveness of\n" +"Sybil attacks in anonymous systems - the attacker can simply create an " +"arbitrarily\n" +"high number of peers and \"vote\" with each to take over a given name. " +"Proof-of-work\n" +"methods can be used to make identity non-free, but as the network grows " +"the load\n" +"required to contact everyone to conduct online voting is implausible, or " +"if the\n" +"full network is not queried, different sets of answers may be reachable." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:42 +msgid "" +"As with the Internet however, I2P is keeping the design and operation of " +"a \n" +"naming system out of the (IP-like) communication layer. The bundled " +"naming library\n" +"includes a simple service provider interface which alternate naming systems can\n" +"plug into, allowing end users to drive what sort of naming tradeoffs they" +" prefer." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:50 +msgid "" +"See also Names: " +"Decentralized, Secure, Human-Meaningful: Choose Two." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:55 +msgid "(adapted from a post in the old Syndie, November 26, 2005)" +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:58 +msgid "" +"Q:\n" +"What to do if some hosts \n" +"do not agree on one address and if some addresses are working, others are" +" not? \n" +"Who is the right source of a name?" +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:64 +msgid "" +"A:\n" +"You don't. This is actually a critical difference between names on I2P " +"and how \n" +"DNS works - names in I2P are human readable, secure, but not globally" +" \n" +"unique. This is by design, and an inherent part of our need for " +"security." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:70 +msgid "" +"If I could somehow convince you to change the destination associated with" +" some \n" +"name, I'd successfully \"take over\" the site, and under no circumstances" +" is that \n" +"acceptable. Instead, what we do is make names locally unique: " +"they are \n" +"what you use to call a site, just as how you can call things " +"whatever \n" +"you want when you add them to your browser's bookmarks, or your IM " +"client's \n" +"buddy list. Who you call \"Boss\" may be who someone else calls " +"\"Sally\"." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:78 +msgid "Names will not, ever, be securely human readable and globally unique." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:83 +msgid "" +"The following from zzz is a review of several common\n" +"complaints about I2P's naming system." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:89 +msgid "" +"Inefficiency:\n" +"The whole hosts.txt is downloaded (if it has changed, since eepget uses " +"the etag and last-modified headers).\n" +"It's about 400K right now for almost 800 hosts." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:94 +msgid "" +"True, but this isn't a lot of traffic in the context of i2p, which is " +"itself wildly inefficient\n" +"(floodfill databases, huge encryption overhead and padding, garlic " +"routing, etc.).\n" +"If you downloaded a hosts.txt file from someone every 12 hours it " +"averages out to about 10 bytes/sec." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:99 +msgid "" +"As is usually the case in i2p, there is a fundamental tradeoff here " +"between anonymity and efficiency.\n" +"Some would say that using the etag and last-modified headers is hazardous" +" because it exposes when you\n" +"last requested the data.\n" +"Others have suggested asking for specific keys only (similar to what jump" +" services do, but\n" +"in a more automated fashion), possibly at a further cost in anonymity." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:106 +#, python-format +msgid "" +"Possible improvements would be a replacement or supplement to addressbook" +" (see %(i2host)sp),\n" +"or something simple like subscribing to http://example.i2p/cgi-" +"bin/recenthosts.cgi rather than http://example.i2p/hosts.txt.\n" +"If a hypothetical recenthosts.cgi distributed all hosts from the last 24 " +"hours, for example,\n" +"that could be both more efficient and more anonymous than the current " +"hosts.txt with last-modified and etag." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:112 +#, python-format +msgid "" +"A sample implementation is on stats.i2p at\n" +"%(url)s.\n" +"This script returns an Etag with a timestamp.\n" +"When a request comes in with the If-None-Match etag,\n" +"the script ONLY returns new hosts since that timestamp, or 304 Not " +"Modified if there are none.\n" +"In this way, the script efficiently returns only the hosts the subscriber" +"\n" +"does not know about, in an addressbook-compatible manner." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:121 +msgid "" +"So the inefficiency is not a big issue and there are several ways to " +"improve things without\n" +"radical change." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:127 +msgid "" +"Not Scalable:\n" +"The 400K hosts.txt (with linear search) isn't that big at the moment and\n" +"we can probably grow by 10x or 100x before it's a problem." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:132 +msgid "" +"As far as network traffic see above.\n" +"But unless you're going to do a slow real-time query over the network for" +"\n" +"a key, you need to have the whole set of keys stored locally, at a cost " +"of about 500 bytes per key." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:139 +msgid "" +"Requires configuration and \"trust\":\n" +"Out-of-the-box addressbook is only subscribed to " +"http://www.i2p2.i2p/hosts.txt, which is rarely updated,\n" +"leading to poor new-user experience." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:144 +msgid "" +"This is very much intentional. jrandom wants a user to \"trust\" a " +"hosts.txt\n" +"provider, and as he likes to say, \"trust is not a boolean\".\n" +"The configuration step attempts to force users to think about issues of " +"trust in an anonymous network." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:149 +msgid "" +"As another example, the \"Eepsite Unknown\" error page in the HTTP Proxy\n" +"lists some jump services, but doesn't \"recommend\" any one in " +"particular,\n" +"and it's up to the user to pick one (or not).\n" +"jrandom would say we trust the listed providers enough to list them but " +"not enough to\n" +"automatically go fetch the key from them." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:156 +msgid "" +"How successful this is, I'm not sure.\n" +"But there must be some sort of hierarchy of trust for the naming system.\n" +"To treat everyone equally may increase the risk of hijacking." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:163 +msgid "It isn't DNS" +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:166 +msgid "" +"Unfortunately real-time lookups over i2p would significantly slow down " +"web browsing." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:169 +msgid "" +"Also, DNS is based on lookups with limited caching and time-to-live, " +"while i2p\n" +"keys are permanent." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:173 +msgid "Sure, we could make it work, but why? It's a bad fit." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:178 +msgid "" +"Not reliable:\n" +"It depends on specific servers for addressbook subscriptions." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:182 +msgid "" +"Yes it depends on a few servers that you have configured.\n" +"Within i2p, servers and services come and go.\n" +"Any other centralized system (for example DNS root servers) would\n" +"have the same problem. A completely decentralized system (everybody is " +"authoritative)\n" +"is possible by implementing an \"everybody is a root DNS server\" " +"solution, or by\n" +"something even simpler, like a script that adds everybody in your " +"hosts.txt to your addressbook." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:190 +msgid "" +"People advocating all-authoritative solutions generally haven't thought " +"through\n" +"the issues of conflicts and hijacking, however." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:196 +msgid "" +"Awkward, not real-time:\n" +"It's a patchwork of hosts.txt providers, key-add web form providers, jump" +" service providers,\n" +"eepsite status reporters.\n" +"Jump servers and subscriptions are a pain, it should just work like DNS." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:202 +msgid "See the reliability and trust sections." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:207 +msgid "" +"So, in summary, the current system is not horribly broken, inefficient, " +"or un-scalable,\n" +"and proposals to \"just use DNS\" aren't well thought-through." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:212 +msgid "Alternatives" +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:213 +msgid "" +"The I2P source contains several pluggable naming systems and supports " +"configuration options\n" +"to enable experimentation with naming systems." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:218 +msgid "" +"Meta - calls two or more other naming systems in order.\n" +"By default, calls PetName then HostsTxt." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:222 +msgid "" +"PetName - Looks up in a petnames.txt file.\n" +"The format for this file is NOT the same as hosts.txt." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:226 +msgid "HostsTxt - Looks up in the following files, in order:" +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:234 +msgid "" +"AddressDB - Each host is listed in a separate file in a addressDb/" +" directory." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:237 +msgid "" +"Eepget - does an HTTP lookup request from an external\n" +"server - must be stacked after the HostsTxt lookup with Meta.\n" +"This could augment or replace the jump system.\n" +"Includes in-memory caching." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:243 +msgid "" +"Exec - calls an external program for lookup, allows\n" +"additional experimentation in lookup schemes, independent of java.\n" +"Can be used after HostsTxt or as the sole naming system.\n" +"Includes in-memory caching." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:249 +msgid "Dummy - used as a fallback for Base64 names, otherwise fails." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:253 +msgid "" +"The current naming system can be changed with the advanced config option " +"'i2p.naming.impl'\n" +"(restart required).\n" +"See core/java/src/net/i2p/client/naming for details." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:258 +msgid "" +"Any new system should be stacked with HostsTxt, or should\n" +"implement local storage and/or the addressbook subscription functions, " +"since addressbook\n" +"only knows about the hosts.txt files and format." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:264 +msgid "Certificates" +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:265 +msgid "" +"I2P destinations contain a certificate, however at the moment that " +"certificate\n" +"is always null.\n" +"With a null certificate, base64 destinations are always 516 bytes ending " +"in \"AAAA\",\n" +"and this is checked in the addressbook merge mechanism, and possibly " +"other places.\n" +"Also, there is no method available to generate a certificate or add it to" +" a\n" +"destination. So these will have to be updated to implement certificates." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:273 +#, python-format +msgid "" +"One possible use of certificates is for proof of work." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:276 +msgid "" +"Another is for \"subdomains\" (in quotes because there is really no such " +"thing,\n" +"i2p uses a flat naming system) to be signed by the 2nd level domain's " +"keys." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:280 +msgid "" +"With any certificate implementation must come the method for verifying " +"the\n" +"certificates.\n" +"Presumably this would happen in the addressbook merge code.\n" +"Is there a method for multiple types of certificates, or multiple " +"certificates?" +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:286 +msgid "" +"Adding on a certificate authenticating the\n" +"responses as signed by some centralized certificate authority would " +"address many of\n" +"the hostile nameserver issues but would leave open replay attacks as well" +" as \n" +"hostile certificate authority attacks." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:2 +msgid "ElGamal/AES + SessionTag Encryption" +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:7 +msgid "ElGamal/AES+SessionTags is used for end-to-end encryption." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:11 +msgid "" +"As an unreliable, unordered, message based system, I2P uses a simple " +"combination \n" +"of asymmetric and symmetric encryption algorithms to provide data " +"confidentiality \n" +"and integrity to garlic messages. As a whole, the combination is referred" +" \n" +"to as ElGamal/AES+SessionTags, but that is an excessively verbose way to " +"describe \n" +"the use of 2048bit ElGamal, AES256, SHA256, and 32 byte nonces." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:19 +#: i2p2www/pages/site/docs/how/tech-intro.html:508 +msgid "" +"The first time a router wants to encrypt a garlic message to another " +"router, \n" +"they encrypt the keying material for an AES256 session key with ElGamal " +"and \n" +"append the AES256/CBC encrypted payload after that encrypted ElGamal " +"block. \n" +"In addition to the encrypted payload, the AES encrypted section contains " +"the \n" +"payload length, the SHA256 hash of the unencrypted payload, as well as a " +"number \n" +"of \"session tags\" - random 32 byte nonces. The next time the sender " +"wants \n" +"to encrypt a garlic message to another router, rather than ElGamal " +"encrypt \n" +"a new session key they simply pick one of the previously delivered " +"session \n" +"tags and AES encrypt the payload like before, using the session key used " +"with \n" +"that session tag, prepended with the session tag itself. When a router " +"receives \n" +"a garlic encrypted message, they check the first 32 bytes to see if it " +"matches \n" +"an available session tag - if it does, they simply AES decrypt the " +"message, \n" +"but if it does not, they ElGamal decrypt the first block." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:35 +#: i2p2www/pages/site/docs/how/tech-intro.html:524 +msgid "" +"Each session tag can be used only once so as to prevent internal " +"adversaries \n" +"from unnecessarily correlating different messages as being between the " +"same \n" +"routers. The sender of an ElGamal/AES+SessionTag encrypted message " +"chooses \n" +"when and how many tags to deliver, prestocking the recipient with enough " +"tags \n" +"to cover a volley of messages. Garlic messages may detect the successful " +"tag \n" +"delivery by bundling a small additional message as a clove (a \"delivery " +"status \n" +"message\") - when the garlic message arrives at the intended recipient " +"and \n" +"is decrypted successfully, this small delivery status message is one of " +"the \n" +"cloves exposed and has instructions for the recipient to send the clove " +"back \n" +"to the original sender (through an inbound tunnel, of course). When the " +"original \n" +"sender receives this delivery status message, they know that the session " +"tags \n" +"bundled in the garlic message were successfully delivered." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:50 +msgid "" +"Session tags themselves have a short lifetime, after which they are \n" +"discarded if not used. In addition, the quantity stored for each key is " +"limited, \n" +"as are the number of keys themselves - if too many arrive, either new or " +"old \n" +"messages may be dropped. The sender keeps track whether messages using " +"session \n" +"tags are getting through, and if there isn't sufficient communication it " +"may \n" +"drop the ones previously assumed to be properly delivered, reverting back" +" \n" +"to the full expensive ElGamal encryption.\n" +"A session will continue to exist until all its tags are exhausted or " +"expire." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:61 +msgid "" +"Sessions are unidirectional. Tags are delivered from Alice to Bob,\n" +"and Alice then uses the tags, one by one, in subsequent messages to Bob." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:66 +msgid "" +"Sessions may be established between Destinations, between Routers, or\n" +"between a Router and a Destination.\n" +"Each Router and Destination maintains its own Session Key Manager to\n" +"keep track of Session Keys and Session Tags.\n" +"Separate Session Key Managers prevents correlation of multiple " +"Destinations\n" +"to each other or a Router by adversaries." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:77 +msgid "Message Reception" +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:78 +msgid "" +"Each message received has one of two\n" +"the two possible conditions:

" +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:84 +msgid "" +"It is part of an existing session and contains a Session Tag and an AES " +"encrypted block" +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:85 +msgid "It is for a new session and contains both ElGamal and AES encrypted blocks" +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:88 +msgid "" +"When a router receives a message, it will first assume it is from\n" +"an existing session and attempt to look up the Session Tag and decrypt " +"the following data using AES.\n" +"If that fails, it will assume it is for a new session and attempt to\n" +"decrypt it using ElGamal." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:97 +msgid "New Session Message Specification" +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:98 +msgid "" +"A New Session ElGamal Message contains two parts, an encrypted ElGamal " +"block\n" +"and an encrypted AES block." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:103 +msgid "The encrypted message contains:" +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:127 +msgid "ElGamal Block" +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:128 +msgid "The encrypted ElGamal Block is always 514 bytes long." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:132 +msgid "The unencrypted ElGamal data is 222 bytes long, containing:" +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:164 +#, python-format +msgid "" +"The 32-byte\n" +"Session Key\n" +"is the identifier for the session.\n" +"The 32-byte Pre-IV will be used to generate the IV for the AES block that" +" follows;\n" +"the IV is the first 16 bytes of the SHA-256 Hash of the Pre-IV." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:172 +#, python-format +msgid "" +"The 222 byte payload is encrypted\n" +"using ElGamal\n" +"and the encrypted block is 514 bytes long.\n" +"

" +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:179 +msgid "AES Block" +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:180 +msgid "The unencrypted data in the AES block contains the following:" +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:254 +msgid "Minimum length: 48 bytes" +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:257 +#, python-format +msgid "" +"The data is then AES Encrypted,\n" +"using the session key and IV (calculated from the pre-IV) from the " +"ElGamal section.\n" +"The encrypted AES Block length is variable but is always a multiple of 16" +" bytes.\n" +"

" +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:266 +#, python-format +msgid "" +"Actual max payload length, and max block length, is less than 64 KB; see " +"the I2NP Overview." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:269 +msgid "New Session Key is currently unused and is never present." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:274 +msgid "Existing Session Message Specification" +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:275 +msgid "" +"The session tags delivered successfully are remembered for a \n" +"brief period (15 minutes currently) until they are used or discarded.\n" +"A tag is used by packaging one in an Existing Session Message that\n" +"contains only an AES encrypted block, and is not preceded by an\n" +"ElGamal block." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:283 +msgid "" +"The existing session message is\n" +"as follows:" +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:318 +msgid "" +"The session tag also serves as\n" +"the pre-IV. The IV is the first 16 bytes of the SHA-256 Hash of the " +"sessionTag." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:323 +msgid "" +"To decode a message from an existing session, a router looks up the " +"Session Tag to find an\n" +"associated Session Key. If the Session Tag is found, the AES block is " +"decrypted using the associated Session Key.\n" +"If the tag is not found, the message is assumed to be a New Session Message." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:331 +msgid "Session Tag Configuration Options" +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:332 +#, python-format +msgid "" +"As of release 0.9.2, the client may configure the default number of " +"Session Tags to send\n" +"and the low tag threshold for the current session.\n" +"For brief streaming connections or datagrams, these options may be used " +"to significantly reduce bandwidth.\n" +"See the I2CP options specification for " +"details.\n" +"The session settings may also be overridden on a per-message basis.\n" +"See the I2CP Send Message" +" Expires specification for details." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:345 +msgid "" +"There are many possible areas to tune the Session Key Manager's " +"algorithms;\n" +"some may interact with the streaming library behavior, or have " +"significant\n" +"impact on overall performance." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:352 +msgid "" +"The number of tags delivered could depend on message size, keeping in " +"mind\n" +"the eventual padding to 1KB at the tunnel message layer." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:357 +msgid "" +"Clients could send an estimate of session lifetime to the router, as an " +"advisory\n" +"on the number of tags required." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:362 +msgid "" +"Delivery of too few tags causes the router to fall back to an expensive " +"ElGamal encryption." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:366 +msgid "" +"The router may assume delivery of Session Tags, or await acknowledgement " +"before using them;\n" +"there are tradeoffs for each strategy." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:371 +msgid "" +"For very brief messages, almost the full 222 bytes of the pre-IV and " +"padding fields in the ElGamal block\n" +"could be used for the entire message, instead of establishing a session." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:376 +msgid "" +"Evaluate padding strategy; currently we pad to a minimum of 128 bytes.\n" +"Would be better to add a few tags to small messages than pad." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:381 +msgid "" +"Perhaps things could be more efficient if the Session Tag system was " +"bidirectional,\n" +"so tags delivered in the 'forward' path could be used in the 'reverse' " +"path,\n" +"thus avoiding ElGamal in the initial response.\n" +"The router currently plays some tricks like this when sending\n" +"tunnel test messages to itself." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:389 +#, python-format +msgid "" +"Change from Session Tags to\n" +"a synchronized PRNG." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:394 +#, python-format +msgid "" +"Several of these ideas may require a new I2NP message type, or\n" +"set a flag in the\n" +"Delivery" +" Instructions,\n" +"or set a magic number in the first few bytes of the Session Key field\n" +"and accept a small risk of the random Session Key matching the magic " +"number." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:2 +msgid "Garlic Routing" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:3 +msgid "March 2014" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:6 +msgid "Garlic Routing and \"Garlic\" Terminology" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:7 +msgid "" +"The terms \"garlic routing\" and \"garlic encryption\" are often used " +"rather loosely when referring to I2P's technology.\n" +"Here, we explain the history of the terms, the various meanings, and\n" +"the usage of \"garlic\" methods in I2P." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:13 +msgid "" +"\"Garlic routing\" was first coined by\n" +"Michael J. Freedman\n" +"in Roger Dingledine's Free Haven \n" +"Master's thesis " +"Section 8.1.1 (June 2000), as derived from \n" +"Onion Routing." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:21 +msgid "" +"\"Garlic\" may have been used originally by I2P developers because I2P " +"implements a form of\n" +"bundling as Freedman describes, or simply to emphasize general " +"differences from Tor.\n" +"The specific reasoning may be lost to history.\n" +"Generally, when referring to I2P, the term \"garlic\" may mean one of " +"three things:" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:28 +#: i2p2www/pages/site/docs/how/garlic-routing.html:39 +msgid "Layered Encryption" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:29 +msgid "Bundling multiple messages together" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:30 +#: i2p2www/pages/site/docs/how/garlic-routing.html:96 +msgid "ElGamal/AES Encryption" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:33 +msgid "" +"Unfortunately, I2P's usage of \"garlic\" terminology over the past seven " +"years has not always been precise; therefore the reader is\n" +"cautioned when encountering the term.\n" +"Hopefully, the explanation below will make things clear." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:40 +msgid "" +"Onion routing is a technique for building paths, or tunnels, through a " +"series of peers,\n" +"and then using that tunnel.\n" +"Messages are repeatedly encrypted by the originator, and then decrypted " +"by each hop.\n" +"During the building phase, only the routing instructions for the next hop" +" are exposed to each peer.\n" +"During the operating phase, messages are passed through the tunnel, and " +"the\n" +"message and its routing instructions are only exposed to the endpoint of " +"the tunnel." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:49 +#, python-format +msgid "" +"This is similar to the way Mixmaster\n" +"(see network comparisons) sends messages " +"- taking a message, encrypting it\n" +"to the recipient's public key, taking that encrypted message and " +"encrypting\n" +"it (along with instructions specifying the next hop), and then taking " +"that\n" +"resulting encrypted message and so on, until it has one layer of " +"encryption\n" +"per hop along the path." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:58 +msgid "" +"In this sense, \"garlic routing\" as a general concept is identical to " +"\"onion routing\".\n" +"As implemented in I2P, of course, there are several differences from the " +"implementation in Tor; see below.\n" +"Even so, there are substantial similarities such that I2P benefits from a" +"\n" +"large amount of" +" academic research on onion routing,\n" +"Tor, and similar " +"mixnets." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:67 +msgid "Bundling Multiple Messages" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:68 +msgid "" +"Michael Freedman defined \"garlic routing\" as an extension to onion " +"routing,\n" +"in which multiple messages are bundled together.\n" +"He called each message a \"bulb\".\n" +"All the messages, each with its own delivery instructions, are exposed at" +" the\n" +"endpoint.\n" +"This allows the efficient bundling of an onion routing \"reply block\" " +"with the original message." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:77 +msgid "" +"This concept is implemented in I2P, as described below.\n" +"Our term for garlic \"bulbs\" is \"cloves\".\n" +"Any number of messages can be\n" +"contained, instead of just a single message.\n" +"This is a significant distinction from the onion routing implemented in " +"Tor.\n" +"However, it is only one of many major architectural differences between " +"I2P and Tor;\n" +"perhaps it is not, by itself, enough to justify a change in terminology." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:87 +msgid "" +"Another difference\n" +"from the method described by Freedman\n" +"is that the path is unidirectional - there is no \"turning point\" as " +"seen in onion routing\n" +"or mixmaster reply blocks, which greatly simplifies the algorithm and " +"allows for more flexible\n" +"and reliable delivery." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:97 +#, python-format +msgid "" +"In some cases, \"garlic encryption\" may simply mean\n" +"ElGamal/AES+SessionTag encryption\n" +"(without multiple layers)." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:105 +msgid "\"Garlic\" Methods in I2P" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:106 +msgid "" +"Now that we've defined various \"garlic\" terms, we can say that\n" +"I2P uses garlic routing, bundling and encryption in three places:" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:111 +msgid "For building and routing through tunnels (layered encryption)" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:112 +msgid "" +"For determining the success or failure of end to end message delivery " +"(bundling)" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:113 +msgid "" +"For publishing some network database entries (dampening the probability " +"of a successful traffic analysis attack) (ElGamal/AES)" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:116 +msgid "" +"There are also significant ways that this technique can be used to " +"improve the performance of the network, \n" +"exploiting transport latency/throughput tradeoffs, and branching data " +"through redundant paths to increase reliability." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:122 +msgid "Tunnel Building and Routing" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:123 +msgid "" +"In I2P, tunnels are unidirectional. Each party builds two tunnels,\n" +"one for outbound and one for inbound traffic.\n" +"Therefore, four tunnels are required for a single round-trip message and " +"reply." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:129 +#, python-format +msgid "" +"Tunnels are built, and then used, with layered encryption.\n" +"This is described on the\n" +"tunnel implementation page.\n" +"Tunnel building details are defined on\n" +"this page.\n" +"We use\n" +"ElGamal/AES+SessionTag for the encryption." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:141 +#, python-format +msgid "" +"Tunnels are a general-purpose mechanism to transport all\n" +"I2NP messages, and\n" +"Garlic Messages are not used to " +"build tunnels.\n" +"We do not bundle multiple\n" +"I2NP messages into a single\n" +"Garlic Message for unwrapping at " +"the outbound tunnel endpoint;\n" +"the tunnel encryption is sufficient." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:152 +msgid "End-to-End Message Bundling" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:153 +#, python-format +msgid "" +"At the layer above tunnels, I2P delivers end-to-end messages between\n" +"Destinations.\n" +"Just as within a single tunnel, we use\n" +"ElGamal/AES+SessionTag for the encryption." +"\n" +"Each client message as delivered to the router through the\n" +"I2CP interface becomes a single\n" +"Garlic Clove\n" +"with its own\n" +"Delivery " +"Instructions,\n" +"inside a\n" +"Garlic Message.\n" +"Delivery Instructions may specify a Destination, Router, or Tunnel." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:171 +msgid "" +"Generally, a Garlic Message will contain only one clove.\n" +"However, the router will periodically bundle two additional\n" +"cloves in the Garlic Message:" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:176 +msgid "Garlic Message Cloves" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:179 +#, python-format +msgid "" +"A\n" +"Delivery Status Message,\n" +"with\n" +"Delivery " +"Instructions\n" +"specifying that it be sent back to the originating router as an " +"acknowledgment.\n" +"This is similar to the \"reply block\" or \"reply onion\"\n" +"described in the references.\n" +"It is used for determining the success or failure of end to end message " +"delivery.\n" +"The originating router may, upon failure to receive the Delivery Status " +"Message\n" +"within the expected time period, modify the routing to the far-end " +"Destination,\n" +"or take other actions." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:192 +#, python-format +msgid "" +"A\n" +"Database Store Message,\n" +"containing a\n" +"LeaseSet\n" +"for the originating Destination, with\n" +"Delivery " +"Instructions\n" +"specifying the far-end destination's router.\n" +"By periodically bundling a LeaseSet, the router ensures that the far-end " +"will be able\n" +"to maintain communications.\n" +"Otherwise the far-end would have to query a floodfill router for the " +"network database entry,\n" +"and all LeaseSets would have to be published to the network database, as " +"explained on the\n" +"network database page." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:210 +#, python-format +msgid "" +"By default, the Delivery Status and Database Store Messages\n" +"are bundled when the local LeaseSet changes, when additional\n" +"Session Tags\n" +"are delivered, or if the messages have not been bundled in the previous " +"minute.\n" +"As of release 0.9.2, the client may configure the default number of " +"Session Tags to send\n" +"and the low tag threshold for the current session.\n" +"See the I2CP options specification for " +"details.\n" +"The session settings may also be overridden on a per-message basis.\n" +"See the I2CP Send Message" +" Expires specification for details." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:224 +msgid "" +"Obviously, the additional messages are currently bundled for specific " +"purposes,\n" +"and not part of a general-purpose routing scheme." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:229 +msgid "" +"As of release 0.9.12, the Delivery Status Message is wrapped in another " +"Garlic Message\n" +"by the originator so that the contents are encrypted and not visible to " +"routers on the return path." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:235 +msgid "Storage to the Floodfill Network Database" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:236 +#, python-format +msgid "" +"As explained on the\n" +"network database page,\n" +"local\n" +"LeaseSets\n" +"are sent to floodfill routers in a\n" +"Database Store Message\n" +"wrapped in a\n" +"Garlic Message\n" +"so it is not visible to the tunnel's outbound gateway." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:252 +#, python-format +msgid "" +"The Garlic Message mechanism is very flexible and provides a structure " +"for\n" +"implementing many types of mixnet delivery methods.\n" +"Together with the unused delay option in the\n" +"tunnel" +" message Delivery Instructions,\n" +"a wide spectrum of batching, delay, mixing, and routing strategies are " +"possible." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:260 +msgid "" +"In particular, there is potential for much more flexibility at the " +"outbound tunnel endpoint.\n" +"Messages could possibly be routed from there to one of several tunnels\n" +"(thus minimizing point-to-point connections), or multicast to several " +"tunnels\n" +"for redundancy, or streaming audio and video." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:267 +msgid "" +"Such experiments may conflict with the need to ensure security and " +"anonymity, such\n" +"as limiting certain routing paths, restricting the types of I2NP messages" +" that may\n" +"be forwarded along various paths, and enforcing certain message " +"expiration times." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:273 +#, python-format +msgid "" +"As a part of\n" +"ElGamal/AES encryption,\n" +"a garlic message contains a sender\n" +"specified amount of padding data, allowing the sender to take active " +"countermeasures \n" +"against traffic analysis.\n" +"This is not currently used, beyond the requirement to pad to a multiple " +"of 16 bytes." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:282 +#, python-format +msgid "" +"Encryption of additional messages to and from the\n" +"floodfill routers." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:290 +#: i2p2www/pages/site/docs/how/peer-selection.html:296 +msgid "References" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:292 +msgid "" +"The term garlic routing was first coined in Roger Dingledine's Free Haven" +" \n" +"Master's thesis " +"(June 2000),\n" +"see Section 8.1.1 authored by\n" +"Michael J. Freedman." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:299 +msgid "Onion router publications" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:301 +msgid "Onion Routing on Wikipedia" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:303 +msgid "Garlic Routing on Wikipedia" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:305 +#, python-format +msgid "" +"I2P Meeting 58 (2003) discussing the " +"implementation of garlic routing" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:311 +msgid "Free Haven publications" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:313 +msgid "" +"Onion routing was first described in Hiding Routing Information\n" +"by David M. Goldschlag, Michael G. Reed, and Paul F. Syverson in 1996." +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:2 +msgid "A Gentle Introduction to How I2P Works" +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:4 +msgid "" +"I2P is a project to build, deploy, and maintain a network supporting " +"secure and anonymous\n" +"communication. People using I2P are in control of the tradeoffs between " +"anonymity, reliability,\n" +"bandwidth usage, and latency. There is no central point in the network on" +" which pressure can be\n" +"exerted to compromise the integrity, security, or anonymity of the " +"system. The network supports\n" +"dynamic reconfiguration in response to various attacks, and has been " +"designed to make use of\n" +"additional resources as they become available. Of course, all aspects of " +"the network are open and\n" +"freely available." +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:14 +msgid "" +"Unlike many other anonymizing networks, I2P doesn't try to provide " +"anonymity by hiding the\n" +"originator of some communication and not the recipient, or the other way " +"around. I2P is designed to\n" +"allow peers using I2P to communicate with each other anonymously — " +"both sender and recipient\n" +"are unidentifiable to each other as well as to third parties. For " +"example, today there are both\n" +"in-I2P web sites (allowing anonymous publishing / hosting) as well as " +"HTTP proxies to the normal web\n" +"(allowing anonymous web browsing). Having the ability to run servers " +"within I2P is essential, as it\n" +"is quite likely that any outbound proxies to the normal Internet will be " +"monitored, disabled, or\n" +"even taken over to attempt more malicious attacks." +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:25 +#, python-format +msgid "" +"The network itself is message oriented - it is essentially a secure and " +"anonymous IP layer, where\n" +"messages are addressed to cryptographic keys (Destinations) and can be " +"significantly larger than IP\n" +"packets. Some example uses of the network include \"eepsites\" " +"(webservers hosting normal web\n" +"applications within I2P), a BitTorrent client (\"I2PSnark\"), or a " +"distributed data store. With the\n" +"help of the I2PTunnel application, we are " +"able to stream traditional\n" +"TCP/IP applications over I2P, such as SSH, IRC, a squid proxy, and even " +"streaming audio. Most people\n" +"will not use I2P directly, or even need to know they're using it. Instead" +" their view will be of one\n" +"of the I2P enabled applications, or perhaps as a little controller app to" +" turn on and off various\n" +"proxies to enable the anonymizing functionality." +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:37 +#, python-format +msgid "" +"An essential part of designing, developing, and testing an anonymizing " +"network is to define the threat model, since there is no such thing " +"as \"true\" anonymity, just\n" +"increasingly expensive costs to identify someone. Briefly, I2P's intent " +"is to allow people to\n" +"communicate in arbitrarily hostile environments by providing good " +"anonymity, mixed in with\n" +"sufficient cover traffic provided by the activity of people who require " +"less anonymity. This way,\n" +"some users can avoid detection by a very powerful adversary, while others" +" will try to evade a weaker\n" +"entity, all on the same network, where each one's messages are " +"essentially indistinguishable\n" +"from the others." +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:48 +msgid "Why?" +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:49 +#, python-format +msgid "" +"There are a multitude of reasons why we need a system to support " +"anonymous communication, and\n" +"everyone has their own personal rationale. There are many other\n" +"efforts working on finding ways to provide varying degrees of " +"anonymity to people through the\n" +"Internet, but we could not find any that met our needs or threat model." +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:56 +msgid "How?" +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:58 +#, python-format +msgid "" +"The network at a glance is made up of a set of nodes (\"routers\") with a" +" number of unidirectional\n" +"inbound and outbound virtual paths (\"tunnels\", as outlined on the tunnel routing page). Each router is " +"identified by a cryptographic RouterIdentity which is\n" +"typically long lived. These routers communicate with each other through " +"existing transport\n" +"mechanisms (TCP, UDP, etc), passing various messages. Client applications" +" have their own\n" +"cryptographic identifier (\"Destination\") which enables it to send and " +"receive messages. These\n" +"clients can connect to any router and authorize the temporary allocation " +"(\"lease\") of some tunnels\n" +"that will be used for sending and receiving messages through the network." +" I2P has its own internal\n" +"network database (using a modification of the " +"Kademlia algorithm) for\n" +"distributing routing and contact information securely." +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:71 +msgid "Network topology example" +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:73 +msgid "" +"In the above, Alice, Bob, Charlie, and Dave are all running routers with " +"a single Destination on\n" +"their local router. They each have a pair of 2-hop inbound tunnels per " +"destination (labeled 1, 2, 3,\n" +"4, 5 and 6), and a small subset of each of those router's outbound tunnel" +" pool is shown with 2-hop\n" +"outbound tunnels. For simplicity, Charlie's inbound tunnels and Dave's " +"outbound tunnels are not\n" +"shown, nor are the rest of each router's outbound tunnel pool (typically " +"stocked with a few tunnels\n" +"at a time). When Alice and Bob talk to each other, Alice sends a message " +"out one of her (pink)\n" +"outbound tunnels targeting one of Bob's (green) inbound tunnels (tunnel 3" +" or 4). She knows to send\n" +"to those tunnels on the correct router by querying the network database, " +"which is constantly updated\n" +"as new leases are authorized and old ones expire." +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:85 +#, python-format +msgid "" +"If Bob wants to reply to Alice, he simply goes through the same process -" +" send a message out one of\n" +"his outbound tunnels targeting one of Alice's inbound tunnels (tunnel 1 " +"or 2). To make things\n" +"easier, most messages sent between Alice and Bob are garlic\n" +"wrapped, bundling the sender's own current lease information so that the " +"recipient can reply\n" +"immediately without having to look in the network database for the " +"current data." +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:93 +#, python-format +msgid "" +"To deal with a wide range of attacks, I2P is fully distributed with no " +"centralized resources - and\n" +"hence there are no directory servers keeping statistics regarding the " +"performance and reliability of\n" +"routers within the network. As such, each router must keep and maintain " +"profiles of various routers\n" +"and is responsible for selecting appropriate peers to meet the anonymity," +" performance, and\n" +"reliability needs of the users, as described in the peer selection\n" +"page." +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:102 +#, python-format +msgid "" +"The network itself makes use of a significant number of cryptographic\n" +"techniques and algorithms - a full laundry list includes 2048bit " +"ElGamal encryption, 256bit AES\n" +"in CBC mode with PKCS#5 padding, 1024bit DSA signatures, SHA256 hashes, " +"2048bit Diffie-Hellman\n" +"negotiated connections with station to station authentication, and ElGamal / AES+SessionTag." +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:110 +msgid "" +"Content sent over I2P is encrypted through three layers garlic encryption" +" (used to verify the\n" +"delivery of the message to the recipient), tunnel encryption (all " +"messages passing through a tunnel\n" +"is encrypted by the tunnel gateway to the tunnel endpoint), and inter " +"router transport layer\n" +"encryption (e.g. the TCP transport uses AES256 with ephemeral keys)." +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:117 +msgid "" +"End-to-end (I2CP) encryption (client application to server application) " +"was disabled in I2P release\n" +"0.6; end-to-end (garlic) encryption (I2P client router to I2P server " +"router) from Alice's router \"a\"\n" +"to Bob's router \"h\" remains. Notice the different use of terms! All " +"data from a to h is end-to-end\n" +"encrypted, but the I2CP connection between the I2P router and the " +"applications is not end-to-end\n" +"encrypted! A and h are the routers of Alice and Bob, while Alice and Bob " +"in following chart are the\n" +"applications running atop of I2P." +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:126 +msgid "End to end layered encryption" +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:128 +#, python-format +msgid "" +"The specific use of these algorithms are outlined elsewhere." +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:132 +msgid "" +"The two main mechanisms for allowing people who need strong anonymity to " +"use the network are\n" +"explicitly delayed garlic routed messages and more comprehensive tunnels " +"to include support for\n" +"pooling and mixing messages. These are currently planned for release 3.0," +" but garlic routed messages\n" +"with no delays and FIFO tunnels are currently in place. Additionally, the" +" 2.0 release will allow\n" +"people to set up and operate behind restricted routes (perhaps with " +"trusted peers), as well as the\n" +"deployment of more flexible and anonymous transports." +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:141 +#, python-format +msgid "" +"Some questions have been raised with regards to the scalability of I2P, " +"and reasonably so. There\n" +"will certainly be more analysis over time, but peer lookup and " +"integration should be bounded by\n" +"O(log(N)) due to the network " +"database's algorithm, while end\n" +"to end messages should be O(1) (scale free), since messages " +"go out K hops through the\n" +"outbound tunnel and another K hops through the inbound tunnel, with K no " +"longer than 3. The size of\n" +"the network (N) bears no impact." +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:150 +msgid "When?" +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:151 +#, python-format +msgid "" +"I2P initially began in Feb 2003 as a proposed modification to Freenet to allow it to use " +"alternate transports, such as JMS, then grew into its own as an\n" +"'anonCommFramework' in April 2003, turning into I2P in July, with code " +"being written in earnest\n" +"starting in August '03. I2P is currently under development, following the" +" roadmap." +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:161 +msgid "Who?" +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:162 +#, python-format +msgid "" +"We have a small team spread around several " +"continents, working to advance\n" +"different aspects of the project. We are very open to other developers " +"who want to get involved and\n" +"anyone else who would like to contribute in other ways, such as " +"critiques, peer review, testing,\n" +"writing I2P enabled applications, or documentation. The entire system is " +"open source - the router\n" +"and most of the SDK are outright public domain with some BSD and Cryptix " +"licensed code, while some\n" +"applications like I2PTunnel and I2PSnark are GPL. Almost everything is " +"written in Java (1.5+),\n" +"though some third party applications are being written in Python and " +"other languages. The code works\n" +"on Sun Java SE and other Java Virtual" +" Machines." +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:173 +msgid "Where?" +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:174 +#, python-format +msgid "" +"Anyone interested should join us on the IRC channel #i2p-dev (hosted " +"concurrently on irc.freenode.net,\n" +"irc.postman.i2p, irc.echelon.i2p, irc.dg.i2p and irc.oftc.net). There are" +" currently no\n" +"scheduled development meetings, however archives" +" are available." +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:180 +#, python-format +msgid "The current source is available in monotone." +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:185 +#, python-format +msgid "See the Index to Technical Documentation." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:2 +msgid "The Network Database" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:3 +#: i2p2www/pages/site/docs/transport/ntcp.html:3 +#: i2p2www/pages/site/docs/transport/ssu.html:3 +msgid "September 2017" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:8 +msgid "" +"I2P's netDb is a specialized distributed database, containing \n" +"just two types of data - router contact information (RouterInfos) " +"and destination contact\n" +"information (LeaseSets). Each piece of data is signed by the " +"appropriate party and verified\n" +"by anyone who uses or stores it. In addition, the data has liveliness " +"information\n" +"within it, allowing irrelevant entries to be dropped, newer entries to " +"replace\n" +"older ones, and protection against certain classes of attack." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:17 +msgid "" +"The netDb is distributed with a simple technique called \"floodfill\",\n" +"where a subset of all routers, called \"floodfill routers\", maintains " +"the distributed database." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:25 +msgid "" +"When an I2P router wants to contact another router, they need to know " +"some \n" +"key pieces of data - all of which are bundled up and signed by the router" +" into\n" +"a structure called the \"RouterInfo\", which is distributed with the " +"SHA256 of the router's identity\n" +"as the key. The structure itself contains:" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:32 +msgid "" +"The router's identity (a 2048bit ElGamal encryption key, a signing key, " +"and a certificate)" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:33 +msgid "" +"The contact addresses at which it can be reached (e.g. TCP: example.org " +"port 4108)" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:34 +msgid "When this was published" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:35 +msgid "A set of arbitrary text options" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:36 +msgid "The signature of the above, generated by the identity's signing key" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:39 +msgid "Expected Options" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:41 +msgid "" +"The following text options, while not strictly required, are expected\n" +"to be present:" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:47 +msgid "" +"Capabilities flags - used to indicate floodfill participation, " +"approximate bandwidth, and perceived reachability" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:49 +#: i2p2www/pages/site/docs/how/network-database.html:287 +msgid "Floodfill" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:50 +msgid "Hidden" +msgstr "Skryté" + +#: i2p2www/pages/site/docs/how/network-database.html:51 +#, python-format +msgid "Under %(amount)s shared bandwidth" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:52 +#: i2p2www/pages/site/docs/how/network-database.html:53 +#: i2p2www/pages/site/docs/how/network-database.html:54 +#: i2p2www/pages/site/docs/how/network-database.html:55 +#: i2p2www/pages/site/docs/how/network-database.html:56 +#, python-format +msgid "%(amount)s shared bandwidth" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:52 +msgid "default" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:57 +msgid "Reachable" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:58 +msgid "Unreachable" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:59 +#, python-format +msgid "Over %(amount)s shared bandwidth" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:66 +msgid "The core library version, always the same as the router version" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:70 +msgid "" +"Basic network compatibility - A router will refuse to communicate with a " +"peer having a different netId" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:73 +msgid "Used to determine compatibility with newer features and messages" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:76 +msgid "" +"Always sent as 90m, for compatibility with an older scheme where routers " +"published their actual uptime,\n" +"and only sent tunnel requests to peers whose uptime was more than 60m" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:82 +msgid "" +"These values are used by other routers for basic decisions.\n" +"Should we connect to this router? Should we attempt to route a tunnel " +"through this router?\n" +"The bandwidth capability flag, in particular, is used only to determine " +"whether\n" +"the router meets a minimum threshold for routing tunnels.\n" +"Above the minimum threshold, the advertised bandwidth is not used or " +"trusted anywhere\n" +"in the router, except for display in the user interface and for debugging" +" and network analysis." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:91 +msgid "Additional Options" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:93 +#, python-format +msgid "" +"Additional text options include\n" +"a small number of statistics about the router's health, which are " +"aggregated by\n" +"sites such as %(stats)s\n" +"for network performance analysis and debugging.\n" +"These statistics were chosen to provide data crucial to the developers,\n" +"such as tunnel build success rates, while balancing the need for such " +"data\n" +"with the side-effects that could result from revealing this data.\n" +"Current statistics are limited to:" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:104 +msgid "Exploratory tunnel build success, reject, and timeout rates" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:105 +msgid "1 hour average number of participating tunnels" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:108 +msgid "" +"Floodfill routers publish additional data on the number of entries in " +"their network database." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:112 +msgid "" +"The data published can be seen in the router's user interface,\n" +"but is not used or trusted within the router.\n" +"As the network has matured, we have gradually removed most of the " +"published\n" +"statistics to improve anonymity, and we plan to remove more in future " +"releases." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:119 +msgid "Family Options" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:121 +msgid "" +"As of release 0.9.24, routers may declare that they are part of a " +"\"family\", operated by the same entity.\n" +"Multiple routers in the same family will not be used in a single tunnel." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:126 +msgid "The family options are:" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:132 +msgid "The family name" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:147 +msgid "RouterInfo Expiration" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:148 +msgid "" +"RouterInfos have no set expiration time.\n" +"Each router is free to maintain its own local policy to trade off the " +"frequency of RouterInfo lookups\n" +"with memory or disk usage.\n" +"In the current implementation, there are the following general policies:" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:155 +msgid "" +"There is no expiration during the first hour of uptime, as the persistent" +" stored data may be old." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:158 +msgid "There is no expiration if there are 25 or less RouterInfos." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:161 +msgid "" +"As the number of local RouterInfos grows, the expiration time shrinks, in" +" an attempt to maintain\n" +"a reasonable number RouterInfos. The expiration time with less than 120 " +"routers is 72 hours,\n" +"while expiration time with 300 routers is around 30 hours." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:166 +#, python-format +msgid "" +"RouterInfos containing SSU introducers expire in " +"about an hour, as\n" +"the introducer list expires in about that time." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:170 +msgid "" +"Floodfills use a short expiration time (1 hour) for all local " +"RouterInfos, as valid RouterInfos will\n" +"be frequently republished to them." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:176 +msgid "RouterInfo Persistent Storage" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:178 +msgid "" +"RouterInfos are periodically written to disk so that they are available " +"after a restart." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:186 +msgid "RouterInfo specification" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:189 +msgid "RouterInfo Javadoc" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:194 +msgid "" +"The second piece of data distributed in the netDb is a \"LeaseSet\" - " +"documenting\n" +"a group of tunnel entry points (leases) for a particular client " +"destination.\n" +"Each of these leases specify the following information:" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:200 +msgid "The tunnel gateway router (by specifying its identity)" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:201 +msgid "The tunnel ID on that router to send messages with (a 4 byte number)" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:202 +msgid "When that tunnel will expire." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:204 +msgid "" +"The LeaseSet itself is stored in the netDb under\n" +"the key derived from the SHA256 of the destination." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:209 +msgid "In addition to these leases, the LeaseSet includes:" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:213 +msgid "" +"The destination itself (a 2048bit ElGamal encryption key, a signing key " +"and a certificate)" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:214 +msgid "" +"Additional encryption public key: used for end-to-end encryption of " +"garlic messages" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:215 +msgid "" +"Additional signing public key: intended for LeaseSet revocation, but is " +"currently unused." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:216 +msgid "" +"Signature of all the LeaseSet data, to make sure the Destination " +"published the LeaseSet." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:220 +msgid "Lease specification" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:222 +msgid "LeaseSet specification" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:225 +msgid "Lease Javadoc" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:227 +msgid "LeaseSet Javadoc" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:231 +msgid "Unpublished LeaseSets" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:232 +msgid "" +"A LeaseSet for a destination used only for outgoing connections is " +"unpublished.\n" +"It is never sent for publication to a floodfill router.\n" +"\"Client\" tunnels, such as those for web browsing and IRC clients, are " +"unpublished.\n" +"Servers will still be able to send messages back to those unpublished " +"destinations,\n" +"because of I2NP storage messages." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:242 +msgid "Revoked LeaseSets" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:243 +msgid "" +"A LeaseSet may be revoked by publishing a new LeaseSet with zero " +"leases.\n" +"Revocations must be signed by the additional signing key in the LeaseSet." +"\n" +"Revocations are not fully implemented, and it is unclear if they have any" +" practical use.\n" +"This is the only planned use for that signing key, so it is currently " +"unused." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:250 +msgid "Encrypted LeaseSets" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:251 +msgid "" +"In an encrypted LeaseSet, all Leases are encrypted with a separate" +" key.\n" +"The leases may only be decoded, and thus the destination may only be " +"contacted,\n" +"by those with the key.\n" +"There is no flag or other direct indication that the LeaseSet is " +"encrypted.\n" +"Encrypted LeaseSets are not widely used, and it is a topic for future " +"work to\n" +"research whether the user interface and implementation of encrypted " +"LeaseSets could be improved." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:260 +msgid "LeaseSet Expiration" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:261 +msgid "" +"All Leases (tunnels) are valid for 10 minutes; therefore, a LeaseSet " +"expires\n" +"10 minutes after the earliest creation time of all its Leases." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:266 +msgid "LeaseSet Persistent Storage" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:267 +msgid "" +"There is no persistent storage of LeaseSet data since they expire so " +"quickly." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:272 +msgid "Bootstrapping" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:273 +msgid "" +"The netDb is decentralized, however you do need at\n" +"least one reference to a peer so that the integration process\n" +"ties you in. This is accomplished by \"reseeding\" your router with the " +"RouterInfo\n" +"of an active peer - specifically, by retrieving their " +"routerInfo-$hash.dat\n" +"file and storing it in your netDb/ directory. Anyone can " +"provide\n" +"you with those files - you can even provide them to others by exposing " +"your own\n" +"netDb directory. To simplify the process,\n" +"volunteers publish their netDb directories (or a subset) on the regular " +"(non-i2p) network,\n" +"and the URLs of these directories are hardcoded in I2P.\n" +"When the router starts up for the first time, it automatically fetches " +"from\n" +"one of these URLs, selected at random." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:288 +msgid "" +"The floodfill netDb is a simple distributed storage mechanism.\n" +"The storage algorithm is simple: send the data to the closest peer that " +"has advertised itself\n" +"as a floodfill router. Then wait 10 seconds, pick another floodfill " +"router and ask them \n" +"for the entry to be sent, verifying its proper insertion / distribution. " +"If the \n" +"verification peer doesn't reply, or they don't have the entry, the sender" +" \n" +"repeats the process. When the peer in the floodfill netDb receives a " +"netDb \n" +"store from a peer not in the floodfill netDb, they send it to a subset of" +" the floodfill netDb-peers.\n" +"The peers selected are the ones closest (according to the XOR-metric) to a specific key." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:299 +msgid "" +"Determining who is part of the floodfill netDb is trivial - it is exposed" +" in each \n" +"router's published routerInfo as a capability." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:304 +msgid "" +"Floodfills have no central authority and do not form a \"consensus\" -\n" +"they only implement a simple DHT overlay." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:311 +msgid "Floodfill Router Opt-in" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:313 +msgid "" +"Unlike Tor, where the directory servers are hardcoded and trusted,\n" +"and operated by known entities,\n" +"the members of the I2P floodfill peer set need not be trusted, and\n" +"change over time." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:320 +msgid "" +"To increase reliability of the netDb, and minimize the impact\n" +"of netDb traffic on a router, floodfill is automatically enabled\n" +"only on routers that are configured with high bandwidth limits.\n" +"Routers with high bandwidth limits (which must be manually configured,\n" +"as the default is much lower) are presumed to be on lower-latency\n" +"connections, and are more likely to be available 24/7.\n" +"The current minimum share bandwidth for a floodfill router is 128 " +"KBytes/sec." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:330 +msgid "" +"In addition, a router must pass several additional tests for health\n" +"(outbound message queue time, job lag, etc.) before floodfill operation " +"is\n" +"automatically enabled." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:336 +msgid "" +"With the current rules for automatic opt-in, approximately 6% of\n" +"the routers in the network are floodfill routers." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:341 +msgid "" +"While some peers are manually configured to be floodfill,\n" +"others are simply high-bandwidth routers who automatically volunteer\n" +"when the number of floodfill peers drops below a threshold.\n" +"This prevents any long-term network damage from losing most or all\n" +"floodfills to an attack.\n" +"In turn, these peers will un-floodfill themselves when there are\n" +"too many floodfills outstanding." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:351 +msgid "Floodfill Router Roles" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:352 +msgid "" +"A floodfill router's only services that are in addition to those of non-" +"floodfill routers\n" +"are in accepting netDb stores and responding to netDb queries.\n" +"Since they are generally high-bandwidth, they are more likely to " +"participate in a high number of tunnels\n" +"(i.e. be a \"relay\" for others), but this is not directly related to " +"their distributed database services." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:360 +msgid "Kademlia Closeness Metric" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:361 +msgid "" +"The netDb uses a simple Kademlia-style XOR metric to determine closeness." +"\n" +"The SHA256 hash of the key being looked up or stored is XOR-ed with\n" +"the hash of the router in question to determine closeness.\n" +"A modification to this algorithm is done to increase the costs of Sybil attacks.\n" +"Instead of the SHA256 hash of the key being looked up of stored, the " +"SHA256 hash is taken\n" +"of the 32-byte binary search key appended with the UTC date represented " +"as an 8-byte ASCII string yyyyMMdd, i.e. SHA256(key + yyyyMMdd).\n" +"This is called the \"routing key\", and it changes every day at midnight " +"UTC.\n" +"Only the search key is modified in this way, not the floodfill router " +"hashes.\n" +"The daily transformation of the DHT is sometimes called \"keyspace " +"rotation\",\n" +"although it isn't strictly a rotation." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:374 +msgid "" +"Routing keys are never sent on-the-wire in any I2NP message, they are " +"only used locally for\n" +"determination of distance." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:381 +msgid "Storage, Verification, and Lookup Mechanics" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:383 +msgid "RouterInfo Storage to Peers" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:384 +#, python-format +msgid "" +"I2NP DatabaseStoreMessages containing the local " +"RouterInfo are exchanged with peers\n" +"as a part of the initialization of a NTCP\n" +"or SSU transport connection." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:391 +msgid "LeaseSet Storage to Peers" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:392 +#, python-format +msgid "" +"I2NP DatabaseStoreMessages containing the local " +"LeaseSet are periodically exchanged with peers\n" +"by bundling them in a garlic message along with normal traffic from the " +"related Destination.\n" +"This allows an initial response, and later responses, to be sent to an " +"appropriate Lease,\n" +"without requiring any LeaseSet lookups, or requiring the communicating " +"Destinations to have published LeaseSets at all." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:400 +msgid "" +"The DatabaseStoreMessage should be sent to the floodfill that is closest\n" +"to the current routing key for the RouterInfo or LeaseSet being stored.\n" +"Currently, the closest floodfill is found by a search in the local " +"database.\n" +"Even if that floodfill is not actually closest, it will flood it " +"\"closer\" by\n" +"sending it to multiple other floodfills.\n" +"This provides a high degree of fault-tolerance." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:409 +msgid "" +"In traditional Kademlia, a peer would do a \"find-closest\" search before" +" inserting\n" +"an item in the DHT to the closest target. As the verify operation will " +"tend to\n" +"discover closer floodfills if they are present, a router will quickly " +"improve\n" +"its knowledge of the DHT \"neighborhood\" for the RouterInfo and " +"LeaseSets it regularly publishes.\n" +"While I2NP does not define a \"find-closest\" message, if it becomes " +"necessary,\n" +"a router may simply do an iterative search for a key with the least " +"significant bit flipped\n" +"(i.e. key ^ 0x01) until no closer peers are received in the " +"DatabaseSearchReplyMessages.\n" +"This ensures that the true closest peer will be found even if a more-" +"distant peer had\n" +"the netdb item." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:422 +msgid "RouterInfo Storage to Floodfills" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:423 +#, python-format +msgid "" +"A router publishes its own RouterInfo by directly connecting to a " +"floodfill router\n" +"and sending it a I2NP DatabaseStoreMessage\n" +"with a nonzero Reply Token. The message is not end-to-end garlic " +"encrypted,\n" +"as this is a direct connection, so there are no intervening routers\n" +"(and no need to hide this data anyway).\n" +"The floodfill router replies with a\n" +"I2NP DeliveryStatusMessage,\n" +"with the Message ID set to the value of the Reply Token." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:437 +msgid "LeaseSet Storage to Floodfills" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:438 +msgid "" +"Storage of LeaseSets is much more sensitive than for RouterInfos, as a " +"router\n" +"must take care that the LeaseSet cannot be associated with the router." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:443 +#, python-format +msgid "" +"A router publishes a local LeaseSet by\n" +"sending a I2NP DatabaseStoreMessage\n" +"with a nonzero Reply Token over an outbound client tunnel for that " +"Destination.\n" +"The message is end-to-end garlic encrypted using the Destination's " +"Session Key Manager,\n" +"to hide the message from the tunnel's outbound endpoint.\n" +"The floodfill router replies with a\n" +"I2NP DeliveryStatusMessage,\n" +"with the Message ID set to the value of the Reply Token.\n" +"This message is sent back to one of the client's inbound tunnels." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:456 +msgid "Flooding" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:457 +#, python-format +msgid "" +"After a floodfill router receives a DatabaseStoreMessage containing a\n" +"valid RouterInfo or LeaseSet which is newer than that previously stored " +"in its\n" +"local NetDb, it \"floods\" it.\n" +"To flood a NetDb entry, it looks up several (currently %(floodsize)s) " +"floodfill routers closest to the routing key\n" +"of the NetDb entry. (The routing key is the SHA256 Hash of the " +"RouterIdentity or Destination with the date (yyyyMMdd) appended.)\n" +"By flooding to those closest to the key, not closest to itself, the " +"floodfill ensures that the storage\n" +"gets to the right place, even if the storing router did not have good " +"knowledge of the\n" +"DHT \"neighborhood\" for the routing key." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:468 +#, python-format +msgid "" +"The floodfill then directly connects to each of those peers\n" +"and sends it a I2NP DatabaseStoreMessage\n" +"with a zero Reply Token. The message is not end-to-end garlic encrypted,\n" +"as this is a direct connection, so there are no intervening routers\n" +"(and no need to hide this data anyway).\n" +"The other routers do not reply or re-flood, as the Reply Token is zero." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:478 +msgid "RouterInfo and LeaseSet Lookup" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:479 +#, python-format +msgid "" +"The I2NP DatabaseLookupMessage is used to " +"request a netdb entry from a floodfill router.\n" +"Lookups are sent out one of the router's outbound exploratory tunnels.\n" +"The replies are specified to return via one of the router's inbound " +"exploratory tunnels." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:485 +msgid "" +"Lookups are generally sent to the two \"good\" (the connection doesn't " +"fail) floodfill routers closest to the requested key, in parallel." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:489 +#, python-format +msgid "" +"If the key is found locally by the floodfill router, it responds with a\n" +"I2NP DatabaseStoreMessage.\n" +"If the key is not found locally by the floodfill router, it responds with" +" a\n" +"I2NP DatabaseSearchReplyMessage\n" +"containing a list of other floodfill routers close to the key." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:497 +msgid "" +"LeaseSet lookups are garlic encrypted end-to-end as of release 0.9.5.\n" +"RouterInfo lookups are not encrypted and thus are vulnerable to snooping " +"by the outbound endpoint\n" +"(OBEP) of the client tunnel. This is due to the expense of the ElGamal " +"encryption.\n" +"RouterInfo lookup encryption may be enabled in a future release." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:504 +msgid "" +"As of release 0.9.7, replies to a LeaseSet lookup (a DatabaseStoreMessage" +" or a DatabaseSearchReplyMessage)\n" +"will be encrypted by including the session key and tag in the lookup.\n" +"This hides the reply from the inbound gateway (IBGW) of the reply tunnel." +"\n" +"Responses to RouterInfo lookups will be encrypted if we enable the lookup" +" encryption." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:511 +#, python-format +msgid "" +"(Reference: Hashing it out in Public Sections " +"2.2-2.3 for terms below in italics)" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:515 +msgid "" +"Due to the relatively small size of the network and the flooding " +"redundancy of 8x,\n" +"lookups are usually O(1) rather than O(log n) --\n" +"a router is highly likely to know a floodfill router close enough to the " +"key to get the answer on the first try.\n" +"In releases prior to 0.8.9, routers used a lookup redundancy of two\n" +"(that is, two lookups were performed in parallel to different peers), and" +"\n" +"neither recursive nor iterative routing for lookups was " +"implemented.\n" +"Queries were sent through multiple routes simultaneously\n" +"to reduce the chance of query failure." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:526 +msgid "" +"As of release 0.8.9, iterative lookups are implemented with no " +"lookup redundancy.\n" +"This is a more efficient and reliable lookup that will work much better\n" +"when not all floodfill peers are known, and it removes a serious\n" +"limitation to network growth. As the network grows and each router knows " +"only a small\n" +"subset of the floodfill peers, lookups will become O(log n).\n" +"Even if the peer does not return references closer to the key, the lookup" +" continues with\n" +"the next-closest peer, for added robustness, and to prevent a malicious " +"floodfill from\n" +"black-holing a part of the key space. Lookups continue until a total " +"lookup timeout is reached,\n" +"or the maximum number of peers is queried." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:538 +msgid "" +"Node IDs are verifiable in that we use the router hash " +"directly as both the node ID and the Kademlia key.\n" +"Incorrect responses that are not closer to the search key are generally " +"ignored.\n" +"Given the current size of the network, a router has\n" +"detailed knowledge of the neighborhood of the destination ID space." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:547 +msgid "RouterInfo Storage Verification" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:548 +#, python-format +msgid "" +"Note: RouterInfo verification is disabled as of release 0.9.7.1 to " +"prevent\n" +"the attack described in the paper\n" +"Practical Attacks Against the I2P Network.\n" +"It is not clear if verification can be redesigned to be done safely." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:555 +msgid "" +"To verify a storage was successful, a router simply waits about 10 " +"seconds,\n" +"then sends a lookup to another floodfill router close to the key\n" +"(but not the one the store was sent to).\n" +"Lookups sent out one of the router's outbound exploratory tunnels.\n" +"Lookups are end-to-end garlic encrypted to prevent snooping by the " +"outbound endpoint(OBEP)." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:563 +msgid "LeaseSet Storage Verification" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:564 +msgid "" +"To verify a storage was successful, a router simply waits about 10 " +"seconds,\n" +"then sends a lookup to another floodfill router close to the key\n" +"(but not the one the store was sent to).\n" +"Lookups sent out one of the outbound client tunnels for the destination " +"of the LeaseSet being verified.\n" +"To prevent snooping by the OBEP of the outbound tunnel,\n" +"lookups are end-to-end garlic encrypted.\n" +"The replies are specified to return via one of the client's inbound " +"tunnels." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:574 +msgid "" +"As of release 0.9.7, replies for both RouterInfo and LeaseSet lookups (a " +"DatabaseStoreMessage or a DatabaseSearchReplyMessage)\n" +"will be encrypted,\n" +"to hide the reply from the inbound gateway (IBGW) of the reply tunnel." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:582 +msgid "Exploration" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:583 +#, python-format +msgid "" +"Exploration is a special form of netdb lookup, where a router " +"attempts to learn about\n" +"new routers.\n" +"It does this by sending a floodfill router a I2NP DatabaseLookupMessage, looking for a random " +"key.\n" +"As this lookup will fail, the floodfill would normally respond with a\n" +"I2NP DatabaseSearchReplyMessage containing " +"hashes of floodfill routers close to the key.\n" +"This would not be helpful, as the requesting router probably already " +"knows those floodfills,\n" +"and it would be impractical to add ALL floodfill routers to the \"don't " +"include\" field of the lookup.\n" +"For an exploration query, the requesting router adds a router hash of all" +" zeros to the\n" +"\"don't include\" field of the DatabaseLookupMessage.\n" +"The floodfill will then respond only with non-floodfill routers close to " +"the requested key." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:597 +msgid "Notes on Lookup Responses" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:598 +msgid "" +"The response to a lookup request is either a Database Store Message (on " +"success) or a\n" +"Database Search Reply Message (on failure). The DSRM contains a 'from' " +"router hash field\n" +"to indicate the source of the reply; the DSM does not.\n" +"The DSRM 'from' field is unauthenticated and may be spoofed or invalid.\n" +"There are no other response tags. Therefore, when making multiple " +"requests in parallel, it is\n" +"difficult to monitor the performance of the various floodfill routers." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:608 +msgid "MultiHoming" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:610 +msgid "" +"Destinations may be hosted on multiple routers simultaneously, by using " +"the same\n" +"private and public keys (traditionally stored in eepPriv.dat files).\n" +"As both instances will periodically publish their signed LeaseSets to the" +" floodfill peers,\n" +"the most recently published LeaseSet will be returned to a peer " +"requesting a database lookup.\n" +"As LeaseSets have (at most) a 10 minute lifetime, should a particular " +"instance go down,\n" +"the outage will be 10 minutes at most, and generally much less than that." +"\n" +"The multihoming function has been verified and is in use by several " +"services on the network." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:620 +msgid "Threat Analysis" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:621 +#, python-format +msgid "" +"Also discussed on the threat model " +"page." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:625 +msgid "" +"A hostile user may attempt to harm the network by\n" +"creating one or more floodfill routers and crafting them to offer\n" +"bad, slow, or no responses.\n" +"Some scenarios are discussed below." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:632 +msgid "General Mitigation Through Growth" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:633 +#, python-format +msgid "" +"There are currently around %(ffcount)s floodfill routers in the network.\n" +"Most of the following attacks will become more difficult, or have less " +"impact,\n" +"as the network size and number of floodfill routers increase." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:640 +msgid "General Mitigation Through Redundancy" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:641 +#, python-format +msgid "" +"Via flooding, all netdb entries are stored on the %(floodsize)s floodfill" +" routers closest to the key." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:646 +msgid "Forgeries" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:647 +msgid "" +"All netdb entries are signed by their creators, so no router may forge a\n" +"RouterInfo or LeaseSet." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:652 +msgid "Slow or Unresponsive" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:653 +#, python-format +msgid "" +"Each router maintains an expanded set of statistics in the\n" +"peer profile for each floodfill router," +"\n" +"covering various quality metrics for that peer.\n" +"The set includes:" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:660 +msgid "Average response time" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:661 +msgid "Percentage of queries answered with the data requested" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:662 +msgid "Percentage of stores that were successfully verified" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:663 +msgid "Last successful store" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:664 +msgid "Last successful lookup" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:665 +msgid "Last response" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:668 +msgid "" +"Each time a router needs to make a determination on which floodfill " +"router is closest to a key,\n" +"it uses these metrics to determine which floodfill routers are \"good\".\n" +"The methods, and thresholds, used to determine \"goodness\" are " +"relatively new, and\n" +"are subject to further analysis and improvement.\n" +"While a completely unresponsive router will quickly be identified and " +"avoided,\n" +"routers that are only sometimes malicious may be much harder to deal with." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:678 +msgid "Sybil Attack (Full Keyspace)" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:679 +#, python-format +msgid "" +"An attacker may mount a Sybil attack\n" +"by creating a large number of floodfill routers spread throughout the " +"keyspace." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:684 +#, python-format +msgid "" +"(In a related example, a researcher recently created a\n" +"large number of Tor relays.)\n" +"If successful, this could be an effective DOS attack on the entire " +"network." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:690 +msgid "" +"If the floodfills are not sufficiently misbehaving to be marked as " +"\"bad\" using the peer profile\n" +"metrics described above, this is a difficult scenario to handle.\n" +"Tor's response can be much more nimble in the relay case, as the " +"suspicious relays\n" +"can be manually removed from the consensus.\n" +"Some possible responses for the I2P network are listed below, however " +"none of them is completely satisfactory:" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:698 +msgid "" +"Compile a list of bad router hashes or IPs, and announce the list through" +" various means\n" +"(console news, website, forum, etc.); users would have to manually " +"download the list and\n" +"add it to their local \"blacklist\"." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:703 +msgid "" +"Ask everyone in the network to enable floodfill manually (fight Sybil " +"with more Sybil)" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:704 +msgid "Release a new software version that includes the hardcoded \"bad\" list" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:705 +msgid "" +"Release a new software version that improves the peer profile metrics and" +" thresholds,\n" +"in an attempt to automatically identify the \"bad\" peers." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:709 +msgid "" +"Add software that disqualifies floodfills if too many of them are in a " +"single IP block" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:710 +msgid "" +"Implement an automatic subscription-based blacklist controlled by a " +"single individual or group.\n" +"This would essentially implement a portion of the Tor \"consensus\" " +"model.\n" +"Unfortunately it would also give a single individual or group the power " +"to\n" +"block participation of any particular router or IP in the network,\n" +"or even to completely shutdown or destroy the entire network." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:719 +msgid "This attack becomes more difficult as the network size grows." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:725 +msgid "Sybil Attack (Partial Keyspace)" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:726 +#, python-format +msgid "" +"An attacker may mount a Sybil attack\n" +"by creating a small number (8-15) of floodfill routers clustered closely " +"in the keyspace,\n" +"and distribute the RouterInfos for these routers widely.\n" +"Then, all lookups and stores for a key in that keyspace would be directed" +"\n" +"to one of the attacker's routers.\n" +"If successful, this could be an effective DOS attack on a particular " +"eepsite, for example." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:735 +msgid "" +"As the keyspace is indexed by the cryptographic (SHA256) Hash of the key," +"\n" +"an attacker must use a brute-force method to repeatedly generate router " +"hashes\n" +"until he has enough that are sufficiently close to the key.\n" +"The amount of computational power required for this, which is dependent " +"on network\n" +"size, is unknown." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:743 +msgid "" +"As a partial defense against this attack,\n" +"the algorithm used to determine Kademlia \"closeness\" varies over time.\n" +"Rather than using the Hash of the key (i.e. H(k)) to determine closeness," +"\n" +"we use the Hash of the key appended with the current date string, i.e. " +"H(k + YYYYMMDD).\n" +"A function called the \"routing key generator\" does this, which " +"transforms the original key into a \"routing key\".\n" +"In other words, the entire netdb keyspace \"rotates\" every day at UTC " +"midnight.\n" +"Any partial-keyspace attack would have to be regenerated every day, for\n" +"after the rotation, the attacking routers would no longer be close\n" +"to the target key, or to each other." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:755 +msgid "" +"This attack becomes more difficult as the network size grows.\n" +"However, recent research demonstrates that the keyspace rotation is not " +"particularly effective.\n" +"An attacker can precompute numerous router hashes in advance,\n" +"and only a few routers are sufficient to \"eclipse\" a portion\n" +"of the keyspace within a half hour after rotation." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:763 +msgid "" +"One consequence of daily keyspace rotation is that the distributed " +"network database\n" +"may become unreliable for a few minutes after the rotation --\n" +"lookups will fail because the new \"closest\" router has not received a " +"store yet.\n" +"The extent of the issue, and methods for mitigation\n" +"(for example netdb \"handoffs\" at midnight)\n" +"are a topic for further study." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:773 +msgid "Bootstrap Attacks" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:774 +msgid "" +"An attacker could attempt to boot new routers into an isolated\n" +"or majority-controlled network by taking over a reseed website,\n" +"or tricking the developers into adding his reseed website\n" +"to the hardcoded list in the router." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:781 +msgid "Several defenses are possible, and most of these are planned:" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:785 +msgid "" +"Disallow fallback from HTTPS to HTTP for reseeding.\n" +"A MITM attacker could simply block HTTPS, then respond to the HTTP." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:789 +msgid "Bundling reseed data in the installer" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:792 +msgid "Defenses that are implemented:" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:796 +msgid "" +"Changing the reseed task to fetch a subset of RouterInfos from\n" +"each of several reseed sites rather than using only a single site" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:800 +msgid "" +"Creating an out-of-network reseed monitoring service that\n" +"periodically polls reseed websites and verifies that the\n" +"data are not stale or inconsistent with other views of the network" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:805 +msgid "" +"As of release 0.9.14, reseed data is bundled into a signed zip file and\n" +"the signature is verified when downloaded." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:813 +msgid "Query Capture" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:814 +#, python-format +msgid "" +"See also lookup\n" +"(Reference: Hashing it out in Public Sections " +"2.2-2.3 for terms below in italics)" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:819 +msgid "" +"Similar to a bootstrap attack, an attacker using a floodfill router could" +" attempt to \"steer\"\n" +"peers to a subset of routers controlled by him by returning their " +"references." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:824 +msgid "" +"This is unlikely to work via exploration, because exploration is a low-" +"frequency task.\n" +"Routers acquire a majority of their peer references through normal tunnel" +" building activity.\n" +"Exploration results are generally limited to a few router hashes,\n" +"and each exploration query is directed to a random floodfill router." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:831 +#, python-format +msgid "" +"As of release 0.8.9, iterative lookups are implemented.\n" +"For floodfill router references returned in a\n" +"I2NP DatabaseSearchReplyMessage\n" +"response to a lookup,\n" +"these references are followed if they are closer (or the next closest) to" +" the lookup key.\n" +"The requesting router does not trust that the references are\n" +"closer to the key (i.e. they are verifiably correct.\n" +"The lookup also does not stop when no closer key is found, but continues " +"by querying the\n" +"next-closet node, until the timeout or maximum number of queries is " +"reached.\n" +"This prevents a malicious floodfill from black-holing a part of the key " +"space.\n" +"Also, the daily keyspace rotation requires an attacker to regenerate a " +"router info\n" +"within the desired key space region.\n" +"This design ensures that the query capture attack described in\n" +"Hashing it out in Public\n" +"is much more difficult." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:850 +msgid "DHT-Based Relay Selection" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:851 +#, python-format +msgid "(Reference: Hashing it out in Public Section 3)" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:855 +#, python-format +msgid "" +"This doesn't have much to do with floodfill, but see\n" +"the peer selection page\n" +"for a discussion of the vulnerabilities of peer selection for tunnels." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:861 +msgid "Information Leaks" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:862 +#, python-format +msgid "" +"(Reference: In Search of an Anonymous and Secure " +"Lookup Section 3)" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:866 +#, python-format +msgid "" +"This paper addresses weaknesses in the \"Finger Table\" DHT lookups used " +"by Torsk and NISAN.\n" +"At first glance, these do not appear to apply to I2P. First, the use of " +"DHT by Torsk and NISAN\n" +"is significantly different from that in I2P. Second, I2P's network " +"database lookups are only\n" +"loosely correlated to the peer " +"selection and\n" +"tunnel building processes; only " +"previously-known peers\n" +"are used for tunnels.\n" +"Also, peer selection is unrelated to any notion of DHT key-closeness." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:877 +msgid "" +"Some of this may actually be more interesting when the I2P network gets " +"much larger.\n" +"Right now, each router knows a large proportion of the network, so " +"looking up a particular\n" +"Router Info in the network database is not strongly indicative of a " +"future intent to use\n" +"that router in a tunnel. Perhaps when the network is 100 times larger, " +"the lookup may be\n" +"more correlative. Of course, a larger network makes a Sybil attack that " +"much harder." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:885 +#, python-format +msgid "" +"However, the general issue of DHT information leakage in I2P needs " +"further investigation.\n" +"The floodfill routers are in a position to observe queries and gather " +"information.\n" +"Certainly, at a level of f = 0.2 (20% malicious nodes, as " +"specifed in the paper)\n" +"we expect that many of the Sybil threats we describe\n" +"(here,\n" +"here and\n" +"here)\n" +"become problematic for several reasons." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:899 +msgid "Moved to the netdb discussion page" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:903 +msgid "End-to-end encryption of additional netDb lookups and responses." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:907 +msgid "Better methods for tracking lookup responses." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:2 +msgid "Peer Profiling and Selection" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:3 +msgid "July 2010" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:8 +msgid "Peer Profiling" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:10 +#, python-format +msgid "" +"Peer profiling is the process of collecting data based on the " +"observed performance\n" +"of other routers or peers, and classifying those peers into groups.\n" +"Profiling does not use any claimed performance data published by " +"the peer itself\n" +"in the network database." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:17 +msgid "Profiles are used for two purposes:" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:19 +msgid "Selecting peers to relay our traffic through, which is discussed below" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:20 +#, python-format +msgid "" +"Choosing peers from the set of floodfill routers to use for network " +"database storage and queries,\n" +"which is discussed on the network database page" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:27 +#: i2p2www/pages/site/docs/how/peer-selection.html:187 +#: i2p2www/pages/site/docs/tunnels/implementation.html:289 +msgid "Peer Selection" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:28 +msgid "" +"Peer selection is the process of choosing which routers\n" +"on the network we want to relay our messages to go through (which peers " +"will we \n" +"ask to join our tunnels). To accomplish this, we keep track of how each\n" +"peer performs (the peer's \"profile\") and use that data to estimate how" +" \n" +"fast they are, how often they will be able to accept our requests, and \n" +"whether they seem to be overloaded or otherwise unable to perform what\n" +"they agree to reliably." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:38 +#, python-format +msgid "" +"Unlike some other anonymous networks, in I2P,\n" +"claimed bandwidth is untrusted and is only used to avoid those " +"peers\n" +"advertising very low bandwidth insufficient for routing tunnels.\n" +"All peer selection is done through profiling.\n" +"This prevents simple attacks based on peers claiming high bandwidth\n" +"in order to capture large numbers of tunnels.\n" +"It also makes\n" +"timing attacks\n" +"more difficult." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:50 +msgid "" +"Peer selection is done quite frequently, as a router may maintain a large" +" number\n" +"of client and exploratory tunnels, and a tunnel lifetime is only 10 " +"minutes." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:56 +msgid "Further Information" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:57 +#, python-format +msgid "" +"For more information see the paper\n" +"Peer Profiling and Selection in the I2P Anonymous " +"Network\n" +"presented at PET-CON 2009.1.\n" +"See below for notes on minor changes since the " +"paper was published." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:65 +msgid "Profiles" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:66 +#, python-format +msgid "" +"Each peer has a set of data points collected about them, including " +"statistics \n" +"about how long it takes for them to reply to a network database query, " +"how \n" +"often their tunnels fail, and how many new peers they are able to " +"introduce \n" +"us to, as well as simple data points such as when we last heard from them" +" or\n" +"when the last communication error occurred. The specific data points " +"gathered\n" +"can be found in the code." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:75 +msgid "" +"Profiles are fairly small, a few KB. To control memory usage, the profile" +" expiration time\n" +"lessens as the number of profiles grows.\n" +"Profiles are kept in memory until router shutdown, when they are written " +"to disk.\n" +"At startup, the profiles are read so the router need not reinitialize all" +" profiles,\n" +"thus allowing a router to quickly re-integrate into the network after " +"startup." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:85 +msgid "Peer Summaries" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:86 +msgid "" +"While the profiles themselves can be considered a summary of a peer's \n" +"performance, to allow for effective peer selection we break each summary " +"down \n" +"into four simple values, representing the peer's speed, its capacity, how" +" well \n" +"integrated into the network it is, and whether it is failing." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:93 +msgid "Speed" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:94 +msgid "" +"The speed calculation\n" +"simply goes through the profile and estimates how much data we can\n" +"send or receive on a single tunnel through the peer in a minute. For " +"this estimate it just looks at\n" +"performance in the previous minute." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:101 +msgid "Capacity" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:102 +msgid "" +"The capacity calculation\n" +"simply goes through the profile and estimates how many tunnels the peer\n" +"would agree to participate in over a given time period. For this " +"estimate it looks at \n" +"how many tunnel build requests\n" +"the peer has accepted, rejected, and dropped, and how many\n" +"of the agreed-to tunnels later failed.\n" +"While the calculation is time-weighted so that recent activity counts " +"more than later activity,\n" +"statistics up to 48 hours old may be included." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:113 +msgid "" +"Recognizing and avoiding unreliable and unreachable\n" +"peers is critically important.\n" +"Unfortunately, as the tunnel building and testing require the " +"participation of several peers,\n" +"it is difficult to positively identify the cause of a dropped build " +"request or test failure.\n" +"The router assigns a probability of failure to each of the\n" +"peers, and uses that probability in the capacity calculation.\n" +"Drops and test failures are weighted much higher than rejections." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:123 +msgid "Peer organization" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:124 +msgid "" +"As mentioned above, we drill through each peer's profile to come up with " +"a \n" +"few key calculations, and based upon those, we organize each peer into " +"three\n" +"groups - fast, high capacity, and standard." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:130 +msgid "The groupings are not mutually exclusive, nor are they unrelated:" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:134 +msgid "" +"A peer is considered \"high capacity\" if its capacity calculation meets " +"or \n" +"exceeds the median of all peers." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:138 +msgid "" +"A peer is considered \"fast\" if they are already \"high capacity\" and " +"their \n" +"speed calculation meets or exceeds the median of all peers." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:142 +msgid "A peer is considered \"standard\" if it is not \"high capacity\"" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:145 +#, python-format +msgid "" +"These groupings are implemented in the router's\n" +"ProfileOrganizer." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:150 +msgid "Group size limits" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:151 +msgid "The size of the groups may be limited." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:156 +msgid "" +"The fast group is limited to 30 peers.\n" +"If there would be more, only the ones with the highest speed rating are " +"placed in the group." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:160 +msgid "" +"The high capacity group is limited to 75 peers (including the fast group)" +"\n" +"If there would be more, only the ones with the highest capacity rating " +"are placed in the group." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:164 +msgid "" +"The standard group has no fixed limit, but is somewhat smaller than the " +"number of RouterInfos\n" +"stored in the local network database.\n" +"On an active router in today's network, there may be about 1000 " +"RouterInfos and 500 peer profiles\n" +"(including those in the fast and high capacity groups)" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:172 +msgid "Recalculation and Stability" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:173 +msgid "" +"Summaries are recalculated, and peers are resorted into groups, every 45 " +"seconds." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:177 +msgid "" +"The groups tend to be fairly stable, that is, there is not much \"churn\"" +" in the rankings\n" +"at each recalculation.\n" +"Peers in the fast and high capacity groups get more tunnels build through" +" them, which increases their speed and capacity ratings,\n" +"which reinforces their presence in the group." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:188 +msgid "The router selects peers from the above groups to build tunnels through." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:193 +msgid "Peer Selection for Client Tunnels" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:194 +msgid "" +"Client tunnels are used for application traffic, such as for HTTP proxies" +" and web servers." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:198 +msgid "" +"To reduce the susceptibility to some attacks,\n" +"and increase performance,\n" +"peers for building client tunnels are chosen randomly from the smallest " +"group, which is the \"fast\" group.\n" +"There is no bias toward selecting peers that were previously participants" +" in a tunnel for the same client." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:206 +msgid "Peer Selection for Exploratory Tunnels" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:207 +msgid "" +"Exploratory tunnels are used for router administrative purposes, such as " +"network database traffic\n" +"and testing client tunnels.\n" +"Exploratory tunnels are also used to contact previously unconnected " +"routers, which is why\n" +"they are called \"exploratory\".\n" +"These tunnels are usually low-bandwidth." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:215 +msgid "" +"Peers for building exploratory tunnels are generally chosen randomly from" +" the standard group.\n" +"If the success rate of these build attempts is low compared to the client" +" tunnel build success rate,\n" +"the router will select a weighted average of peers randomly from the high" +" capacity group instead.\n" +"This helps maintain a satisfactory build success rate even when network " +"performance is poor.\n" +"There is no bias toward selecting peers that were previously participants" +" in an exploratory tunnel." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:223 +msgid "" +"As the standard group includes a very large subset of all peers the " +"router knows about,\n" +"exploratory tunnels are essentially built through a random selection of " +"all peers,\n" +"until the build success rate becomes too low." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:231 +msgid "Restrictions" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:232 +msgid "" +"To prevent some simple attacks, and for performance, there are the " +"following restrictions:" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:236 +msgid "Two peers from the same /16 IP space may not be in the same tunnel." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:239 +msgid "" +"A peer may participate in a maximum of 33% of all tunnels created by " +"the router." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:242 +msgid "Peers with extremely low bandwidth are not used." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:245 +msgid "Peers for which a recent connection attempt failed are not used." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:252 +msgid "Peer Ordering in Tunnels" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:253 +#, python-format +msgid "" +"Peers are ordered within tunnels to\n" +"to deal with the predecessor attack\n" +"(2008 update).\n" +"More information is on the tunnel " +"page." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:268 +msgid "Continue to analyze an tune speed and capacity calculations as necessary" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:271 +msgid "" +"Implement a more aggressive ejection strategy if necessary to control " +"memory usage as the network grows" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:274 +msgid "Evaluate group size limits" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:277 +msgid "Use GeoIP data to include or exclude certain peers, if configured" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:283 +#, python-format +msgid "" +"For those reading the paper\n" +"Peer Profiling and Selection in the I2P Anonymous " +"Network,\n" +"please keep in mind the following minor changes in I2P since the paper's " +"publication:" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:289 +msgid "The Integration calculation is still not used" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:290 +msgid "In the paper, \"groups\" are called \"tiers\"" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:291 +msgid "The \"Failing\" tier is no longer used" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:292 +msgid "The \"Not Failing\" tier is now named \"Standard\"" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:301 +msgid "One Cell Enough" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:303 +msgid "Tor Entry Guards" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:305 +msgid "Murdoch 2007 Paper" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:307 +msgid "Tune-up for Tor" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:309 +msgid "Low-resource Routing Attacks Against Tor" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:2 +msgid "I2P: A scalable framework for anonymous communication" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:5 +#: i2p2www/pages/site/docs/how/tech-intro.html:20 +#: i2p2www/pages/site/docs/transport/ssu.html:338 +msgid "Introduction" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:7 +msgid "I2P Operation" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:12 +#: i2p2www/pages/site/docs/how/tech-intro.html:397 +msgid "Transport protocols" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:13 +#: i2p2www/pages/site/docs/how/tech-intro.html:454 +msgid "Cryptography" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:21 +msgid "" +"I2P is a scalable, self organizing, resilient packet switched anonymous \n" +"network layer, upon which any number of different anonymity or security " +"conscious \n" +"applications can operate. Each of these applications may make their own " +"anonymity, \n" +"latency, and throughput tradeoffs without worrying about the proper " +"implementation \n" +"of a free route mixnet, allowing them to blend their activity with the " +"larger \n" +"anonymity set of users already running on top of I2P." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:30 +msgid "" +"Applications available already provide the full range of typical Internet" +" activities -\n" +"anonymous web browsing, web hosting, chat, file sharing, e-mail,\n" +"blogging and content syndication, newsgroups, as well as several other " +"applications under development." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:36 +msgid "Web browsing: using any existing browser that supports using a proxy." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:37 +msgid "Chat: IRC, Jabber, I2P-Messenger." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:38 +msgid "" +"File sharing: I2PSnark, Robert, iMule, \n" +"I2Phex, PyBit, I2P-bt\n" +"and others." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:43 +msgid "" +"E-mail: susimail and I2P-Bote." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:44 +msgid "" +"Blog: using e.g. the pebble plugin or the distributed blogging software " +"Syndie." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:45 +msgid "" +"Distributed Data Store: Save your data redundantly in the Tahoe-LAFS " +"cloud over I2P." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:46 +msgid "Newsgroups: using any newsgroup reader that supports using a proxy." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:49 +msgid "" +"Unlike web sites hosted within content distribution networks like Freenet \n" +"or GNUnet, the services " +"hosted on \n" +"I2P are fully interactive - there are traditional web-style search " +"engines, \n" +"bulletin boards, blogs you can comment on, database driven sites, and " +"bridges \n" +"to query static systems like Freenet without needing to install it " +"locally." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:57 +msgid "" +"With all of these anonymity enabled applications, I2P takes on the role \n" +"of the message oriented middleware - applications say that they want to " +"send \n" +"some data to a cryptographic identifier (a \"destination\") and I2P takes" +" care \n" +"of making sure it gets there securely and anonymously. I2P also bundles a" +" \n" +"simple streaming library to allow I2P's " +"anonymous \n" +"best-effort messages to transfer as reliable, in-order streams, " +"transparently \n" +"offering a TCP based congestion control algorithm tuned for the high " +"bandwidth \n" +"delay product of the network. While there have been several simple SOCKS " +"proxies \n" +"available to tie existing applications into the network, their value has " +"been \n" +"limited as nearly every application routinely exposes what, in an " +"anonymous \n" +"context, is sensitive information. The only safe way to go is to fully " +"audit \n" +"an application to ensure proper operation and to assist in that we " +"provide \n" +"a series of APIs in various languages which can be used to make the most " +"out \n" +"of the network." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:74 +#, python-format +msgid "" +"I2P is not a research project - academic, commercial, or governmental, " +"but \n" +"is instead an engineering effort aimed at doing whatever is necessary to " +"provide \n" +"a sufficient level of anonymity to those who need it. It has been in " +"active \n" +"development since early 2003 with one full time developer and a dedicated" +" \n" +"group of part time contributors from all over the world. All of the work " +"done \n" +"on I2P is open source and freely available on the website, \n" +"with the majority of the code released outright into the public domain, " +"though \n" +"making use of a few cryptographic routines under BSD-style licenses. The " +"people \n" +"working on I2P do not control what people release client applications " +"under, \n" +"and there are several GPL'ed applications available (I2PTunnel, \n" +"susimail, I2PSnark, I2P-" +"Bote, \n" +"I2Phex and others.).\n" +"Funding for I2P comes entirely from " +"donations,\n" +"and does not receive any tax breaks in any jurisdiction at this time,\n" +"as many of the developers are themselves anonymous." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:92 +msgid "Operation" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:94 +msgid "" +"To understand I2P's operation, it is essential to understand a few key " +"concepts. \n" +"First, I2P makes a strict separation between the software participating " +"in \n" +"the network (a \"router\") and the anonymous endpoints (\"destinations\")" +" associated \n" +"with individual applications. The fact that someone is running I2P is not" +" \n" +"usually a secret. What is hidden is information on what the user is " +"doing, \n" +"if anything at all, as well as what router a particular destination is " +"connected \n" +"to. End users will typically have several local destinations on their " +"router \n" +"- for instance, one proxying in to IRC servers, another supporting the " +"user's \n" +"anonymous webserver (\"eepsite\"), another for an I2Phex instance, " +"another for \n" +"torrents, etc." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:107 +msgid "" +"Another critical concept to understand is the \"tunnel\".\n" +"A tunnel is a directed path through an explicitly selected list of " +"routers.\n" +"Layered encryption is used, so each of the routers can only decrypt a " +"single layer.\n" +"The decrypted information contains the IP of the next router, along with\n" +"the encrypted information to be forwarded.\n" +"Each tunnel has a starting point (the first router, also known as " +"\"gateway\")\n" +"and an end point. Messages can be sent only in one way. To send messages " +"back,\n" +"another tunnel is required." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:118 +#: i2p2www/pages/site/docs/tunnels/implementation.html:105 +msgid "Inbound and outbound tunnel schematic" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:120 +msgid "Figure 1: Two types of tunnels exist: inbound and outbound." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:123 +msgid "" +"Two types of tunnels exist:\n" +"\"outbound\" tunnels send messages away from the tunnel creator,\n" +"while \"inbound\" tunnels bring messages to the tunnel creator.\n" +"Combining these two tunnels allows users to send messages to each other.\n" +"The sender (\"Alice\" in the above image) sets up an outbound tunnel,\n" +"while the receiver (\"Bob\" in the above image) creates an inbound " +"tunnel.\n" +"The gateway of an inbound tunnel can receive messages from any other user" +"\n" +"and will send them on until the endpoint (\"Bob\").\n" +"The endpoint of the outbound tunnel will need to send the message\n" +"on to the gateway of the inbound tunnel.\n" +"To do this, the sender (\"Alice\") adds instructions to her encrypted " +"message.\n" +"Once the endpoint of the outbound tunnel decrypts the message,\n" +"it will have instructions to forward the message to the correct\n" +"inbound gateway (the gateway to \"Bob\")." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:140 +msgid "" +"A third critical concept to understand is I2P's \"network " +"database\" (or \"netDb\") \n" +"- a pair of algorithms used to share network metadata. The two types of " +"metadata \n" +"carried are \"routerInfo\" and \"leaseSets\" - the " +"routerInfo gives routers the \n" +"data necessary for contacting a particular router (their public keys, " +"transport \n" +"addresses, etc), while the leaseSet gives routers the information " +"necessary \n" +"for contacting a particular destination. A leaseSet contains a number of " +"\"leases\".\n" +"Each of this leases specifies a tunnel gateway, which allows reaching a " +"specific destination.\n" +"The full information contained in a lease:" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:151 +msgid "Inbound gateway for a tunnel that allows reaching a specific destination." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:152 +msgid "Time when a tunnel expires." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:153 +msgid "" +"Pair of public keys to be able to encrypt messages (to send through the " +"tunnel and reach the destination)." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:155 +msgid "" +"Routers themselves send their routerInfo to the netDb directly, while " +"leaseSets are sent through outbound tunnels\n" +"(leaseSets need to be sent anonymously, to avoid correlating a router " +"with his leaseSets)." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:160 +msgid "" +"We can combine the above concepts to build successful connections in the " +"network." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:164 +msgid "" +"To build up her own inbound and outbound tunnels, Alice does a lookup in " +"the netDb to collect routerInfo.\n" +"This way, she gathers lists of peers she can use as hops in her tunnels.\n" +"She can then send a build message to the first hop, requesting the " +"construction of a tunnel and asking\n" +"that router to send the construction message onward, until the tunnel has" +" been constructed." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:171 +msgid "Request information on other routers" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:173 +msgid "Build tunnel using router information" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:175 +msgid "Figure 2: Router information is used to build tunnels." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:178 +msgid "" +"When Alice wants to send a message to Bob, she first does a lookup in the" +" \n" +"netDb to find Bob's leaseSet, giving her his current inbound tunnel " +"gateways. \n" +"She then picks one of her outbound tunnels and sends the message down it " +"with \n" +"instructions for the outbound tunnel's endpoint to forward the message on" +" \n" +"to one of Bob's inbound tunnel gateways. When the outbound tunnel " +"endpoint \n" +"receives those instructions, it forwards the message as requested, and " +"when \n" +"Bob's inbound tunnel gateway receives it, it is forwarded down the tunnel" +" \n" +"to Bob's router. If Alice wants Bob to be able to reply to the message, " +"she \n" +"needs to transmit her own destination explicitly as part of the message " +"itself.\n" +"This can be done by introducing a higher-level layer, which is done in " +"the\n" +"streaming library.\n" +"Alice may also cut down on the response time by bundling her most \n" +"recent LeaseSet with the message so that Bob doesn't need to do a netDb " +"lookup \n" +"for it when he wants to reply, but this is optional." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:195 +msgid "Connect tunnels using LeaseSets" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:195 +msgid "Connect tunnels using leaseSets" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:197 +msgid "Figure 3: LeaseSets are used to connect outbound and inbound tunnels." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:200 +msgid "" +"While the tunnels themselves have layered encryption to prevent " +"unauthorized \n" +"disclosure to peers inside the network (as the transport layer itself " +"does \n" +"to prevent unauthorized disclosure to peers outside the network), it is " +"necessary \n" +"to add an additional end to end layer of encryption to hide the message " +"from \n" +"the outbound tunnel endpoint and the inbound tunnel gateway. This \"garlic \n" +"encryption\" lets Alice's router wrap up multiple messages into a " +"single \n" +"\"garlic message\", encrypted to a particular public key so that " +"intermediary \n" +"peers cannot determine either how many messages are within the garlic, " +"what \n" +"those messages say, or where those individual cloves are destined. For " +"typical \n" +"end to end communication between Alice and Bob, the garlic will be " +"encrypted \n" +"to the public key published in Bob's leaseSet, allowing the message to be" +" \n" +"encrypted without giving out the public key to Bob's own router." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:215 +msgid "" +"Another important fact to keep in mind is that I2P is entirely message " +"based \n" +"and that some messages may be lost along the way. Applications using I2P " +"can \n" +"use the message oriented interfaces and take care of their own congestion" +" \n" +"control and reliability needs, but most would be best served by reusing " +"the \n" +"provided streaming library to view I2P as " +"a streams \n" +"based network." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:225 +msgid "" +"Both inbound and outbound tunnels work along similar principles.\n" +"The tunnel gateway accumulates a number of tunnel messages, eventually " +"preprocessing \n" +"them into something for tunnel delivery. Next, the gateway encrypts that " +"preprocessed \n" +"data and forwards it to the first hop. That peer and subsequent tunnel " +"participants \n" +"add on a layer of encryption after verifying that it isn't a duplicate " +"before \n" +"forward it on to the next peer. Eventually, the message arrives at the " +"endpoint \n" +"where the messages are split out again and forwarded on as requested. The" +" \n" +"difference arises in what the tunnel's creator does - for inbound " +"tunnels, \n" +"the creator is the endpoint and they simply decrypt all of the layers " +"added, \n" +"while for outbound tunnels, the creator is the gateway and they pre-" +"decrypt \n" +"all of the layers so that after all of the layers of per-hop encryption " +"are \n" +"added, the message arrives in the clear at the tunnel endpoint." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:240 +msgid "" +"The choice of specific peers to pass on messages as well as their " +"particular \n" +"ordering is important to understanding both I2P's anonymity and " +"performance \n" +"characteristics. While the network database (below) has its own criteria " +"for \n" +"picking what peers to query and store entries on, tunnel creators may use" +" any peers \n" +"in the network in any order (and even any number of times) in a single " +"tunnel. \n" +"If perfect latency and capacity data were globally known, selection and " +"ordering \n" +"would be driven by the particular needs of the client in tandem with " +"their \n" +"threat model. Unfortunately, latency and capacity data is not trivial to " +"gather \n" +"anonymously, and depending upon untrusted peers to provide this " +"information \n" +"has its own serious anonymity implications." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:253 +msgid "" +"From an anonymity perspective, the simplest technique would be to pick " +"peers \n" +"randomly from the entire network, order them randomly and use those peers" +" \n" +"in that order for all eternity. From a performance perspective, the " +"simplest \n" +"technique would be to pick the fastest peers with the necessary spare " +"capacity, \n" +"spreading the load across different peers to handle transparent failover," +" \n" +"and to rebuild the tunnel whenever capacity information changes. While " +"the \n" +"former is both brittle and inefficient, the later requires inaccessible " +"information \n" +"and offers insufficient anonymity. I2P is instead working on offering a " +"range \n" +"of peer selection strategies, coupled with anonymity aware measurement " +"code \n" +"to organize the peers by their profiles." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:266 +msgid "" +"As a base, I2P is constantly profiling the peers with which it interacts" +" \n" +"with by measuring their indirect behavior - for instance, when a peer " +"responds \n" +"to a netDb lookup in 1.3 seconds, that round trip latency is recorded in " +"the \n" +"profiles for all of the routers involved in the two tunnels (inbound and " +"outbound) \n" +"through which the request and response passed, as well as the queried " +"peer's \n" +"profile. Direct measurement, such as transport layer latency or " +"congestion, \n" +"is not used as part of the profile, as it can be manipulated and " +"associated \n" +"with the measuring router, exposing them to trivial attacks. While " +"gathering \n" +"these profiles, a series of calculations are run on each to summarize its" +" \n" +"performance - its latency, capacity to handle lots of activity, whether " +"they \n" +"are currently overloaded, and how well integrated into the network they " +"seem \n" +"to be. These calculations are then compared for active peers to organize " +"the \n" +"routers into four tiers - fast and high capacity, high capacity, not " +"failing, \n" +"and failing. The thresholds for those tiers are determined dynamically, " +"and \n" +"while they currently use fairly simple algorithms, alternatives exist." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:284 +msgid "" +"Using this profile data, the simplest reasonable peer selection strategy" +" \n" +"is to pick peers randomly from the top tier (fast and high capacity), and" +" \n" +"this is currently deployed for client tunnels. Exploratory tunnels (used " +"for \n" +"netDb and tunnel management) pick peers randomly from the \"not failing\"" +" tier \n" +"(which includes routers in 'better' tiers as well), allowing the peer to " +"sample \n" +"routers more widely, in effect optimizing the peer selection through " +"randomized \n" +"hill climbing. These strategies alone do however leak information " +"regarding \n" +"the peers in the router's top tier through predecessor and netDb " +"harvesting \n" +"attacks. In turn, several alternatives exist which, while not balancing " +"the \n" +"load as evenly, will address the attacks mounted by particular classes of" +" \n" +"adversaries." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:298 +msgid "" +"By picking a random key and ordering the peers according to their XOR " +"distance \n" +"from it, the information leaked is reduced in predecessor and harvesting " +"attacks \n" +"according to the peers' failure rate and the tier's churn. Another simple" +" \n" +"strategy for dealing with netDb harvesting attacks is to simply fix the " +"inbound \n" +"tunnel gateway(s) yet randomize the peers further on in the tunnels. To " +"deal \n" +"with predecessor attacks for adversaries which the client contacts, the " +"outbound \n" +"tunnel endpoints would also remain fixed. The selection of which peer to " +"fix \n" +"on the most exposed point would of course need to have a limit to the " +"duration, \n" +"as all peers fail eventually, so it could either be reactively adjusted " +"or \n" +"proactively avoided to mimic a measured mean time between failures of " +"other \n" +"routers. These two strategies can in turn be combined, using a fixed " +"exposed \n" +"peer and an XOR based ordering within the tunnels themselves. A more " +"rigid \n" +"strategy would fix the exact peers and ordering of a potential tunnel, " +"only \n" +"using individual peers if all of them agree to participate in the same " +"way \n" +"each time. This varies from the XOR based ordering in that the " +"predecessor \n" +"and successor of each peer is always the same, while the XOR only makes " +"sure \n" +"their order doesn't change." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:318 +#, python-format +msgid "" +"As mentioned before, I2P currently (release 0.8) includes the tiered \n" +"random strategy above, with XOR-based ordering. A \n" +"more detailed discussion of the mechanics involved in tunnel operation, " +"management, \n" +"and peer selection can be found in the tunnel " +"spec." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:326 +#, python-format +msgid "" +"As mentioned earlier, I2P's netDb works to share the network's metadata.\n" +"This is detailed in the network database page,\n" +"but a basic explanation is available below." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:332 +msgid "" +"A percentage of I2P users are appointed as 'floodfill peers'.\n" +"Currently, I2P installations that have a lot of bandwidth and are fast " +"enough,\n" +"will appoint themselves as floodfill as soon as the number of existing " +"floodfill routers\n" +"drops too low." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:339 +#, python-format +msgid "" +"Other I2P routers will store their data and lookup data by sending simple" +" 'store' and 'lookup' queries to the floodfills.\n" +"If a floodfill router receives a 'store' query, it will spread the " +"information to other floodfill routers\n" +"using the Kademlia " +"algorithm.\n" +"The 'lookup' queries currently function differently, to avoid an " +"important\n" +"security issue.\n" +"When a lookup is done, the floodfill router will not forward the lookup " +"to other peers,\n" +"but will always answer by itself (if it has the requested data)." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:349 +msgid "Two types of information are stored in the network database." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:353 +msgid "" +"A RouterInfo stores information on a specific I2P router and how " +"to contact it" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:354 +msgid "" +"A LeaseSet stores information on a specific destination (e.g. I2P " +"website, e-mail server...)" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:356 +msgid "" +"All of this information is signed by the publishing party and verified by" +" any I2P router using or storing the information.\n" +"In addition, the data contains timing information, to avoid storage of " +"old entries and possible attacks.\n" +"This is also why I2P bundles the necessary code for maintaining the " +"correct time, occasionally querying some SNTP servers \n" +"(the pool.ntp.org round robin by" +" default)\n" +"and detecting skew between routers at the transport layer." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:364 +msgid "Some additional remarks are also important." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:369 +msgid "Unpublished and encrypted leasesets:" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:370 +msgid "" +"One could only want specific people to be able to reach a destination.\n" +"This is possible by not publishing the destination in the netDb. You will" +" however have to transmit the destination by other means.\n" +"An alternative are the 'encrypted leaseSets'. These leaseSets can only be" +" decoded by people with access to the decryption key." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:377 +msgid "Bootstrapping:" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:378 +msgid "" +"Bootstrapping the netDb is quite simple. Once a router manages to receive" +" a single routerInfo of a reachable peer,\n" +"it can query that router for references to other routers in the network.\n" +"Currently, a number of users post their routerInfo files to a website to " +"make this information available.\n" +"I2P automatically connects to one of these websites to gather routerInfo " +"files and bootstrap." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:386 +msgid "Lookup scalability:" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:387 +msgid "" +"Lookups in the I2P network are not forwarded to other netDb routers.\n" +"Currently, this is not a major problem, since the network is not very " +"large.\n" +"However, as the network grows, not all routerInfo and leaseSet files will" +" be present\n" +"on each netDb router. This will cause a deterioration of the percentage " +"of successful lookups.\n" +"Because of this, refinements to the netDb will be done in the next " +"releases." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:398 +msgid "" +"Communication between routers needs to provide confidentiality and " +"integrity \n" +"against external adversaries while authenticating that the router " +"contacted \n" +"is the one who should receive a given message. The particulars of how " +"routers \n" +"communicate with other routers aren't critical - three separate protocols" +" \n" +"have been used at different points to provide those bare necessities." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:406 +#, python-format +msgid "" +"I2P started with a TCP-based protocol which \n" +"has since been disabled. Then, to accommodate the need for high degree " +"communication \n" +"(as a number of routers will end up speaking with many others), I2P moved" +" \n" +"from a TCP based transport to a UDP-based one - " +"\"Secure \n" +"Semireliable UDP\", or \"SSU\"." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:414 +#, python-format +msgid "As described in the SSU spec:" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:418 +msgid "" +"The goal of this protocol is to provide secure, authenticated, \n" +"semireliable and unordered message delivery, exposing only a minimal " +"amount \n" +"of data easily discernible to third parties. It should support high " +"degree \n" +"communication as well as TCP-friendly congestion control and may include" +" \n" +"PMTU detection. It should be capable of efficiently moving bulk data at " +"rates \n" +"sufficient for home users. In addition, it should support techniques for " +"addressing \n" +"network obstacles, like most NATs or firewalls." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:428 +#, python-format +msgid "" +"Following the introduction of SSU, after issues with congestion collapse" +" \n" +"appeared, a new NIO-based TCP transport called NTCP \n" +"was implemented. It is enabled by default for outbound connections only. " +"Those \n" +"who configure their NAT/firewall to allow inbound connections and specify" +" \n" +"the external host and port (dyndns/etc is ok) on /config.jsp can receive " +"inbound \n" +"connections. As NTCP is NIO based, so it doesn't suffer from the 1 thread" +" \n" +"per connection issues of the old TCP transport." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:438 +msgid "" +"I2P supports multiple transports simultaneously. A particular transport \n" +"for an outbound connection is selected with \"bids\". Each transport bids" +" for \n" +"the connection and the relative value of these bids assigns the priority." +" \n" +"Transports may reply with different bids, depending on whether there is " +"already \n" +"an established connection to the peer." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:446 +#, python-format +msgid "" +"The current implementation ranks NTCP as the highest-priority transport \n" +"for outbound connections in most situations. SSU is enabled for both " +"outbound \n" +"and inbound connections. Your firewall and your I2P router must be " +"configured \n" +"to allow inbound NTCP connections. For further information see the NTCP \n" +"page." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:455 +msgid "" +"A bare minimum set of cryptographic primitives are combined together to \n" +"provide I2P's layered defenses against a variety of adversaries. At the " +"lowest \n" +"level, inter router communication is protected by the transport layer " +"security \n" +"- SSU encrypts each packet with AES256/CBC with both an explicit IV and " +"MAC \n" +"(HMAC-MD5-128) after agreeing upon an ephemeral session key through a " +"2048bit \n" +"Diffie-Hellman exchange, station-to-station authentication with the other" +" \n" +"router's DSA key, plus each network message has their own hash for local " +"integrity \n" +"checking. Tunnel messages passed over the " +"transports \n" +"have their own layered AES256/CBC encryption with an explicit IV and " +"verified \n" +"at the tunnel endpoint with an additional SHA256 hash. Various other " +"messages \n" +"are passed along inside \"garlic messages\", which are encrypted with " +"ElGamal/AES+SessionTags \n" +"(explained below)." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:470 +msgid "Garlic messages" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:471 +msgid "" +"Garlic messages are an extension of \"onion\" layered encryption, " +"allowing \n" +"the contents of a single message to contain multiple \"cloves\" - fully " +"formed \n" +"messages alongside their own instructions for delivery. Messages are " +"wrapped \n" +"into a garlic message whenever the message would otherwise be passing in " +"cleartext \n" +"through a peer who should not have access to the information - for " +"instance, \n" +"when a router wants to ask another router to participate in a tunnel, " +"they \n" +"wrap the request inside a garlic, encrypt that garlic to the receiving " +"router's \n" +"2048bit ElGamal public key, and forward it through a tunnel. Another " +"example \n" +"is when a client wants to send a message to a destination - the sender's " +"router \n" +"will wrap up that data message (alongside some other messages) into a " +"garlic, \n" +"encrypt that garlic to the 2048bit ElGamal public key published in the " +"recipient's \n" +"leaseSet, and forward it through the appropriate tunnels." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:486 +msgid "" +"The \"instructions\" attached to each clove inside the encryption layer " +"includes \n" +"the ability to request that the clove be forwarded locally, to a remote " +"router, \n" +"or to a remote tunnel on a remote router. There are fields in those " +"instructions \n" +"allowing a peer to request that the delivery be delayed until a certain " +"time \n" +"or condition has been met, though they won't be honored until the nontrivial \n" +"delays are deployed. It is possible to explicitly route garlic " +"messages \n" +"any number of hops without building tunnels, or even to reroute tunnel " +"messages \n" +"by wrapping them in garlic messages and forwarding them a number of hops " +"prior \n" +"to delivering them to the next hop in the tunnel, but those techniques " +"are \n" +"not currently used in the existing implementation." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:499 +msgid "Session tags" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:500 +msgid "" +"As an unreliable, unordered, message based system, I2P uses a simple " +"combination \n" +"of asymmetric and symmetric encryption algorithms to provide data " +"confidentiality \n" +"and integrity to garlic messages. As a whole, the combination is referred" +" \n" +"to as ElGamal/AES+SessionTags, but that is an excessively verbose way to " +"describe \n" +"the simple use of 2048bit ElGamal, AES256, SHA256 and 32 byte nonces." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:539 +msgid "" +"Session tags themselves have a very short lifetime, after which they are" +" \n" +"discarded if not used. In addition, the quantity stored for each key is " +"limited, \n" +"as are the number of keys themselves - if too many arrive, either new or " +"old \n" +"messages may be dropped. The sender keeps track whether messages using " +"session \n" +"tags are getting through, and if there isn't sufficient communication it " +"may \n" +"drop the ones previously assumed to be properly delivered, reverting back" +" \n" +"to the full expensive ElGamal encryption." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:549 +msgid "" +"One alternative is to transmit only a single session tag, and from that," +" \n" +"seed a deterministic PRNG for determining what tags to use or expect. By " +"keeping \n" +"this PRNG roughly synchronized between the sender and recipient (the " +"recipient \n" +"precomputes a window of the next e.g. 50 tags), the overhead of " +"periodically \n" +"bundling a large number of tags is removed, allowing more options in the " +"space/time \n" +"tradeoff, and perhaps reducing the number of ElGamal encryptions " +"necessary. \n" +"However, it would depend upon the strength of the PRNG to provide the " +"necessary \n" +"cover against internal adversaries, though perhaps by limiting the amount" +" \n" +"of times each PRNG is used, any weaknesses can be minimized. At the " +"moment, \n" +"there are no immediate plans to move towards these synchronized PRNGs." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:562 +msgid "Future" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:563 +msgid "" +"While I2P is currently functional and sufficient for many scenarios, " +"there \n" +"are several areas which require further improvement to meet the needs of " +"those \n" +"facing more powerful adversaries as well as substantial user experience " +"optimization." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:569 +msgid "Restricted route operation" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:570 +msgid "" +"I2P is an overlay network designed to be run on top of a functional " +"packet \n" +"switched network, exploiting the end to end principle to offer anonymity " +"and \n" +"security. While the Internet no longer fully embraces the end to end " +"principle\n" +"(due to the usage of NAT), \n" +"I2P does require a substantial portion of the network to be reachable - " +"there \n" +"may be a number of peers along the edges running using restricted routes," +" \n" +"but I2P does not include an appropriate routing algorithm for the " +"degenerate \n" +"case where most peers are unreachable. It would, however work on top of a" +" \n" +"network employing such an algorithm." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:582 +msgid "" +"Restricted route operation, where there are limits to what peers are " +"reachable \n" +"directly, has several different functional and anonymity implications, " +"dependent \n" +"upon how the restricted routes are handled. At the most basic level, " +"restricted \n" +"routes exist when a peer is behind a NAT or firewall which does not allow" +" \n" +"inbound connections. This was largely addressed in I2P 0.6.0.6 by " +"integrating \n" +"distributed hole punching into the transport layer, allowing people " +"behind \n" +"most NATs and firewalls to receive unsolicited connections without any " +"configuration. \n" +"However, this does not limit the exposure of the peer's IP address to " +"routers \n" +"inside the network, as they can simply get introduced to the peer through" +" \n" +"the published introducer." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:595 +msgid "" +"Beyond the functional handling of restricted routes, there are two levels" +" \n" +"of restricted operation that can be used to limit the exposure of one's " +"IP \n" +"address - using router-specific tunnels for communication, and offering " +"'client \n" +"routers'. For the former, routers can either build a new pool of tunnels " +"or \n" +"reuse their exploratory pool, publishing the inbound gateways to some of " +"them \n" +"as part of their routerInfo in place of their transport addresses. When a" +" \n" +"peer wants to get in touch with them, they see those tunnel gateways in " +"the \n" +"netDb and simply send the relevant message to them through one of the " +"published \n" +"tunnels. If the peer behind the restricted route wants to reply, it may " +"do \n" +"so either directly (if they are willing to expose their IP to the peer) " +"or \n" +"indirectly through their outbound tunnels. When the routers that the peer" +" \n" +"has direct connections to want to reach it (to forward tunnel messages, " +"for \n" +"instance), they simply prioritize their direct connection over the " +"published \n" +"tunnel gateway. The concept of 'client routers' simply extends the " +"restricted \n" +"route by not publishing any router addresses. Such a router would not " +"even \n" +"need to publish their routerInfo in the netDb, merely providing their " +"self \n" +"signed routerInfo to the peers that it contacts (necessary to pass the " +"router's \n" +"public keys). Both levels of restricted route operation are planned for " +"I2P \n" +"2.0." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:617 +msgid "" +"There are tradeoffs for those behind restricted routes, as they would " +"likely \n" +"participate in other people's tunnels less frequently, and the routers " +"which \n" +"they are connected to would be able to infer traffic patterns that would " +"not \n" +"otherwise be exposed. On the other hand, if the cost of that exposure is " +"less \n" +"than the cost of an IP being made available, it may be worthwhile. This, " +"of \n" +"course, assumes that the peers that the router behind a restricted route " +"contacts \n" +"are not hostile - either the network is large enough that the probability" +" \n" +"of using a hostile peer to get connected is small enough, or trusted (and" +" \n" +"perhaps temporary) peers are used instead." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:629 +msgid "Variable latency" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:630 +msgid "" +"Even though the bulk of I2P's initial efforts have been on low latency " +"communication, \n" +"it was designed with variable latency services in mind from the " +"beginning. \n" +"At the most basic level, applications running on top of I2P can offer the" +" \n" +"anonymity of medium and high latency communication while still blending " +"their \n" +"traffic patterns in with low latency traffic. Internally though, I2P can " +"offer \n" +"its own medium and high latency communication through the garlic " +"encryption \n" +"- specifying that the message should be sent after a certain delay, at a " +"certain \n" +"time, after a certain number of messages have passed, or another mix " +"strategy. \n" +"With the layered encryption, only the router that the clove exposed the " +"delay \n" +"request would know that the message requires high latency, allowing the " +"traffic \n" +"to blend in further with the low latency traffic. Once the transmission " +"precondition \n" +"is met, the router holding on to the clove (which itself would likely be " +"a \n" +"garlic message) simply forwards it as requested - to a router, to a " +"tunnel, \n" +"or, most likely, to a remote client destination." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:647 +msgid "" +"There are a substantial number of ways to exploit this capacity for high" +" \n" +"latency comm in I2P, but for the moment, doing so has been scheduled for " +"the \n" +"I2P 3.0 release. In the meantime, those requiring the anonymity that high" +" \n" +"latency comm can offer should look towards the application layer to " +"provide \n" +"it." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:655 +msgid "Open questions" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:657 +msgid "How to get rid of the timing constraint?" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:658 +msgid "Can we deal with the sessionTags more efficiently?" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:659 +msgid "" +"What, if any, batching/mixing strategies should be made available on the " +"tunnels?" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:660 +msgid "" +"What other tunnel peer selection and ordering strategies should be " +"available?" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:663 +msgid "Similar systems" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:665 +msgid "" +"I2P's architecture builds on the concepts of message oriented middleware," +" \n" +"the topology of DHTs, the anonymity and cryptography of free route " +"mixnets, \n" +"and the adaptability of packet switched networking. The value comes not " +"from \n" +"novel concepts of algorithms though, but from careful engineering " +"combining \n" +"the research results of existing systems and papers. While there are a " +"few \n" +"similar efforts worth reviewing, both for technical and functional " +"comparisons, \n" +"two in particular are pulled out here - Tor and Freenet." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:675 +#, python-format +msgid "See also the Network Comparisons Page." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:680 +#: i2p2www/pages/site/docs/how/tech-intro.html:745 +msgid "website" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:682 +msgid "" +"At first glance, Tor and I2P have many functional and anonymity related \n" +"similarities. While I2P's development began before we were aware of the " +"early \n" +"stage efforts on Tor, many of the lessons of the original onion routing " +"and \n" +"ZKS efforts were integrated into I2P's design. Rather than building an " +"essentially \n" +"trusted, centralized system with directory servers, I2P has a self " +"organizing \n" +"network database with each peer taking on the responsibility of profiling" +" \n" +"other routers to determine how best to exploit available resources. " +"Another \n" +"key difference is that while both I2P and Tor use layered and ordered " +"paths \n" +"(tunnels and circuits/streams), I2P is fundamentally a packet switched " +"network, \n" +"while Tor is fundamentally a circuit switched one, allowing I2P to " +"transparently \n" +"route around congestion or other network failures, operate redundant " +"pathways, \n" +"and load balance the data across available resources. While Tor offers " +"the \n" +"useful outproxy functionality by offering integrated outproxy discovery " +"and \n" +"selection, I2P leaves such application layer decisions up to applications" +" \n" +"running on top of I2P - in fact, I2P has even externalized the TCP-like " +"streaming \n" +"library itself to the application layer, allowing developers to " +"experiment \n" +"with different strategies, exploiting their domain specific knowledge to " +"offer \n" +"better performance." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:703 +msgid "" +"From an anonymity perspective, there is much similarity when the core " +"networks \n" +"are compared. However, there are a few key differences. When dealing with" +" \n" +"an internal adversary or most external adversaries, I2P's simplex tunnels" +" \n" +"expose half as much traffic data than would be exposed with Tor's duplex " +"circuits \n" +"by simply looking at the flows themselves - an HTTP request and response " +"would \n" +"follow the same path in Tor, while in I2P the packets making up the " +"request \n" +"would go out through one or more outbound tunnels and the packets making " +"up \n" +"the response would come back through one or more different inbound " +"tunnels. \n" +"While I2P's peer selection and ordering strategies should sufficiently " +"address \n" +"predecessor attacks, should a switch to bidirectional tunnels be " +"necessary,\n" +"we could simply build an inbound and outbound tunnel along the same " +"routers." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:717 +msgid "" +"Another anonymity issue comes up in Tor's use of telescopic tunnel " +"creation, \n" +"as simple packet counting and timing measurements as the cells in a " +"circuit \n" +"pass through an adversary's node exposes statistical information " +"regarding \n" +"where the adversary is within the circuit. I2P's unidirectional tunnel " +"creation \n" +"with a single message so that this data is not exposed. Protecting the " +"position \n" +"in a tunnel is important, as an adversary would otherwise be able to " +"mount \n" +"a series of powerful predecessor, intersection, and traffic confirmation " +"attacks." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:727 +msgid "" +"Tor's support for a second tier of \"onion proxies\" does offer a non-" +"trivial \n" +"degree of anonymity while requiring a low cost of entry, while I2P will " +"not \n" +"offer this topology until 2.0." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:733 +msgid "" +"On the whole, Tor and I2P complement each other in their focus - Tor " +"works \n" +"towards offering high speed anonymous Internet outproxying, while I2P " +"works \n" +"towards offering a decentralized resilient network in itself. In theory, " +"both \n" +"can be used to achieve both purposes, but given limited development " +"resources, \n" +"they both have their strengths and weaknesses. The I2P developers have " +"considered \n" +"the steps necessary to modify Tor to take advantage of I2P's design, but " +"concerns \n" +"of Tor's viability under resource scarcity suggest that I2P's packet " +"switching \n" +"architecture will be able to exploit scarce resources more effectively." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:747 +msgid "" +"Freenet played a large part in the initial stages of I2P's design - " +"giving \n" +"proof to the viability of a vibrant pseudonymous community completely " +"contained \n" +"within the network, demonstrating that the dangers inherent in outproxies" +" \n" +"could be avoided. The first seed of I2P began as a replacement " +"communication \n" +"layer for Freenet, attempting to factor out the complexities of a " +"scalable, \n" +"anonymous and secure point to point communication from the complexities " +"of \n" +"a censorship resistant distributed data store. Over time however, some of" +" \n" +"the anonymity and scalability issues inherent in Freenet's algorithms " +"made \n" +"it clear that I2P's focus should stay strictly on providing a generic " +"anonymous \n" +"communication layer, rather than as a component of Freenet. Over the " +"years, \n" +"the Freenet developers have come to see the weaknesses in the older " +"design, \n" +"prompting them to suggest that they will require a \"premix\" layer to " +"offer \n" +"substantial anonymity. In other words, Freenet needs to run on top of a " +"mixnet \n" +"such as I2P or Tor, with \"client nodes\" requesting and publishing data " +"through \n" +"the mixnet to the \"server nodes\" which then fetch and store the data " +"according \n" +"to Freenet's heuristic distributed data storage algorithms." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:766 +msgid "" +"Freenet's functionality is very complementary to I2P's, as Freenet " +"natively \n" +"provides many of the tools for operating medium and high latency systems," +" \n" +"while I2P natively provides the low latency mix network suitable for " +"offering \n" +"adequate anonymity. The logic of separating the mixnet from the " +"censorship-\n" +"resistant distributed data store still seems self-evident from an " +"engineering, \n" +"anonymity, security, and resource allocation perspective, so hopefully " +"the \n" +"Freenet team will pursue efforts in that direction, if not simply reusing" +" \n" +"(or helping to improve, as necessary) existing mixnets like I2P or Tor." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:777 +msgid "" +"It is worth mentioning that there has recently been discussion and work \n" +"by the Freenet developers on a \"globally scalable darknet\" using " +"restricted \n" +"routes between peers of various trust. While insufficient information has" +" \n" +"been made publicly available regarding how such a system would operate " +"for \n" +"a full review, from what has been said the anonymity and scalability " +"claims \n" +"seem highly dubious. In particular, the appropriateness for use in " +"hostile \n" +"regimes against state level adversaries has been tremendously overstated," +" \n" +"and any analysis on the implications of resource scarcity upon the " +"scalability \n" +"of the network has seemingly been avoided. Further questions regarding " +"susceptibility \n" +"to traffic analysis, trust and other topics do exist, but a more in-depth" +" \n" +"review of this \"globally scalable darknet\" will have to wait until the " +"Freenet \n" +"team makes more information available." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:793 +msgid "" +"I2P itself doesn't really do much - it simply sends messages to remote " +"destinations \n" +"and receives messages targeting local destinations - most of the " +"interesting \n" +"work goes on at the layers above it. By itself, I2P could be seen as an " +"anonymous \n" +"and secure IP layer, and the bundled streaming" +" library \n" +"as an implementation of an anonymous and secure TCP layer on top of it. " +"Beyond \n" +"that, I2PTunnel exposes a generic TCP " +"proxying \n" +"system for either getting into or out of the I2P network, plus a variety " +"of \n" +"network applications provide further functionality for end users." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:804 +msgid "Streaming library" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:805 +msgid "" +"The I2P streaming library can be viewed as a generic streaming interface " +"(mirroring TCP sockets),\n" +"and the implementation supports a sliding " +"window protocol\n" +"with several optimizations, to take into account the high delay over I2P." +"\n" +"Individual streams may adjust the maximum packet size and \n" +"other options, though the default of 4KB compressed seems a reasonable " +"tradeoff \n" +"between the bandwidth costs of retransmitting lost messages and the " +"latency \n" +"of multiple messages." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:815 +msgid "" +"In addition, in consideration of the relatively high cost of subsequent \n" +"messages, the streaming library's protocol for scheduling and delivering " +"messages \n" +"has been optimized to allow individual messages passed to contain as much" +" \n" +"information as is available. For instance, a small HTTP transaction " +"proxied \n" +"through the streaming library can be completed in a single round trip - " +"the \n" +"first message bundles a SYN, FIN and the small payload (an HTTP request " +"typically \n" +"fits) and the reply bundles the SYN, FIN, ACK and the small payload (many" +" \n" +"HTTP responses fit). While an additional ACK must be transmitted to tell " +"the \n" +"HTTP server that the SYN/FIN/ACK has been received, the local HTTP proxy " +"can \n" +"deliver the full response to the browser immediately." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:828 +msgid "" +"On the whole, however, the streaming library bears much resemblance to an" +" \n" +"abstraction of TCP, with its sliding windows, congestion control " +"algorithms \n" +"(both slow start and congestion avoidance), and general packet behavior " +"(ACK, \n" +"SYN, FIN, RST, etc)." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:835 +msgid "Naming library and addressbook" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:836 +#, python-format +msgid "" +"For more information see the Naming and " +"Addressbook page." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:840 +#: i2p2www/pages/site/docs/how/tech-intro.html:914 +#: i2p2www/pages/site/docs/how/tech-intro.html:961 +#: i2p2www/pages/site/docs/how/tech-intro.html:993 +#: i2p2www/pages/site/docs/how/tech-intro.html:1001 +#: i2p2www/pages/site/docs/how/tech-intro.html:1009 +#: i2p2www/pages/site/docs/how/tech-intro.html:1019 +#: i2p2www/pages/site/docs/how/tech-intro.html:1027 +#: i2p2www/pages/site/docs/how/tech-intro.html:1049 +#, python-format +msgid "Developed by: %(dev)s" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:842 +msgid "" +"Naming within I2P has been an oft-debated topic since the very beginning" +" \n" +"with advocates across the spectrum of possibilities. However, given I2P's" +" \n" +"inherent demand for secure communication and decentralized operation, the" +" \n" +"traditional DNS-style naming system is clearly out, as are \"majority " +"rules\" \n" +"voting systems. Instead, I2P ships with a generic naming library and a " +"base \n" +"implementation designed to work off a local name to destination mapping, " +"as \n" +"well as an optional add-on application called the \"addressbook\". The " +"addressbook \n" +"is a web-of-trust-driven secure, distributed, and human readable naming " +"system, \n" +"sacrificing only the call for all human readable names to be globally " +"unique \n" +"by mandating only local uniqueness. While all messages in I2P are " +"cryptographically \n" +"addressed by their destination, different people can have local " +"addressbook \n" +"entries for \"Alice\" which refer to different destinations. People can " +"still \n" +"discover new names by importing published addressbooks of peers specified" +" \n" +"in their web of trust, by adding in the entries provided through a third " +"party, \n" +"or (if some people organize a series of published addressbooks using a " +"first \n" +"come first serve registration system) people can choose to treat these " +"addressbooks \n" +"as name servers, emulating traditional DNS." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:862 +msgid "" +"I2P does not promote the use of DNS-like services though, as the damage \n" +"done by hijacking a site can be tremendous - and insecure destinations " +"have \n" +"no value. DNSsec itself still falls back on registrars and certificate " +"authorities, \n" +"while with I2P, requests sent to a destination cannot be intercepted or " +"the \n" +"reply spoofed, as they are encrypted to the destination's public keys, " +"and \n" +"a destination itself is just a pair of public keys and a certificate. " +"DNS-style \n" +"systems on the other hand allow any of the name servers on the lookup " +"path \n" +"to mount simple denial of service and spoofing attacks. Adding on a " +"certificate \n" +"authenticating the responses as signed by some centralized certificate " +"authority \n" +"would address many of the hostile nameserver issues but would leave open " +"replay \n" +"attacks as well as hostile certificate authority attacks." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:876 +msgid "" +"Voting style naming is dangerous as well, especially given the " +"effectiveness \n" +"of Sybil attacks in anonymous systems - the attacker can simply create an" +" \n" +"arbitrarily high number of peers and \"vote\" with each to take over a " +"given \n" +"name. Proof-of-work methods can be used to make identity non-free, but as" +" \n" +"the network grows the load required to contact everyone to conduct online" +" \n" +"voting is implausible, or if the full network is not queried, different " +"sets \n" +"of answers may be reachable." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:886 +msgid "" +"As with the Internet however, I2P is keeping the design and operation of" +" \n" +"a naming system out of the (IP-like) communication layer. The bundled " +"naming \n" +"library includes a simple service provider interface which alternate " +"naming \n" +"systems can plug into, allowing end users to drive what sort of naming " +"tradeoffs \n" +"they prefer." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:895 +msgid "" +"The old Syndie bundled with I2P has been replaced by the new Syndie which" +"\n" +"is distributed separately. For more information see the Syndie\n" +"pages." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:901 +msgid "" +"Syndie is a safe, anonymous blogging / content publication / content " +"aggregation \n" +"system. It lets you create information, share it with others, and read " +"posts \n" +"from those you're interested in, all while taking into consideration your" +" \n" +"needs for security and anonymity. Rather than building its own content " +"distribution \n" +"network, Syndie is designed to run on top of existing networks, " +"syndicating \n" +"content through eepsites, Tor hidden services, Freenet freesites, normal " +"websites, \n" +"usenet newsgroups, email lists, RSS feeds, etc. Data published with " +"Syndie \n" +"is done so as to offer pseudonymous authentication to anyone reading or " +"archiving \n" +"it." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:916 +msgid "" +"I2PTunnel is probably I2P's most popular and versatile client " +"application, \n" +"allowing generic proxying both into and out of the I2P network. I2PTunnel" +" \n" +"can be viewed as four separate proxying applications - a \"client\" which" +" receives \n" +"inbound TCP connections and forwards them to a given I2P destination, an " +"\"httpclient\" \n" +"(aka \"eepproxy\") which acts like an HTTP proxy and forwards the " +"requests to \n" +"the appropriate I2P destination (after querying the naming service if " +"necessary), \n" +"a \"server\" which receives inbound I2P streaming connections on a " +"destination \n" +"and forwards them to a given TCP host+port, and an \"httpserver\" which " +"extends \n" +"the \"server\" by parsing the HTTP request and responses to allow safer " +"operation. \n" +"There is an additional \"socksclient\" application, but its use is not " +"encouraged \n" +"for reasons previously mentioned." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:930 +msgid "" +"I2P itself is not an outproxy network - the anonymity and security " +"concerns \n" +"inherent in a mix net which forwards data into and out of the mix have " +"kept \n" +"I2P's design focused on providing an anonymous network which capable of " +"meeting \n" +"the user's needs without requiring external resources. However, the " +"I2PTunnel \n" +"\"httpclient\" application offers a hook for outproxying - if the " +"hostname requested \n" +"doesn't end in \".i2p\", it picks a random destination from a user-" +"provided \n" +"set of outproxies and forwards the request to them. These destinations " +"are \n" +"simply I2PTunnel \"server\" instances run by volunteers who have " +"explicitly \n" +"chosen to run outproxies - no one is an outproxy by default, and running " +"an \n" +"outproxy doesn't automatically tell other people to proxy through you. " +"While \n" +"outproxies do have inherent weaknesses, they offer a simple proof of " +"concept \n" +"for using I2P and provide some functionality under a threat model which " +"may \n" +"be sufficient for some users." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:946 +msgid "" +"I2PTunnel enables most of the applications in use. An \"httpserver\" " +"pointing \n" +"at a webserver lets anyone run their own anonymous website (or " +"\"eepsite\") \n" +"- a webserver is bundled with I2P for this purpose, but any webserver can" +" \n" +"be used. Anyone may run a \"client\" pointing at one of the anonymously " +"hosted \n" +"IRC servers, each of which are running a \"server\" pointing at their " +"local \n" +"IRCd and communicating between IRCds over their own \"client\" tunnels. " +"End \n" +"users also have \"client\" tunnels pointing at I2Pmail's \n" +"POP3 and SMTP destinations (which in turn are simply \"server\" instances" +" pointing \n" +"at POP3 and SMTP servers), as well as \"client\" tunnels pointing at " +"I2P's CVS \n" +"server, allowing anonymous development. At times people have even run " +"\"client\" \n" +"proxies to access the \"server\" instances pointing at an NNTP server." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:963 +msgid "" +"i2p-bt is a port of the mainline python BitTorrent client to run both the" +" \n" +"tracker and peer communication over I2P. Tracker requests are forwarded " +"through \n" +"the eepproxy to eepsites specified in the torrent file while tracker " +"responses \n" +"refer to peers by their destination explicitly, allowing i2p-bt to open " +"up \n" +"a streaming lib connection to query them " +"for \n" +"blocks." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:972 +msgid "" +"In addition to i2p-bt, a port of bytemonsoon has been made to I2P, making" +" \n" +"a few modifications as necessary to strip any anonymity-compromising " +"information \n" +"from the application and to take into consideration the fact that IPs " +"cannot \n" +"be used for identifying peers." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:980 +msgid "" +"I2PSnark developed: jrandom, et al, ported from mjw's Snark client" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:986 +msgid "" +"Bundled with the I2P install, I2PSnark offers a simple anonymous " +"BitTorrent \n" +"client with multitorrent capabilities, exposing all of the functionality " +"through \n" +"a plain HTML web interface." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:995 +#, python-format +msgid "" +"Robert is a Bittorrent client written in Python.\n" +"It is hosted on http://%(bob)s/Robert.html " +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:1003 +#, python-format +msgid "" +"PyBit is a Bittorrent client written in Python.\n" +"It is hosted on %(pybit)s " +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:1011 +msgid "" +"I2Phex is a fairly direct port of the Phex Gnutella filesharing client to" +" \n" +"run entirely on top of I2P. While it has disabled some of Phex's " +"functionality, \n" +"such as integration with Gnutella webcaches, the basic file sharing and " +"chatting \n" +"system is fully functional." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:1021 +msgid "" +"iMule is a fairly direct port of the aMule filesharing client \n" +"running entirely inside I2P." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:1029 +#, python-format +msgid "" +"I2Pmail is more a service than an application - postman offers both " +"internal \n" +"and external email with POP3 and SMTP service through I2PTunnel instances" +" \n" +"accessing a series of components developed with mastiejaner, allowing " +"people \n" +"to use their preferred mail clients to send and receive mail " +"pseudonymously. \n" +"However, as most mail clients expose substantial identifying information," +" \n" +"I2P bundles susi23's web based susimail client which has been built " +"specifically \n" +"with I2P's anonymity needs in mind. The I2Pmail/mail.i2p service offers " +"transparent \n" +"virus filtering as well as denial of service prevention with hashcash " +"augmented \n" +"quotas. In addition, each user has control of their batching strategy " +"prior \n" +"to delivery through the mail.i2p outproxies, which are separate from the " +"mail.i2p \n" +"SMTP and POP3 servers - both the outproxies and inproxies communicate " +"with \n" +"the mail.i2p SMTP and POP3 servers through I2P itself, so compromising " +"those \n" +"non-anonymous locations does not give access to the mail accounts or " +"activity \n" +"patterns of the user. At the moment the developers work on a " +"decentralized \n" +"mailsystem, called \"v2mail\". More information can be found on the " +"eepsite \n" +"%(postman)s." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:1051 +msgid "" +"I2P-Bote is a distributed e-mail application. It does not use the " +"traditional\n" +"e-mail concept of sending an e-mail to a server and retrieving it from a " +"server.\n" +"Instead, it uses a Kademlia Distributed Hash Table to store mails.\n" +"One user can push a mail into the DHT, while another can request the " +"e-mail from the DHT.\n" +"And all the mails sent within the I2P-Bote network are automatically " +"encrypted end-to-end.
\n" +"Furthermore, I2P-Bote offers a remailer function on top of I2P, for " +"increased high-latency anonymity." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:1061 +msgid "" +"I2P-Messenger is an end-to-end encrypted serverless communication " +"application.\n" +"For communication between two users, they need to give each other their " +"destination keys, to allow the other to connect.\n" +"It supports file transfer and has a search for other users, based on " +"Seedless." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:2 +msgid "I2P's Threat Model" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:3 +msgid "November 2010" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:7 +msgid "low" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:8 +msgid "medium" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:9 +msgid "high" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:34 +msgid "Damage Potential" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:35 +msgid "Reliability" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:36 +msgid "Exploitability" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:37 +msgid "Affected Users" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:38 +msgid "Discoverability" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:39 +msgid "Severity" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:40 +#: i2p2www/pages/site/docs/protocol/i2np.html:93 +msgid "Priority" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:45 +msgid "Index of Attacks" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:47 +#: i2p2www/pages/site/docs/how/threat-model.html:206 +msgid "Brute force attacks" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:48 +#: i2p2www/pages/site/docs/how/threat-model.html:250 +msgid "Timing attacks" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:49 +#: i2p2www/pages/site/docs/how/threat-model.html:287 +msgid "Intersection attacks" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:50 +#: i2p2www/pages/site/docs/how/threat-model.html:367 +msgid "Denial of service attacks" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:51 +#: i2p2www/pages/site/docs/how/threat-model.html:466 +msgid "Tagging attacks" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:52 +#: i2p2www/pages/site/docs/how/threat-model.html:484 +msgid "Partitioning attacks" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:53 +#: i2p2www/pages/site/docs/how/threat-model.html:524 +msgid "Predecessor attacks" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:54 +#: i2p2www/pages/site/docs/how/threat-model.html:569 +msgid "Harvesting attacks" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:55 +#: i2p2www/pages/site/docs/how/threat-model.html:616 +msgid "Identification Through Traffic Analysis" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:56 +#: i2p2www/pages/site/docs/how/threat-model.html:676 +msgid "Sybil attacks" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:57 +#: i2p2www/pages/site/docs/how/threat-model.html:725 +msgid "Buddy Exhaustion attacks" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:58 +#: i2p2www/pages/site/docs/how/threat-model.html:750 +msgid "Cryptographic attacks" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:59 +msgid "Floodfill attacks" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:60 +#: i2p2www/pages/site/docs/how/threat-model.html:811 +msgid "Other Network Database attacks" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:61 +msgid "Attacks on centralized resources" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:62 +#: i2p2www/pages/site/docs/how/threat-model.html:877 +msgid "Development attacks" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:63 +msgid "Implementation attacks" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:64 +#: i2p2www/pages/site/docs/how/threat-model.html:961 +msgid "Other Defenses" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:69 +msgid "What do we mean by \"anonymous\"?" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:71 +msgid "" +"Your level of anonymity can be described as \"how hard it is for someone\n" +"to find out information you don't want them to know?\" - who you are, " +"where\n" +"you are located, who you communicate with, or even when you communicate." +" \n" +"\"Perfect\" anonymity is not a useful concept here - software will not " +"make \n" +"you indistinguishable from people that don't use computers or who are not" +" on\n" +"the Internet. Instead, we are working to provide sufficient anonymity to" +" meet the\n" +"real needs of whomever we can - from those simply browsing websites, to " +"those exchanging\n" +"data, to those fearful of discovery by powerful organizations or states." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:82 +msgid "" +"The question of whether I2P provides sufficient anonymity for your \n" +"particular needs is a hard one, but this page will hopefully assist in \n" +"answering that question by exploring how I2P operates under various " +"attacks\n" +"so that you may decide whether it meets your needs." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:89 +msgid "" +"We welcome further research and analysis on I2P's resistance to the " +"threats described below.\n" +"More review of existing literature (much of it focused on Tor) and " +"original\n" +"work focused on I2P is needed." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:95 +msgid "Network Topology Summary" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:96 +#, python-format +msgid "" +"I2P builds off the ideas of many other \n" +"systems, but a few key points should be kept in" +" mind when \n" +"reviewing related literature:" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:102 +msgid "" +"I2P is a free route mixnet - the message creator explicitly " +"defines the\n" +"path that messages will be sent out (the outbound tunnel), and the " +"message \n" +"recipient explicitly defines the path that messages will be received on " +"(the\n" +"inbound tunnel)." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:108 +msgid "" +"I2P has no official entry and exit points - all peers fully " +"participate in the \n" +"mix, and there are no network layer in- or out-proxies (however, at the \n" +"application layer, a few proxies do exist)" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:113 +msgid "" +"I2P is fully distributed - there are no central controls or " +"authorities.\n" +"One could modify some routers to operate mix cascades (building tunnels " +"and giving\n" +"out the keys necessary to control the forwarding at the tunnel endpoint) " +"or directory \n" +"based profiling and selection, all without breaking compatibility with " +"the rest of \n" +"the network, but doing so is of course not necessary (and may even harm " +"one's\n" +"anonymity)." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:123 +#, python-format +msgid "" +"We have documented plans to implement nontrivial delays\n" +"and batching strategies \n" +"whose existence is only known to the particular hop or tunnel gateway " +"that \n" +"receives the message, allowing a mostly low latency mixnet to provide " +"cover \n" +"traffic for higher latency communication (e.g. email).\n" +"However we are aware that significant delays are required to provide " +"meaningful\n" +"protection, and that implementation of such delays will be a significant " +"challenge.\n" +"It is not clear at this time whether we will actually implement these " +"delay features." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:134 +msgid "" +"In theory, routers along the message path may inject an \n" +"arbitrary number of hops before forwarding the message to the next peer, " +"though\n" +"the current implementation does not." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:141 +msgid "The Threat Model" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:142 +msgid "" +"I2P design started in 2003, not long after the advent of\n" +"[Onion Routing],\n" +"[Freenet], and\n" +"[Tor].\n" +"Our design benefits substantially from the research published around that" +" time.\n" +"I2P uses several onion routing techniques, so we continue to benefit\n" +"from the significant academic interest in Tor." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:152 +msgid "" +"Taking from the attacks and analysis put forth in the \n" +"anonymity " +"literature (largely \n" +"Traffic Analysis: " +"Protocols, Attacks, Design \n" +"Issues and Open Problems), the following briefly describes a wide " +"variety \n" +"of attacks as well as many of I2Ps defenses. We update\n" +"this list to include new attacks as they are identified." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:161 +msgid "" +"Included are some attacks that may be unique to I2P.\n" +"We do not have good answers for all these attacks, however\n" +"we continue to do research and improve our defenses." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:167 +msgid "" +"In addition, many of these attacks are significantly easier than\n" +"they should be, due to the modest size of the current network.\n" +"While we are aware of some limitations that need to be addressed,\n" +"I2P is designed to support hundreds of thousands, or millions, of\n" +"participants.\n" +"As we continue to spread the word and grow the network,\n" +"these attacks will become much harder." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:177 +#, python-format +msgid "" +"The\n" +"network comparisons and\n" +"\"garlic\" terminology pages may also " +"be helpful\n" +"to review." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:210 +msgid "" +"A brute force attack can be mounted by a global passive or active " +"adversary, \n" +"watching all the messages pass between all of the nodes and attempting to" +" correlate\n" +"which message follows which path. Mounting this attack against I2P " +"should be \n" +"nontrivial, as all peers in the network are frequently sending messages " +"(both\n" +"end to end and network maintenance messages), plus an end to end message " +"changes\n" +"size and data along its path. In addition, the external adversary does " +"not have\n" +"access to the messages either, as inter-router communication is both " +"encrypted\n" +"and streamed (making two 1024 byte messages indistinguishable from one " +"2048 byte\n" +"message)." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:222 +msgid "" +"However, a powerful attacker can use brute force to detect trends - if " +"they \n" +"can send 5GB to an I2P destination and monitor everyone's network " +"connection,\n" +"they can eliminate all peers who did not receive 5GB of data. Techniques" +" to \n" +"defeat this attack exist, but may be prohibitively expensive (see: \n" +"Tarzan's " +"mimics\n" +"or constant rate traffic). Most users are not concerned with this " +"attack, as \n" +"the cost of mounting it are extreme (and often require illegal activity)." +" \n" +"However, the attack is still possible, for example by an observer at\n" +"a large ISP or an Internet exchange point.\n" +"Those who want to defend against it \n" +"would want to take appropriate countermeasures, such as\n" +"setting low bandwidth limits, and using unpublished or encrypted " +"leasesets for eepsites.\n" +"Other countermeasures, such as nontrivial delays and restricted routes, " +"are\n" +"not currently implemented." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:239 +#, python-format +msgid "" +"As a partial defense against a single router or group of routers trying " +"to route all the network's traffic,\n" +"routers contain limits as to how many tunnels can be routed through a " +"single peer.\n" +"As the network grows, these limits are subject to further adjustment.\n" +"Other mechanisms for peer rating, selection and avoidance\n" +"are discussed on the\n" +"peer selection page." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:254 +msgid "" +"I2P's messages are unidirectional and do not necessarily imply that a " +"reply\n" +"will be sent. However, applications on top of I2P will most likely have\n" +"recognizable patterns within the frequency of their messages - for " +"instance, an \n" +"HTTP request will be a small message with a large sequence of reply " +"messages \n" +"containing the HTTP response. Using this data as well as a broad view of" +" the \n" +"network topology, an attacker may be able to disqualify some links as " +"being too \n" +"slow to have passed the message along." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:264 +msgid "" +"This sort of attack is powerful, but its applicability to I2P is non " +"obvious,\n" +"as the variation on message delays due to queuing, message processing, " +"and \n" +"throttling will often meet or exceed the time of passing a message along " +"a \n" +"single link - even when the attacker knows that a reply will be sent as " +"soon as\n" +"the message is received. There are some scenarios which will expose " +"fairly \n" +"automatic replies though - the streaming library does (with the SYN+ACK) " +"as does the \n" +"message mode of guaranteed delivery (with the " +"DataMessage+DeliveryStatusMessage)." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:274 +#, python-format +msgid "" +"Without protocol scrubbing or higher latency, global active adversaries " +"can \n" +"gain substantial information. As such, people concerned with these " +"attacks could\n" +"increase the latency (using nontrivial " +"delays or \n" +"batching strategies), include protocol " +"scrubbing, or\n" +"other advanced tunnel routing techniques,\n" +"but these are unimplemented in I2P." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:283 +#, python-format +msgid "" +"References: Low-Resource Routing Attacks Against " +"Anonymous Systems" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:291 +msgid "" +"Intersection attacks against low latency systems are extremely powerful -" +"\n" +"periodically make contact with the target and keep track of what peers " +"are on\n" +"the network. Over time, as node churn occurs the attacker will gain \n" +"significant information about the target by simply intersecting the sets " +"of\n" +"peers that are online when a message successfully goes through. The cost" +" of \n" +"this attack is significant as the network grows, but may be feasible in " +"some\n" +"scenarios." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:301 +#, python-format +msgid "" +"In summary, if an attacker is at both ends of your tunnel at the same " +"time,\n" +"he may be successful.\n" +"I2P does not have a full defense to this for low latency communication.\n" +"This is an inherent weakness of low-latency onion routing.\n" +"Tor provides a similar disclaimer." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:309 +msgid "Partial defenses implemented in I2P:" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:313 +#, python-format +msgid "strict ordering of peers" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:316 +#, python-format +msgid "" +"peer profiling and selection from a " +"small group that changes slowly" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:319 +msgid "Limits on the number of tunnels routed through a single peer" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:322 +msgid "" +"Prevention of peers from the same /16 IP range from being members of a " +"single tunnel" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:325 +msgid "" +"For eepsites or other hosted services, we support\n" +"simultaneous hosting on multiple routers, or\n" +"multihoming" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:332 +msgid "" +"Even in total, these defenses are not a complete solution.\n" +"Also, we have made some design choices that may significantly increase " +"our vulnerability:" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:337 +msgid "We do not use low-bandwidth \"guard nodes\"" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:340 +msgid "" +"We use tunnel pools comprised of several tunnels, and traffic can shift " +"from tunnel to tunnel." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:343 +msgid "Tunnels are not long-lived; new tunnels are built every 10 minutes." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:346 +msgid "" +"Tunnel lengths are configurable.\n" +"While 3-hop tunnels are recommended for full protection, several " +"applications and\n" +"services use 2-hop tunnels by default." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:353 +#, python-format +msgid "" +"In the future, it could\n" +"for peers who can afford significant delays (per nontrivial\n" +"delays and batching strategies). " +"In addition,\n" +"this is only relevant for destinations that other people know about - a " +"private\n" +"group whose destination is only known to trusted peers does not have to " +"worry,\n" +"as an adversary can't \"ping\" them to mount the attack.

" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:362 +#, python-format +msgid "Reference: One Cell Enough" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:369 +msgid "" +"There are a whole slew of denial of service attacks available against " +"I2P,\n" +"each with different costs and consequences:" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:375 +msgid "" +"Greedy user attack: This is simply\n" +"people trying to consume significantly more resources than they are \n" +"willing to contribute. The defense against this is:" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:381 +#, python-format +msgid "" +"Set defaults so that most users provide resources to the network.\n" +"In I2P, users route traffic by default. In sharp distinction to\n" +"other networks,\n" +"over 95% of I2P users relay traffic for others." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:387 +msgid "" +"Provide easy configuration options so that users may increase their\n" +"contribution (share percentage) to the network. Display easy-to-" +"understand\n" +"metrics such as \"share ratio\" so that users may see what they are " +"contributing." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:392 +msgid "" +"Maintain a strong community with blogs, forums, IRC, and other means of " +"communication." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:399 +#, python-format +msgid "" +"Starvation attack: A hostile user may attempt to harm the network " +"by\n" +"creating a significant number of peers in the network who are not " +"identified as\n" +"being under control of the same entity (as with Sybil). These nodes then" +" \n" +"decide not to provide any resources to the network, causing existing " +"peers \n" +"to search through a larger network database or request more tunnels than" +" \n" +"should be necessary. \n" +"Alternatively, the nodes may provide intermittent service by periodically" +"\n" +"dropping selected traffic, or refusing connections to certain peers.\n" +"This behavior may be indistinguishable from that of a heavily-loaded or " +"failing node.\n" +"I2P addresses these issues by maintaining profiles on the \n" +"peers, attempting to identify underperforming ones and simply ignoring \n" +"them, or using them rarely.\n" +"We have significantly enhanced the\n" +"ability to recognize and avoid troublesome peers; however there are still" +"\n" +"significant efforts required in this area." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:419 +#, python-format +msgid "" +"Flooding attack: A hostile user may attempt to flood the network,\n" +"a peer, a destination, or a tunnel. Network and peer flooding is " +"possible,\n" +"and I2P does nothing to prevent standard IP layer flooding. The flooding" +" of\n" +"a destination with messages by sending a large number to the target's " +"various\n" +"inbound tunnel gateways is possible, but the destination will know this " +"both\n" +"by the contents of the message and because the tunnel's tests will fail." +" The\n" +"same goes for flooding just a single tunnel. I2P has no defenses for a " +"network\n" +"flooding attack. For a destination and tunnel flooding attack, the " +"target\n" +"identifies which tunnels are unresponsive and builds new ones. New code " +"could\n" +"also be written to add even more tunnels if the client wishes to handle " +"the\n" +"larger load. If, on the other hand, the load is more than the client can" +"\n" +"deal with, they can instruct the tunnels to throttle the number of " +"messages or\n" +"bytes they should pass on (once the advanced tunnel\n" +"operation is implemented)." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:438 +msgid "" +"CPU load attack: There are currently some methods for people to \n" +"remotely request that a peer perform some cryptographically expensive \n" +"operation, and a hostile attacker could use these to flood that peer with" +"\n" +"a large number of them in an attempt to overload the CPU. Both using " +"good \n" +"engineering practices and potentially requiring nontrivial certificates \n" +"(e.g. HashCash) to be attached to these expensive requests should " +"mitigate\n" +"the issue, though there may be room for an attacker to exploit various\n" +"bugs in the implementation." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:451 +#, python-format +msgid "" +"Floodfill DOS attack: A hostile user may attempt to harm the " +"network by\n" +"becoming a floodfill router. The current defenses against unreliable,\n" +"intermittent, or malicious floodfill routers are poor.\n" +"A floodfill router may provide bad or no response to lookups, and\n" +"it may also interfere with inter-floodfill communication.\n" +"Some defenses and\n" +"peer profiling are implemented,\n" +"however there is much more to do.\n" +"For more information see the\n" +"network database page." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:470 +#, python-format +msgid "" +"Tagging attacks - modifying a message so that it can later be identified" +" \n" +"further along the path - are by themselves impossible in I2P, as messages" +" \n" +"passed through tunnels are signed. However, if an attacker is the " +"inbound \n" +"tunnel gateway as well as a participant further along in that tunnel, " +"with\n" +"collusion they can identify the fact that they are in the same tunnel " +"(and \n" +"prior to adding unique hop ids and " +"other updates,\n" +"colluding peers within the same tunnel can recognize that fact without " +"any \n" +"effort). An attacker in an outbound tunnel and any part of an inbound " +"tunnel cannot \n" +"collude however, as the tunnel encryption pads and modifies the data " +"separately\n" +"for the inbound and outbound tunnels. External attackers cannot do " +"anything,\n" +"as the links are encrypted and messages signed." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:488 +msgid "" +"Partitioning attacks - finding ways to segregate (technically or " +"analytically)\n" +"the peers in a network - are important to keep in mind when dealing with " +"a \n" +"powerful adversary, since the size of the network plays a key role in " +"determining\n" +"your anonymity. Technical partitioning by cutting links between peers to" +" create\n" +"fragmented networks is addressed by I2P's built in network database, " +"which \n" +"maintains statistics about various peers so as to allow any existing " +"connections\n" +"to other fragmented sections to be exploited so as to heal the network. " +"However,\n" +"if the attacker does disconnect all links to uncontrolled peers, " +"essentially\n" +"isolating the target, no amount of network database healing will fix it." +" At\n" +"that point, the only thing the router can hope to do is notice that a " +"significant\n" +"number of previously reliable peers have become unavailable and alert the" +" client\n" +"that it is temporarily disconnected (this detection code is not " +"implemented at\n" +"the moment)." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:504 +#, python-format +msgid "" +"Partitioning the network analytically by looking for differences in how " +"routers \n" +"and destinations behave and grouping them accordingly is also a very " +"powerful\n" +"attack. For instance, an attacker harvesting" +" the network\n" +"database will know when a particular destination has 5 inbound tunnels in" +" their\n" +"LeaseSet while others have only 2 or 3, allowing the adversary to " +"potentially \n" +"partition clients by the number of tunnels selected. Another partition " +"is \n" +"possible when dealing with the nontrivial " +"delays and \n" +"batching strategies, as the tunnel " +"gateways and the\n" +"particular hops with non-zero delays will likely stand out. However, " +"this data\n" +"is only exposed to those specific hops, so to partition effectively on " +"that \n" +"matter, the attacker would need to control a significant portion of the " +"network\n" +"(and still that would only be a probabilistic partition, as they wouldn't" +" know\n" +"which other tunnels or messages have those delays)." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:520 +#, python-format +msgid "" +"Also discussed on the network database " +"page (bootstrap attack)." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:528 +msgid "" +"The predecessor attack is passively gathering statistics in an attempt to" +" see\n" +"what peers are 'close' to the destination by participating in their " +"tunnels and\n" +"keeping track of the previous or next hop (for outbound or inbound " +"tunnels, \n" +"respectively). Over time, using a perfectly random sample of peers and " +"random\n" +"ordering, an attacker would be able to see which peer shows up as " +"'closer' \n" +"statistically more than the rest, and that peer would in turn be where " +"the\n" +"target is located." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:538 +#, python-format +msgid "" +"I2P avoids this in four ways: first, the peers selected to participate in" +"\n" +"tunnels are not randomly sampled throughout the network - they are " +"derived from\n" +"the peer selection algorithm which " +"breaks them\n" +"into tiers. Second, with strict " +"ordering of peers\n" +"in a tunnel, the fact that a peer shows up more frequently does not mean " +"they're\n" +"the source. Third, with permuted " +"tunnel length\n" +"(not enabled by default)\n" +"even 0 hop tunnels can provide plausible deniability as the occasional \n" +"variation of the gateway will look like normal tunnels. Fourth, with \n" +"restricted routes " +"(unimplemented), only the peer with\n" +"a restricted connection to the target will ever contact the target, while" +" \n" +"attackers will merely run into that gateway." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:555 +#, python-format +msgid "" +"The current tunnel build method\n" +"was specifically designed to combat the predecessor attack.\n" +"See also the intersection attack." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:561 +#, python-format +msgid "" +"References: %(pdf2008)s\n" +"which is an update to the 2004 predecessor attack paper\n" +"%(pdf2004)s." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:573 +msgid "" +"\"Harvesting\" means compiling a list of users running I2P.\n" +"It can be used for legal attacks and to help\n" +"other attacks by simply running a peer, seeing who it connects to, and \n" +"harvesting whatever references to other peers it can find." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:580 +msgid "" +"I2P itself is not designed with effective defenses against\n" +"this attack, since there is the distributed network database \n" +"containing just this information.\n" +"The following factors make the attack somewhat harder in practice:" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:587 +msgid "" +"Network growth will make it more difficult to obtain a given proportion " +"of the network" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:590 +msgid "Floodfill routers implement query limits as DOS protection" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:593 +msgid "" +"\"Hidden mode\", which prevents a router from publishing its information " +"to the netDb,\n" +"(but also prevents it from relaying data) is not widely used now but " +"could be." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:599 +#, python-format +msgid "" +"In future implementations,\n" +"basic and \n" +"comprehensive restricted " +"routes,\n" +"this attack loses much of its power, as the \"hidden\" peers do not " +"publish their\n" +"contact addresses in the network database - only the tunnels through " +"which \n" +"they can be reached (as well as their public keys, etc)." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:608 +msgid "" +"In the future, routers could use GeoIP to identify if they are in a " +"particular\n" +"country where identification as an I2P node would be risky.\n" +"In that case, the router could automatically enable hidden mode, or\n" +"enact other restricted route methods." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:620 +#, python-format +msgid "" +"By inspecting the traffic into and out of a router, a malicious ISP\n" +"or state-level firewall could identify that a computer is running I2P.\n" +"As discussed above, I2P is not specifically " +"designed\n" +"to hide that a computer is running I2P. However, several design decisions" +" made\n" +"in the design of the\n" +"transport layer and protocols\n" +"make it somewhat difficult to identify I2P traffic:" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:630 +msgid "Random port selection" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:633 +msgid "Point-to-Point Encryption of all traffic" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:636 +msgid "" +"DH key exchange with no protocol bytes or other unencrypted constant " +"fields" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:639 +#, python-format +msgid "" +"Simultaneous use of both\n" +"TCP and\n" +"UDP transports.\n" +"UDP may be much harder for some Deep Packet Inspection (DPI) equipment to" +" track." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:647 +msgid "" +"In the near future, we plan to directly address traffic analysis issues " +"by further obfuscation of I2P transport protocols, possibly including:" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:651 +msgid "" +"Padding at the transport layer to random lengths, especially during the " +"connection handshake" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:654 +msgid "" +"Study of packet size distribution signatures, and additional padding as " +"necessary" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:657 +msgid "" +"Development of additional transport methods that mimic SSL or other " +"common protocols" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:660 +msgid "" +"Review of padding strategies at higher layers to see how they affect " +"packet sizes at the transport layer" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:663 +msgid "" +"Review of methods implemented by various state-level firewalls to block " +"Tor" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:666 +msgid "Working directly with DPI and obfuscation experts" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:671 +#, python-format +msgid "" +"Reference: Breaking and Improving Protocol " +"Obfuscation" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:680 +msgid "" +"Sybil describes a category of attacks where the adversary creates " +"arbitrarily\n" +"large numbers of colluding nodes and uses the increased numbers to help \n" +"mounting other attacks. For instance, if an attacker is in a network " +"where peers\n" +"are selected randomly and they want an 80% chance to be one of those " +"peers, they\n" +"simply create five times the number of nodes that are in the network and " +"roll \n" +"the dice. When identity is free, Sybil can be a very potent technique " +"for a \n" +"powerful adversary. The primary technique to address this is simply to " +"make \n" +"identity 'non free' - Tarzan\n" +"(among others) uses the fact that IP addresses are limited, while \n" +"IIP used \n" +"HashCash to 'charge' for " +"creating a new\n" +"identity. We currently have not implemented any particular technique to " +"address\n" +"Sybil, but do include placeholder certificates in the router's and \n" +"destination's data structures which can contain a HashCash certificate of" +" \n" +"appropriate value when necessary (or some other certificate proving " +"scarcity)." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:698 +msgid "Requiring HashCash Certificates in various places has two major problems:" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:702 +msgid "Maintaining backward compatibility" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:705 +msgid "" +"The classic HashCash problem -\n" +"selecting HashCash values that are meaningful proofs of work on high-end " +"machines,\n" +"while still being feasible on low-end machines such as mobile devices." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:712 +msgid "" +"Various limitations on the number of routers in a given IP range restrict" +"\n" +"the vulnerability to attackers that don't have the ability to put " +"machines\n" +"in several IP blocks.\n" +"However, this is not a meaningful defense against a powerful adversary." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:719 +#, python-format +msgid "" +"See the network database page\n" +"for more Sybil discussion." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:729 +#, python-format +msgid "" +"(Reference: In Search of an Anonymouns and Secure " +"Lookup Section 5.2)" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:733 +#, python-format +msgid "" +"By refusing to accept or forward tunnel build requests, except to a " +"colluding peer, a router could ensure\n" +"that a tunnel is formed wholly from its set of colluding routers.\n" +"The chances of success are enhanced if there is a large number of " +"colluding routers,\n" +"i.e. a Sybil attack.\n" +"This is somewhat mitigated by our\n" +"peer profiling methods used to monitor " +"the performance\n" +"of peers.\n" +"However, this is a powerful attack as the number of routers approaches\n" +"f = 0.2, or 20% malicious nodes, as specifed in the paper.\n" +"The malicous routers could also maintain connections to the target router" +" and provide\n" +"excellent forwarding bandwidth for traffic over those connections, in an " +"attempt\n" +"to manipulate the profiles managed by the target and appear attractive.\n" +"Further research and defenses may be necessary." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:754 +#, python-format +msgid "" +"We use strong cryptography with long keys, and\n" +"we assume the security of the industry-standard cryptographic primitives " +"used in I2P, as documented\n" +"on the low-level cryptography page. \n" +"Security features include the immediate detection of \n" +"altered messages along the path, the inability to decrypt messages not " +"addressed to you,\n" +"and defense against man-in-the-middle attacks.\n" +"The key sizes chosen in 2003 were quite conservative at the time, and are" +" still longer than\n" +"those used in other anonymity " +"networks.\n" +"We don't think the current key lengths are our biggest weakness,\n" +"especially for traditional, non-state-level adversaries;\n" +"bugs and the small size of the network are much more worrisome.\n" +"Of course, all cryptographic algorithms eventually become obsolete due to" +"\n" +"the advent of faster processors, cryptographic research, and advancements" +" in\n" +"methods such as rainbow tables, clusters of video game hardware, etc.\n" +"Unfortunately, I2P was not designed with easy mechanisms to lengthen keys" +" or change\n" +"shared secret values while maintaining backward compatibility." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:773 +#, python-format +msgid "" +"Upgrading the various data structures and protocols to support longer " +"keys\n" +"will have to be tackled eventually, and this will be a\n" +"major undertaking, just as it will be " +"for \n" +"others.\n" +"Hopefully, through careful planning, we can minimize the disruption, and\n" +"implement mechanisms to make it easier for future transitions." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:782 +msgid "" +"In the future, several I2P protocols and data structures\n" +"support securely padding messages to arbitrary sizes, so messages could " +"be made constant\n" +"size or garlic messages could be modified randomly so that some cloves " +"appear to contain\n" +"more subcloves than they actually do. At the moment, however, garlic, " +"tunnel, and \n" +"end to end messages include simple random padding." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:792 +msgid "Floodfill Anonymity attacks" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:796 +#, python-format +msgid "" +"In addition to the floodfill DOS attacks described\n" +"above, floodfill routers are uniquely positioned\n" +"to learn about network participants, due to their role\n" +"in the netDb, and the high frequency of communication with those " +"participants.\n" +"This is somewhat mitigated because floodfill routers only manage a " +"portion\n" +"of the total keyspace, and the keyspace rotates daily, as explained \n" +"on the network database page.\n" +"The specific mechanisms by which routers communicate with floodfills have" +" been\n" +"carefully designed.\n" +"However, these threats should be studied further.\n" +"The specific potential threats and corresponding defenses are a topic for" +" future research." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:812 +#, python-format +msgid "" +"A hostile user may attempt to harm the network by\n" +"creating one or more floodfill routers and crafting them to offer\n" +"bad, slow, or no responses.\n" +"Several scenarios are discussed on the\n" +"network database page." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:822 +msgid "Central Resource Attacks" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:826 +msgid "" +"There are a few centralized or limited resources (some inside I2P, some " +"not)\n" +"that could be attacked or used as a vector for attacks.\n" +"The absence of jrandom starting November 2007, followed by the loss of " +"the i2p.net hosting service in January 2008,\n" +"highlighted numerous centralized resources in the development and " +"operation of the I2P network,\n" +"most of which are now distributed.\n" +"Attacks on externally-reachable resources mainly affect the ability of " +"new users to find us,\n" +"not the operation of the network itself." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:836 +#, python-format +msgid "" +"The website is mirrored and uses DNS round-robin" +" for external public access." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:839 +#, python-format +msgid "" +"Routers now support multiple external reseed " +"locations,\n" +"however more reseed hosts may be needed, and the handling of unreliable " +"or malicious\n" +"reseed hosts may need improvement." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:844 +msgid "" +"Routers now support multiple update file locations.\n" +"A malicious update host could feed a huge file, need to limit the size." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:848 +msgid "Routers now support multiple default trusted update signers." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:851 +msgid "" +"Routers now better handle multiple unreliable " +"floodfill peers.\n" +"Malicious floodfills needs more study." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:855 +#, python-format +msgid "" +"The code is now stored in a distributed source " +"control system." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:858 +msgid "" +"Routers rely on a single news host, but there is a hardcoded backup URL " +"pointing to a different host.\n" +"A malicious news host could feed a huge file, need to limit the size." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:862 +#, python-format +msgid "" +"Naming system services, including addressbook " +"subscription providers, add-host services,\n" +"and jump services, could be malicious. Substantial protections for " +"subscriptions were implemented\n" +"in release 0.6.1.31, with additional enhancements in subsequent releases." +"\n" +"However, all naming services require some measure of trust, see\n" +"the naming page for details." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:869 +msgid "" +"We remain reliant on the DNS service for i2p2.de, losing this would cause" +" substantial\n" +"disruption in our ability to attract new users,\n" +"and would shrink the network (in the short-to-medium term), just as the " +"loss of i2p.net did." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:881 +msgid "" +"These attacks aren't directly on the network, but instead go after its " +"development team \n" +"by either introducing legal hurdles on anyone contributing to the " +"development\n" +"of the software, or by using whatever means are available to get the " +"developers to \n" +"subvert the software. Traditional technical measures cannot defeat these" +" attacks, and\n" +"if someone threatened the life or livelihood of a developer (or even just" +" issuing a \n" +"court order along with a gag order, under threat of prison), we would " +"have a big problem." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:890 +msgid "However, two techniques help defend against these attacks:" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:894 +#, python-format +msgid "" +"All components of the network must be open source to enable inspection, " +"verification, \n" +"modification, and improvement. If a developer is compromised, once it is" +" noticed \n" +"the community should demand explanation and cease to accept that " +"developer's work.\n" +"All checkins to our distributed source control " +"system\n" +"are cryptographically signed, and the release packagers use a trust-list " +"system\n" +"to restrict modifications to those previously approved." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:902 +#, python-format +msgid "" +"Development over the network itself, allowing developers to stay " +"anonymous but still \n" +"secure the development process. All I2P development can occur through " +"I2P - using\n" +"a distributed source control system,\n" +"a distributed source control system, IRC chat,\n" +"public web servers,\n" +"discussion forums (forum.i2p), and the software distribution sites,\n" +"all available within I2P." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:913 +msgid "" +"We also maintain relationships with various organizations that offer " +"legal advice,\n" +"should any defense be necessary." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:918 +msgid "Implementation attacks (bugs)" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:922 +msgid "" +"Try as we might, most nontrivial applications include errors in the " +"design or \n" +"implementation, and I2P is no exception. There may be bugs that could be" +" exploited to \n" +"attack the anonymity or security of the communication running over I2P in" +" unexpected \n" +"ways. To help withstand attacks against the design or protocols in use, " +"we publish \n" +"all designs and documentation and solicit review and criticism with \n" +"the hope that many eyes will improve the system.\n" +"We do not believe in\n" +"security through " +"obscurity." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:933 +msgid "" +"In addition, the code is being \n" +"treated the same way, with little aversion towards reworking or throwing " +"out \n" +"something that isn't meeting the needs of the software system (including " +"ease of \n" +"modification). Documentation for the design and implementation of the " +"network and \n" +"the software components are an essential part of security, as without " +"them it is \n" +"unlikely that developers would be willing to spend the time to learn the " +"software \n" +"enough to identify shortcomings and bugs." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:943 +msgid "" +"Our software is likely, in particular, to contain bugs related to denial " +"of service\n" +"through out-of-memory errors (OOMs), cross-site-scripting (XSS) issues " +"in the router console,\n" +"and other vulnerabilities to non-standard inputs via the various " +"protocols." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:949 +#, python-format +msgid "" +"I2P is still a small network with a small development community and " +"almost no\n" +"interest from academic or research groups.\n" +"Therefore we lack the analysis that\n" +"other anonymity networks\n" +"may have received. We continue to recruit people to\n" +"get involved and help." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:962 +msgid "Blocklists" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:963 +msgid "" +"To some extent, I2P could be enhanced to avoid peers operating at IP " +"addresses\n" +"listed in a blocklist. Several blocklists are commonly available in " +"standard formats,\n" +"listing anti-P2P organizations, potential state-level adversaries, and " +"others." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:969 +msgid "" +"To the extent that active peers actually do show up in the actual " +"blocklist,\n" +"blocking by only a subset of peers would tend to segment the network,\n" +"exacerbate reachability problems, and decrease overall reliability.\n" +"Therefore we would want to agree on a particular blocklist and\n" +"enable it by default." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:977 +msgid "" +"Blocklists are only a part (perhaps a small part) of an array of defenses" +"\n" +"against maliciousness.\n" +"In large part the profiling system does a good job of measuring\n" +"router behavior so that we don't need to trust anything in netDb.\n" +"However there is more that can be done. For each of the areas in the\n" +"list above there are improvements we can make in detecting badness." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:986 +msgid "" +"If a blocklist is hosted at a central location with automatic updates\n" +"the network is vulnerable to a\n" +"central resource attack.\n" +"Automatic subscription to a list gives the list provider the power to " +"shut\n" +"the i2p network down. Completely." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:994 +msgid "" +"Currently, a default blocklist is distributed with our software,\n" +"listing only the IPs of past DOS sources.\n" +"There is no automatic update mechanism.\n" +"Should a particular IP range implement serious attacks on the I2P " +"network,\n" +"we would have to ask people to update their blocklist manually through\n" +"out-of-band mechanisms such as forums, blogs, etc." +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:2 +msgid "Tunnel Routing" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:3 +msgid "July 2011" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:7 +msgid "" +"This page contains an overview of I2P tunnel terminology and operation, " +"with\n" +"links to more technical pages, details, and specifications." +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:12 +#, python-format +msgid "" +"As briefly explained in the introduction, I2P " +"builds virtual \"tunnels\" -\n" +"temporary and unidirectional paths through a sequence of routers. These" +" \n" +"tunnels are classified as either inbound tunnels (where everything \n" +"given to it goes towards the creator of the tunnel) or outbound tunnels\n" +"(where the tunnel creator shoves messages away from them). When Alice\n" +"wants to send a message to Bob, she will (typically) send it out one of\n" +"her existing outbound tunnels with instructions for that tunnel's " +"endpoint\n" +"to forward it to the gateway router for one of Bob's current inbound \n" +"tunnels, which in turn passes it to Bob." +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:25 +msgid "Alice connecting through her outbound tunnel to Bob via his inbound tunnel" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:27 +msgid "Outbound Gateway" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:28 +msgid "Outbound Participant" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:29 +#: i2p2www/pages/site/docs/tunnels/implementation.html:131 +msgid "Outbound Endpoint" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:30 +#: i2p2www/pages/site/docs/tunnels/implementation.html:140 +msgid "Inbound Gateway" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:31 +msgid "Inbound Participant" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:32 +msgid "Inbound Endpoint" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:36 +msgid "Tunnel vocabulary" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:38 +#, python-format +msgid "" +"Tunnel gateway - the first router in a tunnel. For inbound " +"tunnels,\n" +"this is the one mentioned in the LeaseSet published in the\n" +"network database. For outbound tunnels, the\n" +"gateway is the originating router. (e.g. both A and D above)" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:44 +msgid "" +"Tunnel endpoint - the last router in a tunnel. (e.g. both C and F" +" above)" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:45 +msgid "" +"Tunnel participant - all routers in a tunnel except for the " +"gateway or\n" +"endpoint (e.g. both B and E above)" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:49 +msgid "" +"n-Hop tunnel - a tunnel with a specific number of inter-router " +"jumps, e.g.:" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:51 +msgid "0-hop tunnel - a tunnel where the gateway is also the endpoint" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:52 +msgid "" +"1-hop tunnel - a tunnel where the gateway talks directly to the " +"endpoint" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:53 +msgid "" +"2-(or more)-hop tunnel - a tunnel where there is at least one " +"intermediate\n" +"tunnel participant. (the above diagram includes two 2-hop tunnels - one\n" +"outbound from Alice, one inbound to Bob)" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:60 +#, python-format +msgid "" +"Tunnel ID - A 4 " +"byte integer\n" +"different for each hop in a tunnel, and unique among all tunnels on a " +"router.\n" +"Chosen randomly by the tunnel creator." +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:67 +msgid "Tunnel Build Information" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:68 +#, python-format +msgid "" +"Routers performing the three roles (gateway, participant, endpoint) are " +"given\n" +"different pieces of data in the initial\n" +"Tunnel Build Message\n" +"to accomplish their tasks:" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:75 +msgid "The tunnel gateway gets:" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:77 +#: i2p2www/pages/site/docs/how/tunnel-routing.html:97 +#, python-format +msgid "" +"tunnel encryption key - an AES private key for " +"encrypting\n" +"messages and instructions to the next hop" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:81 +#: i2p2www/pages/site/docs/how/tunnel-routing.html:101 +#, python-format +msgid "" +"tunnel IV key - an AES private key for " +"double-encrypting\n" +"the IV to the next hop" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:85 +#: i2p2www/pages/site/docs/how/tunnel-routing.html:105 +#, python-format +msgid "" +"reply key - an AES public key for " +"encrypting\n" +"the reply to the tunnel build request" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:89 +#: i2p2www/pages/site/docs/how/tunnel-routing.html:109 +msgid "" +"reply IV - the IV for encrypting the reply to the tunnel build " +"request" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:90 +msgid "tunnel id - 4 byte integer (inbound gateways only)" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:91 +msgid "" +"next hop - what router is the next one in the path (unless this is" +" a 0-hop tunnel, and the gateway is also the endpoint)" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:92 +#: i2p2www/pages/site/docs/how/tunnel-routing.html:112 +msgid "next tunnel id - The tunnel ID on the next hop" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:95 +msgid "All intermediate tunnel participants get:" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:110 +msgid "tunnel id - 4 byte integer" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:111 +msgid "next hop - what router is the next one in the path" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:115 +msgid "The tunnel endpoint gets:" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:117 +#, python-format +msgid "" +"tunnel encryption key - an AES private key for " +"encrypting\n" +"messages and instructions to the the endpoint (itself)" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:121 +#, python-format +msgid "" +"tunnel IV key - an AES private key for " +"double-encrypting\n" +"the IV to the endpoint (itself)" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:125 +#, python-format +msgid "" +"reply key - an AES public key for " +"encrypting\n" +"the reply to the tunnel build request (outbound endpoints only)" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:129 +msgid "" +"reply IV - the IV for encrypting the reply to the tunnel build " +"request (outbound endpoints only)" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:130 +msgid "tunnel id - 4 byte integer (outbound endpoints only)" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:131 +msgid "" +"reply router - the inbound gateway of the tunnel to send the reply" +" through (outbound endpoints only)" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:132 +msgid "" +"reply tunnel id - The tunnel ID of the reply router (outbound " +"endpoints only)" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:137 +#, python-format +msgid "" +"Details are in the\n" +"tunnel creation specification." +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:142 +msgid "Tunnel pooling" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:143 +#, python-format +msgid "" +"Several tunnels for a particular purpose may be grouped into a \"tunnel " +"pool\",\n" +"as described in the\n" +"tunnel specification.\n" +"This provides redundancy and additional bandwidth.\n" +"The pools used by the router itself are called \"exploratory tunnels\".\n" +"The pools used by applications are called \"client tunnels\"." +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:154 +msgid "Tunnel length" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:155 +#, python-format +msgid "" +"As mentioned above, each client requests that their router provide " +"tunnels to\n" +"include at least a certain number of hops.\n" +"The decision as to how many routers\n" +"to have in one's outbound and inbound tunnels has an important effect " +"upon the\n" +"latency, throughput, reliability, and anonymity provided by I2P - the " +"more peers\n" +"that messages have to go through, the longer it takes to get there and " +"the more\n" +"likely that one of those routers will fail prematurely. The less routers" +" in a\n" +"tunnel, the easier it is for an adversary to mount traffic analysis " +"attacks and\n" +"pierce someone's anonymity.\n" +"Tunnel lengths are specified by clients via\n" +"I2CP options.\n" +"The maximum number of hops in a tunnel is 7." +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:171 +msgid "0-hop tunnels" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:172 +msgid "" +"With no remote routers in a tunnel, the user has very basic plausible\n" +"deniability (since no one knows for sure that the peer that sent them the" +"\n" +"message wasn't simply just forwarding it on as part of the tunnel). " +"However, it\n" +"would be fairly easy to mount a statistical analysis attack and notice " +"that\n" +"messages targeting a specific destination are always sent through a " +"single\n" +"gateway. Statistical analysis against outbound 0-hop tunnels are more " +"complex,\n" +"but could show similar information (though would be slightly harder to " +"mount)." +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:182 +msgid "1-hop tunnels" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:183 +#, python-format +msgid "" +"With only one remote router in a tunnel, the user has both plausible\n" +"deniability and basic anonymity, as long as they are not up against an " +"internal\n" +"adversary (as described on threat model)." +" However,\n" +"if the adversary ran a sufficient number of routers such that the single " +"remote\n" +"router in the tunnel is often one of those compromised ones, they would " +"be able\n" +"to mount the above statistical traffic analysis attack." +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:192 +msgid "2-hop tunnels" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:193 +msgid "" +"With two or more remote routers in a tunnel, the costs of mounting the " +"traffic\n" +"analysis attack increases, since many remote routers would have to be " +"compromised\n" +"to mount it." +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:199 +msgid "3-hop (or more) tunnels" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:200 +#, python-format +msgid "" +"To reduce the susceptibility to some attacks,\n" +"3 or more hops are recommended for the highest level of protection.\n" +"Recent studies\n" +"also conclude that more than 3 hops does not provide additional " +"protection." +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:208 +msgid "Tunnel default lengths" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:209 +#, python-format +msgid "" +"The router uses 2-hop tunnels by default for its exploratory tunnels.\n" +"Client tunnel defaults are set by the application, using\n" +"I2CP options.\n" +"Most applications use 2 or 3 hops as their default." +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:218 +msgid "Tunnel testing" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:219 +#, python-format +msgid "" +"All tunnels are periodically tested by their creator by sending a\n" +"DeliveryStatusMessage out an outbound tunnel and bound for another " +"inbound tunnel\n" +"(testing both tunnels at once). If either fails a number of consecutive " +"tests, it is marked as no longer\n" +"functional. If it was used for a client's inbound tunnel, a new leaseSet\n" +"is created.\n" +"Tunnel test failures are also reflected in the\n" +"capacity rating in the peer " +"profile." +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:230 +msgid "Tunnel creation" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:231 +#, python-format +msgid "" +"Tunnel creation is handled by garlic " +"routing\n" +"a Tunnel Build Message to a router, requesting that they participate in " +"the\n" +"tunnel (providing them with all of the appropriate information, as above," +" along\n" +"with a certificate, which right now is a 'null' cert, but will support " +"hashcash\n" +"or other non-free certificates when necessary).\n" +"That router forwards the message to the next hop in the tunnel.\n" +"Details are in the\n" +"tunnel creation specification." +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:245 +#, python-format +msgid "" +"Multi-layer encryption is handled by garlic" +" encryption\n" +"of tunnel messages.\n" +"Details are in the\n" +"tunnel specification.\n" +"The IV of each hop is encrypted with a separate key as explained there." +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:257 +msgid "" +"Other tunnel test techniques could be used, such as\n" +"garlic wrapping a number of tests into cloves, testing individual tunnel\n" +"participants separately, etc." +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:263 +msgid "Move to 3-hop exploratory tunnels defaults." +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:267 +msgid "" +"In a distant future release,\n" +"options specifying the pooling, mixing, and chaff generation settings may" +" be implemented." +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:272 +msgid "" +"In a distant future release,\n" +"limits on the quantity and size of messages allowed during the\n" +"tunnel's lifetime may be implemented (e.g. no more than 300 messages or\n" +"1MB per minute)." +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:284 +#: i2p2www/pages/site/docs/tunnels/unidirectional.html:15 +msgid "Tunnel specification" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:286 +#: i2p2www/pages/site/docs/tunnels/unidirectional.html:17 +msgid "Tunnel creation specification" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:288 +msgid "Unidirectional tunnels" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:290 +msgid "Tunnel message specification" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:292 +msgid "Garlic routing" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:294 +msgid "ElGamal/AES+SessionTag" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:296 +msgid "I2CP options" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:3 +msgid "February 2016" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:6 +msgid "" +"The I2P Client Protocol (I2CP) exposes a strong separation of concerns " +"between\n" +"the router and any client that wishes to communicate over the network. " +"It enables\n" +"secure and asynchronous messaging by sending and receiving messages over " +"a \n" +"single TCP socket.\n" +"With I2CP, a client application tells the\n" +"router who they are (their \"destination\"), what anonymity, reliability," +" and \n" +"latency tradeoffs to make, and where to send messages. In turn the " +"router uses\n" +"I2CP to tell the client when any messages have arrived, and to request " +"authorization\n" +"for some tunnels to be used." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:18 +#, python-format +msgid "" +"The protocol itself is implemented in Java, to provide the\n" +"Client SDK.\n" +"This SDK is exposed in the i2p.jar package, which implements the client-" +"side of I2CP.\n" +"Clients should never need to access the router.jar package, which " +"contains the\n" +"router itself and the router-side of I2CP.\n" +"There is also a C library implementation.\n" +"A non-Java client would also have to implement the\n" +"streaming library for TCP-style connections." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:31 +#, python-format +msgid "" +"Applications can take advantage of the base I2CP plus the \n" +"streaming and datagram libraries\n" +"by using the Simple Anonymous Messaging or BOB protocols,\n" +"which do not require clients to deal with any sort of cryptography.\n" +"Also, clients may access the network by one of several proxies -\n" +"HTTP, CONNECT, and SOCKS 4/4a/5.\n" +"Alternatively, Java clients may access those libraries in " +"ministreaming.jar and streaming.jar.\n" +"So there are several options for both Java and non-Java applications." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:43 +#, python-format +msgid "" +"Client-side end-to-end encryption (encrypting the data over the I2CP " +"connection)\n" +"was disabled in I2P release 0.6,\n" +"leaving in place the ElGamal/AES end-to-end " +"encryption\n" +"which is implemented in the router.\n" +"The only cryptography that client libraries must still implement is\n" +"DSA public/private key signing\n" +"for LeaseSets and\n" +"Session Configurations, and" +" management of those keys." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:56 +msgid "" +"In a standard I2P installation, port 7654 is used by external java " +"clients to communicate\n" +"with the local router via I2CP.\n" +"By default, the router binds to address 127.0.0.1. To bind to 0.0.0.0, " +"set the\n" +"router advanced configuration option " +"i2cp.tcp.bindAllInterfaces=true and restart.\n" +"Clients in the same JVM as the router pass messages directly to the " +"router\n" +"through an internal JVM interface." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:65 +#, python-format +msgid "" +"The router also supports external connections over SSL.\n" +"While SSL is not the default, it is strongly recommended for any traffic " +"that may\n" +"be exposed to the open Internet. The authorization user/password (if " +"any), the\n" +"Private Key and\n" +"Signing Private " +"Key for the\n" +"Destination\n" +"are all transmitted in-the-clear unless SSL is enabled." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:75 +msgid "I2CP Protocol Specification" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:76 +#, python-format +msgid "Now on the I2CP Specification page." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:81 +msgid "I2CP Initialization" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:82 +#, python-format +msgid "" +"When a client connects to the router, it first sends a single protocol " +"version byte (0x2A).\n" +"Then it sends a GetDate Message and " +"waits for the SetDate Message " +"response.\n" +"Next, it sends a CreateSession " +"Message containing the session configuration.\n" +"It next awaits a RequestLeaseSet" +" Message from the router, indicating that inbound tunnels\n" +"have been built, and responds with a CreateLeaseSetMessage containing the" +" signed LeaseSet.\n" +"The client may now initiate or receive connections from other I2P " +"destinations." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:91 +msgid "I2CP Options" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:92 +#: i2p2www/pages/site/docs/protocol/i2cp.html:99 +msgid "Router-side Options" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:93 +#, python-format +msgid "" +"The following options are traditionally passed to the router via\n" +"a SessionConfig contained " +"in a CreateSession Message or " +"a ReconfigureSession " +"Message." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:104 +#: i2p2www/pages/site/docs/protocol/i2cp.html:479 +msgid "As Of Release" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:105 +#: i2p2www/pages/site/docs/protocol/i2cp.html:480 +msgid "Recommended Arguments" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:106 +#: i2p2www/pages/site/docs/protocol/i2cp.html:481 +msgid "Allowable Range" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:117 +msgid "" +"The timeout (ms) for all sent messages. Unused.\n" +"See the protocol specification for per-message settings." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:129 +msgid "" +"Minimum number of ElGamal/AES Session Tags before we send more.\n" +"Recommended: approximately tagsToSend * 2/3" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:141 +msgid "" +"Number of ElGamal/AES Session Tags to send at a time.\n" +"For clients with relatively low bandwidth per-client-pair (IRC, some UDP " +"apps), this may be set lower." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:153 +msgid "" +"Comma-separated list of Base 64 Hashes of peers to build tunnels through;" +" for debugging only" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:162 +msgid "Should generally be set to true for clients and false for servers" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:171 +#: i2p2www/pages/site/docs/protocol/i2cp.html:519 +msgid "" +"If true, the router just sends the MessagePayload instead\n" +"of sending a MessageStatus and awaiting a ReceiveMessageBegin." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:183 +msgid "" +"Guaranteed is disabled;\n" +"None implemented in 0.8.1; the streaming lib default is None as of 0.8.1," +" the client side default is None as of 0.9.4" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:195 +msgid "" +"For authorization, if required by the router.\n" +"If the client is running in the same JVM as a router, this option is not " +"required.\n" +"Warning - username and password are sent in the clear to the router, " +"unless using SSL (i2cp.SSL=true).\n" +"Authorization is only recommended when using SSL." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:217 +msgid "If incoming zero hop tunnel is allowed" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:226 +msgid "If outgoing zero hop tunnel is allowed" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:232 +#: i2p2www/pages/site/docs/protocol/i2cp.html:241 +#: i2p2www/pages/site/docs/protocol/i2cp.html:250 +#: i2p2www/pages/site/docs/protocol/i2cp.html:262 +#: i2p2www/pages/site/docs/protocol/i2cp.html:274 +#: i2p2www/pages/site/docs/protocol/i2cp.html:283 +#: i2p2www/pages/site/docs/protocol/i2cp.html:292 +#: i2p2www/pages/site/docs/protocol/i2cp.html:307 +#: i2p2www/pages/site/docs/protocol/i2cp.html:343 +#: i2p2www/pages/site/docs/protocol/i2cp.html:355 +#: i2p2www/pages/site/docs/protocol/i2cp.html:368 +#, python-format +msgid "number from %(from)s to %(to)s" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:233 +#: i2p2www/pages/site/docs/protocol/i2cp.html:242 +#: i2p2www/pages/site/docs/protocol/i2cp.html:369 +msgid "No limit" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:235 +msgid "Number of redundant fail-over for tunnels in" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:244 +msgid "Number of redundant fail-over for tunnels out" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:251 +#: i2p2www/pages/site/docs/protocol/i2cp.html:263 +#: i2p2www/pages/site/docs/protocol/i2cp.html:275 +#: i2p2www/pages/site/docs/protocol/i2cp.html:284 +#: i2p2www/pages/site/docs/protocol/i2cp.html:293 +#: i2p2www/pages/site/docs/protocol/i2cp.html:308 +#: i2p2www/pages/site/docs/protocol/i2cp.html:344 +#: i2p2www/pages/site/docs/protocol/i2cp.html:356 +#: i2p2www/pages/site/docs/protocol/i2cp.html:608 +#, python-format +msgid "%(from)s to %(to)s" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:253 +#: i2p2www/pages/site/docs/protocol/i2cp.html:265 +msgid "" +"Number of IP bytes to match to determine if\n" +"two routers should not be in the same tunnel. 0 to disable." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:277 +msgid "Length of tunnels in" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:286 +msgid "Length of tunnels out" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:295 +msgid "" +"Random amount to add or subtract to the length of tunnels in.\n" +"A positive number x means add a random amount from 0 to x inclusive.\n" +"A negative number -x means add a random amount from -x to x inclusive.\n" +"The router will limit the total length of the tunnel to 0 to 7 inclusive." +"\n" +"The default variance was 1 prior to release 0.7.6." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:310 +msgid "" +"Random amount to add or subtract to the length of tunnels out.\n" +"A positive number x means add a random amount from 0 to x inclusive.\n" +"A negative number -x means add a random amount from -x to x inclusive.\n" +"The router will limit the total length of the tunnel to 0 to 7 inclusive." +"\n" +"The default variance was 1 prior to release 0.7.6." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:325 +msgid "" +"Name of tunnel - generally used in routerconsole, which will\n" +"use the first few characters of the Base64 hash of the destination by " +"default." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:337 +msgid "Name of tunnel - generally ignored unless inbound.nickname is unset." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:346 +msgid "" +"Priority adjustment for outbound messages.\n" +"Higher is higher priority." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:358 +msgid "" +"Number of tunnels in.\n" +"Limit was increased from 6 to 16 in release 0.9; however, numbers higher " +"than 6 are\n" +"incompatible with older releases." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:371 +msgid "Number of tunnels out" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:380 +msgid "Used for consistent peer ordering across restarts." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:399 +msgid "" +"Any other options prefixed with \"inbound.\" are stored\n" +"in the \"unknown options\" properties of the inbound tunnel pool's " +"settings." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:411 +msgid "" +"Any other options prefixed with \"outbound.\" are stored\n" +"in the \"unknown options\" properties of the outbound tunnel pool's " +"settings." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:423 +msgid "" +"Set to false to disable ever bundling a reply LeaseSet.\n" +"For clients that do not publish their LeaseSet, this option must be true\n" +"for any reply to be possible. \"true\" is also recommended for multihomed" +" servers\n" +"with long connection times." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:430 +msgid "" +"Setting to \"false\" may save significant outbound bandwidth, especially " +"if\n" +"the client is configured with a large number of inbound tunnels (Leases)." +"\n" +"If replies are still required, this may shift the bandwidth burden to\n" +"the far-end client and the floodfill.\n" +"There are several cases where \"false\" may be appropriate:" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:438 +msgid "Unidirectional communication, no reply required" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:439 +msgid "LeaseSet is published and higher reply latency is acceptable" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:440 +msgid "" +"LeaseSet is published, client is a \"server\", all connections are " +"inbound\n" +"so the connecting far-end destination obviously has the leaseset already." +"\n" +"Connections are either short, or it is acceptable for latency on a long-" +"lived\n" +"connection to temporarily increase while the other end re-fetches the " +"LeaseSet\n" +"after expiration.\n" +"HTTP servers may fit these requirements." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:453 +msgid "" +"Note: Large quantity, length, or variance settings may cause significant " +"performance or reliability problems." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:457 +#, python-format +msgid "" +"Note: As of release 0.7.7, option names and values must use UTF-8 " +"encoding.\n" +"This is primarily useful for nicknames.\n" +"Prior to that release, options with multi-byte characters were corrupted." +"\n" +"Since options are encoded in a Mapping,\n" +"all option names and values are limited to 255 bytes (not characters) " +"maximum." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:465 +#: i2p2www/pages/site/docs/protocol/i2cp.html:474 +msgid "Client-side Options" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:466 +msgid "" +"The following options are interpreted on the client side,\n" +"and will be interpreted if passed to the I2PSession via the " +"I2PClient.createSession() call.\n" +"The streaming lib should also pass these options through to I2CP.\n" +"Other implementations may have different defaults." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:490 +#: i2p2www/pages/site/docs/protocol/i2cp.html:590 +#, python-format +msgid "%(num)s minimum" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:492 +msgid "(ms) Idle time required (default 30 minutes)" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:501 +msgid "Close I2P session when idle" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:510 +msgid "Encrypt the lease" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:531 +msgid "Gzip outbound data" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:540 +msgid "For encrypted leasesets. Base 64 SessionKey (44 characters)" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:549 +msgid "" +"Base 64 private key for encryption.\n" +"Optionally preceded by the key type and ':'.\n" +"Only \"ELGAMAL_2048:\" is supported, which is the default.\n" +"I2CP will generate the public key from the private key.\n" +"Use for persistent leaseset keys across restarts." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:564 +msgid "" +"Base 64 private key for signatures.\n" +"Optionally preceded by the key type and ':'.\n" +"DSA_SHA1 is the default.\n" +"Key type must match the signature type in the destination.\n" +"I2CP will generate the public key from the private key.\n" +"Use for persistent leaseset keys across restarts." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:580 +msgid "" +"Guaranteed is disabled;\n" +"None implemented in 0.8.1; None is the default as of 0.9.4" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:592 +msgid "(ms) Idle time required (default 20 minutes, minimum 5 minutes)" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:601 +msgid "Reduce tunnel quantity when idle" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:610 +msgid "Tunnel quantity when reduced (applies to both inbound and outbound)" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:619 +msgid "" +"Connect to the router using SSL.\n" +"If the client is running in the same JVM as a router, this option is " +"ignored, and the client connects to that router internally." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:631 +msgid "" +"Router hostname.\n" +"If the client is running in the same JVM as a router, this option is " +"ignored, and the client connects to that router internally." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:643 +msgid "" +"Router I2CP port.\n" +"If the client is running in the same JVM as a router, this option is " +"ignored, and the client connects to that router internally." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:650 +msgid "" +"Note: All arguments, including numbers, are strings. True/false values " +"are case-insensitive strings.\n" +"Anything other than case-insensitive \"true\" is interpreted as false.\n" +"All option names are case-sensitive." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:656 +msgid "I2CP Payload Data Format and Multiplexing" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:657 +#, python-format +msgid "" +"The end-to-end messages handled by I2CP (i.e. the data sent by the client" +" in a\n" +"SendMessageMessage\n" +"and received by the client in a\n" +"MessagePayloadMessage)\n" +"are gzipped with a standard 10-byte gzip\n" +"header beginning with 0x1F 0x8B 0x08 as\n" +"specified by RFC " +"1952.\n" +"As of release 0.7.1, I2P uses ignored portions of the gzip header to " +"include\n" +"protocol, from-port, and to-port information, thus supporting streaming " +"and\n" +"datagrams on the same destination, and allowing query/response using " +"datagrams\n" +"to work reliably in the presence of multiple channels." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:671 +msgid "" +"The gzip function cannot be completely turned off, however setting " +"i2cp.gzip=false\n" +"turns the gzip effort setting to 0, which may save a little CPU." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:677 +#: i2p2www/pages/site/docs/protocol/i2np.html:32 +msgid "Bytes" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:678 +msgid "Content" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:683 +msgid "Gzip header" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:688 +msgid "Gzip flags" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:693 +msgid "I2P Source port (Gzip mtime)" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:698 +msgid "I2P Destination port (Gzip mtime)" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:703 +msgid "Gzip xflags" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:708 +msgid "I2P Protocol (6 = Streaming, 17 = Datagram, 18 = Raw Datagrams) (Gzip OS)" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:717 +msgid "" +"Data integrity is verified with the standard gzip CRC-32 as\n" +"specified by RFC 1952." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:725 +msgid "" +"The current authorization mechanism could be modified to use hashed " +"passwords." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:729 +msgid "" +"The Signing Private Keys is included in the Create Lease Set message,\n" +"it is not required. Revocation is unimplemented.\n" +"It should be replaced with random data or removed." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:735 +#, python-format +msgid "" +"Some improvements may be able to use messages previously defined but not " +"implemented.\n" +"For reference, here is the\n" +"I2CP Protocol Specification Version 0.9\n" +"(PDF) dated August 28, 2003.\n" +"That document also references the\n" +"Common Data Structures Specification Version 0.9." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:2 +msgid "I2P Network Protocol" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:3 +msgid "June 2013" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:6 +msgid "" +"The I2P Network Protocol (I2NP),\n" +"which is sandwiched between I2CP and the various I2P transport protocols," +" manages the\n" +"routing and mixing of messages between routers, as well as the selection " +"of what\n" +"transports to use when communicating with a peer for which there are " +"multiple\n" +"common transports supported." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:14 +msgid "I2NP Definition" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:15 +msgid "" +"I2NP (I2P Network Protocol) messages can be used for one-hop, router-to-" +"router, point-to-point messages.\n" +"By encrypting and wrapping messages in other messages, they can be sent " +"in a secure way\n" +"through multiple hops to the ultimate destination.\n" +"Priority is only used locally at the origin, i.e. when queuing for " +"outbound delivery." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:22 +#, python-format +msgid "" +"The priorities listed below may not be current and are subject to change." +"\n" +"See the OutNetMessage Javadocs\n" +"for the current priority settings.\n" +"Priority queueing implementation may vary." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:29 +msgid "Message Format" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:32 +msgid "Field" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:33 +msgid "Unique ID" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:34 +msgid "Expiration" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:35 +#: i2p2www/pages/site/docs/protocol/i2np.html:92 +msgid "Payload Length" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:36 +msgid "Checksum" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:37 +msgid "Payload" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:40 +#, python-format +msgid "" +"While the maximum payload size is nominally 64KB, the size is further " +"constrained by the\n" +"method of fragmenting I2NP messages into multiple 1KB tunnel messages as " +"described on\n" +"the tunnel implementation page.\n" +"The maximum number of fragments is 64, and the message may not be " +"perfectly aligned,\n" +"So the message must nominally fit in 63 fragments." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:48 +msgid "" +"The maximum size of an initial fragment is 956 bytes (assuming TUNNEL " +"delivery mode);\n" +"the maximum size of a follow-on fragment is 996 bytes.\n" +"Therefore the maximum size is approximately 956 + (62 * 996) = 62708 " +"bytes, or 61.2 KB." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:54 +msgid "" +"In addition, the transports may have additional restrictions.\n" +"NTCP currently limits to 16KB - 6 = 16378 bytes but this will be " +"increased in a future release.\n" +"The SSU limit is approximately 32 KB." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:60 +msgid "" +"Note that these are not the limits for datagrams that the client sees, as" +" the\n" +"router may bundle a reply leaseset and/or session tags together with the " +"client message\n" +"in a garlic message. The leaseset and tags together may add about 5.5KB.\n" +"Therefore the current datagram limit is about 10KB. This limit will be\n" +"increased in a future release." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:68 +msgid "Message Types" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:69 +msgid "" +"Higher-numbered priority is higher priority.\n" +"The majority of traffic is TunnelDataMessages (priority 400),\n" +"so anything above 400 is essentially high priority, and\n" +"anything below is low priority.\n" +"Note also that many of the messages are generally routed\n" +"through exploratory tunnels, not client tunnels, and\n" +"therefore may not be in the same queue unless the\n" +"first hops happen to be on the same peer." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:80 +msgid "" +"Also, not all message types are sent unencrypted.\n" +"For example, when testing a tunnel, the router wraps a\n" +"DeliveryStatusMessage, which is wrapped in a GarlicMessage,\n" +"which is wrapped in a DataMessage." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:90 +msgid "Message" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:91 +msgid "Type" +msgstr "Typ" + +#: i2p2www/pages/site/docs/protocol/i2np.html:94 +msgid "Comments" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:102 +msgid "May vary" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:108 +msgid "" +"Size is 65 + 32*(number of hashes) where typically, the hashes for\n" +"three floodfill routers are returned." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:117 +msgid "Varies" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:119 +msgid "" +"Priority may vary.\n" +"Size is 898 bytes for a typical 2-lease leaseSet.\n" +"RouterInfo structures are compressed, and size varies; however\n" +"there is a continuing effort to reduce the amount of data published in a " +"RouterInfo\n" +"as we approach release 1.0." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:133 +msgid "Priority may vary on a per-destination basis" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:143 +msgid "" +"Used for message replies, and for testing tunnels - generally wrapped in " +"a GarlicMessage" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:151 +msgid "" +"Generally wrapped in a DataMessage -\n" +"but when unwrapped, given a priority of 100 by the forwarding router" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:178 +msgid "" +"The most common message. Priority for tunnel participants, outbound " +"endpoints, and inbound gateways was\n" +"reduced to 200 as of release 0.6.1.33.\n" +"Outbound gateway messages (i.e. those originated locally) remains at 400." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:198 +msgid "Shorter TunnelBuildMessage as of 0.7.12" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:206 +msgid "Shorter TunnelBuildReplyMessage as of 0.7.12" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:209 +#, python-format +msgid "Others listed in 2003 Spec" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:215 +msgid "Obsolete, Unused" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:219 +msgid "Full Protocol Specification" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:220 +#, python-format +msgid "" +"On the I2NP Specification page.\n" +"See also the\n" +"Common Data Structure Specification " +"page." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:227 +msgid "" +"It isn't clear whether the current priority scheme is generally " +"effective,\n" +"and whether the priorities for various messages should be adjusted " +"further.\n" +"This is a topic for further research, analysis and testing." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:2 +msgid "Protocol Stack" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:7 +#, python-format +msgid "" +"Here is the protocol stack for I2P.\n" +"See also the Index to Technical Documentation." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:12 +msgid "" +"Each of the layers in the stack provides extra capabilities.\n" +"The capabilities are listed below, starting at the bottom of the protocol" +" stack." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:18 +msgid "Internet Layer:" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:20 +msgid "" +"IP: Internet Protocol, allow addressing hosts on the regular internet and" +" routing packets across the internet using best-effort delivery." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:23 +msgid "Transport Layer:" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:25 +msgid "" +"TCP: Transmission Control Protocol, allow reliable, in-order delivery of " +"packets across the internet." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:27 +msgid "" +"UDP: User Datagram Protocol, allow unreliable, out-of-order delivery of " +"packets across the internet." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:30 +msgid "" +"I2P Transport Layer: provide encrypted connections between 2 I2P " +"routers. These are not anonymous yet, this is strictly a hop-to-hop " +"connection.\n" +"Two protocols are implemented to provide these capabilities. NTCP builds " +"on top of TCP, while SSU uses UDP." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:35 +msgid "NIO-based TCP" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:37 +msgid "Secure Semi-reliable UDP" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:40 +msgid "I2P Tunnel Layer: provide full encrypted tunnel connections." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:42 +#, python-format +msgid "" +"Tunnel messages: tunnel messages are " +"large messages containing encrypted I2NP (see below) messages and " +"encrypted instructions for their delivery.\n" +"The encryption is layered. The first hop will decrypt the tunnel message " +"and read a part. Another part can still be encrypted (with another key)," +"\n" +"so it will be forwarded." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:48 +#, python-format +msgid "" +"I2NP messages: I2P Network Protocol messages are" +" used to pass messages through multiple routers. These I2NP messages are " +"combined in tunnel messages." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:53 +msgid "" +"I2P Garlic Layer: provide encrypted and anonymous end-to-end I2P " +"message delivery." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:55 +#, python-format +msgid "" +"I2NP messages: I2P Network Protocol messages are" +" wrapped in each other and used to ensure encryption between two tunnels " +"and are passed along from source to destination, keeping both anonymous." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:61 +msgid "" +"The following layers are strictly speaking no longer part of the I2P " +"Protocol stack, they are not part of the core 'I2P router' functionality." +"\n" +"However, each of these layers adds additional functionality, to allow " +"applications simple and convenient I2P usage." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:67 +msgid "" +"I2P Client Layer: allow any client to use I2P functionality, " +"without requiring the direct use of the router API." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:69 +#, python-format +msgid "" +"I2CP: I2P Client Protocol, allows secure and " +"asynchronous messaging over I2P by communicating messages over the I2CP " +"TCP socket." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:74 +msgid "" +"I2P End-to-end Transport Layer: allow TCP- or UDP-like " +"functionality on top of I2P." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:76 +#, python-format +msgid "" +"Streaming Library: an implementation of " +"TCP-like streams over I2P. This allows easier porting of existing " +"applications to I2P." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:80 +#, python-format +msgid "" +"Datagram Library: an implementation of UDP-" +"like messages over I2P. This allows easier porting of existing " +"applications to I2P." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:85 +msgid "" +"I2P Application Interface Layer: additional (optional) libraries " +"allowing easier implementations on top of I2P." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:93 +msgid "I2P Application Proxy Layer: proxy systems." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:95 +#, python-format +msgid "HTTP Client/Server, IRC Client, SOCKS, Streamr" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:99 +msgid "" +"Finally, what could be considered the 'I2P application layer', is " +"a large number of applications on top of I2P.\n" +"We can order this based on the I2P stack layer they use." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:104 +msgid "Streaming/datagram applications: i2psnark, Syndie, i2phex..." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:105 +msgid "SAM/BOB applications: IMule, i2p-bt, i2prufus, Robert..." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:106 +#, python-format +msgid "" +"Other I2P applications: Syndie, EepGet, plugins..." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:107 +msgid "" +"Regular applications: Jetty, Apache, Monotone, CVS, browsers, " +"e-mail..." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:111 +msgid "I2P Network stack" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:113 +msgid "Figure 1: The layers in the I2P Network stack." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:118 +msgid "Note: SAM/SAMv2 can use both the streaming lib and datagrams." +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:2 +msgid "Transport Overview" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:3 +msgid "September 2014" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:6 +msgid "Transports in I2P" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:8 +msgid "" +"A \"transport\" in I2P is a method for direct, point-to-point " +"communication\n" +"between two routers.\n" +"Transports must provide confidentiality and integrity \n" +"against external adversaries while authenticating that the router " +"contacted \n" +"is the one who should receive a given message." +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:16 +msgid "" +"I2P supports multiple transports simultaneously.\n" +"There are two transports currently implemented:" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:21 +#, python-format +msgid "NTCP, a Java New I/O (NIO) TCP transport" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:22 +#, python-format +msgid " SSU, or Secure Semireliable UDP" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:25 +msgid "" +"Each provides a \"connection\" paradigm, with authentication,\n" +"flow control, acknowledgments and retransmission." +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:31 +msgid "Transport Services" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:33 +msgid "The transport subsystem in I2P provides the following services:" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:37 +#, python-format +msgid "" +"Reliable delivery of I2NP messages.\n" +"Transports support I2NP message delivery ONLY.\n" +"They are not general-purpose data pipes." +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:42 +msgid "In-order delivery of messages is NOT guaranteed by all transports." +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:43 +msgid "" +"Maintain a set of router addresses, one or more for each transport,\n" +"that the router publishes as its global contact information (the " +"RouterInfo).\n" +"Each transport may connect using one of these addresses, which may be\n" +"IPv4 or (as of version 0.9.8) IPv6." +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:49 +msgid "Selection of the best transport for each outgoing message" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:50 +msgid "Queueing of outbound messages by priority" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:51 +msgid "" +"Bandwidth limiting, both outbound and inbound, according to router " +"configuration" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:52 +msgid "Setup and teardown of transport connections" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:53 +msgid "Encryption of point-to-point communications" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:54 +msgid "" +"Maintenance of connection limits for each transport, implementation of " +"various thresholds for these limits,\n" +"and communication of threshold status to the router so it may make " +"operational changes based on the status" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:58 +msgid "Firewall port opening using UPnP (Universal Plug and Play)" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:59 +msgid "Cooperative NAT/Firewall traversal" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:60 +msgid "" +"Local IP detection by various methods, including UPnP, inspection of " +"incoming connections, and enumeration of network devices" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:61 +msgid "" +"Coordination of firewall status and local IP, and changes to either, " +"among the transports" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:62 +#: i2p2www/pages/site/docs/transport/ssu.html:36 +msgid "" +"Communication of firewall status and local IP, and changes to either, to " +"the router and the user interface" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:63 +msgid "" +"Determination of a consensus clock, which is used to periodically update " +"the router's clock, as a backup for NTP" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:64 +msgid "" +"Maintenance of status for each peer, including whether it is connected, " +"whether it was recently connected,\n" +"and whether it was reachable in the last attempt" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:68 +msgid "Qualification of valid IP addresses according to a local rule set" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:69 +msgid "" +"Honoring the automated and manual lists of banned peers maintained by the" +" router,\n" +"and refusing outbound and inbound connections to those peers" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:76 +msgid "Transport Addresses" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:78 +msgid "" +"The transport subsystem maintains a set of router addresses, each of " +"which lists a transport method, IP, and port.\n" +"These addresses constitute the advertised contact points, and are " +"published by the router to the network database.\n" +"Addresses may also contain an arbitrary set of additional options." +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:84 +msgid "Each transport method may publish multiple router addresses." +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:88 +msgid "Typical scenarios are:" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:90 +msgid "" +"A router has no published addresses, so it is considered \"hidden\" and " +"cannot receive incoming connections" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:91 +#, python-format +msgid "" +"A router is firewalled, and therefore publishes an SSU address which " +"contains a list of cooperating\n" +"peers or \"introducers\" who will assist in NAT traversal (see the SSU spec for details)" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:95 +msgid "" +"A router is not firewalled or its NAT ports are open; it publishes both " +"NTCP and SSU addresses containing\n" +"directly-accessible IP and ports." +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:101 +msgid "Transport Selection" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:103 +#, python-format +msgid "" +"The transport system delivers I2NP messages " +"only. The transport selected for any message is\n" +"independent of the upper-layer protocols and contents (router or client " +"messages, whether an external application was using\n" +"TCP or UDP to connect to I2P, whether the upper layer was using\n" +"the streaming library\n" +"streaming\n" +"or\n" +"datagrams,\n" +"datagrams\n" +"etc.)." +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:117 +msgid "" +"For each outgoing message, the transport system solicits \"bids\" from " +"each transport.\n" +"The transport bidding the lowest (best) value wins the bid and receives " +"the message for delivery.\n" +"A transport may refuse to bid." +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:123 +msgid "Whether a transport bids, and with what value, depend on numerous factors:" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:127 +msgid "Configuration of transport preferences" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:128 +msgid "Whether the transport is already connected to the peer" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:129 +msgid "" +"The number of current connections compared to various connection limit " +"thresholds" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:130 +msgid "Whether recent connection attempts to the peer have failed" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:131 +msgid "" +"The size of the message, as different transports have different size " +"limits" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:132 +msgid "" +"Whether the peer can accept incoming connections for that transport, as " +"advertised in its RouterInfo" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:133 +msgid "Whether the connection would be indirect (requiring introducers) or direct" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:134 +msgid "The peer's transport preference, as advertised in its RouterInfo" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:137 +msgid "" +"In general, the bid values are selected so that two routers are only " +"connected by a single transport\n" +"at any one time. However, this is not a requirement." +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:144 +msgid "New Transports and Future Work" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:146 +msgid "Additional transports may be developed, including:" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:151 +msgid "A TLS/SSH look-alike transport" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:152 +msgid "" +"An \"indirect\" transport for routers that are not reachable by all other" +" routers (one form of \"restricted routes\")" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:153 +msgid "Tor-compatible pluggable transports" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:156 +msgid "" +"Work continues on adjusting default connection limits for each transport." +"\n" +"I2P is designed as a \"mesh network\", where it is assumed that any " +"router can connect to any other router.\n" +"This assumption may be broken by routers that have exceeded their " +"connection limits, and by\n" +"routers that are behind restrictive state firewalls (restricted routes)." +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:163 +msgid "" +"The current connection limits are higher for SSU than for NTCP, based on " +"the assumption that\n" +"the memory requirements for an NTCP connection are higher than that for " +"SSU.\n" +"However, as NTCP buffers are partially in the kernel and SSU buffers are " +"on the Java heap,\n" +"that assumption is difficult to verify." +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:170 +#, python-format +msgid "" +"Analyze Breaking and Improving Protocol " +"Obfuscation\n" +"and see how transport-layer padding may improve things." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:2 +msgid "NTCP (NIO-based TCP)" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:6 +#, python-format +msgid "" +"NTCP is one of two transports currently " +"implemented in I2P.\n" +"The other is SSU.\n" +"NTCP is a Java NIO-based transport introduced in I2P release 0.6.1.22.\n" +"Java NIO (new I/O) does not suffer from the 1 thread per connection " +"issues of the old TCP transport.\n" +"NTCP-over-IPv6 is supported as of version 0.9.8." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:14 +msgid "" +"By default, NTCP uses the IP/Port\n" +"auto-detected by SSU. When enabled on config.jsp,\n" +"SSU will notify/restart NTCP when the external address changes\n" +"or when the firewall status changes.\n" +"Now you can enable inbound TCP without a static IP or dyndns service." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:22 +msgid "" +"The NTCP code within I2P is relatively lightweight (1/4 the size of the " +"SSU code)\n" +"because it uses the underlying Java TCP transport for reliable delivery." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:28 +#: i2p2www/pages/site/docs/transport/ssu.html:39 +msgid "Router Address Specification" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:30 +#: i2p2www/pages/site/docs/transport/ssu.html:41 +msgid "The following properties are stored in the network database." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:45 +msgid "NTCP Protocol Specification" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:47 +msgid "Standard Message Format" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:48 +msgid "" +"After establishment,\n" +"the NTCP transport sends individual I2NP messages, with a simple " +"checksum.\n" +"The unencrypted message is encoded as follows:" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:66 +msgid "" +"The data is then AES/256/CBC encrypted. The session key for the " +"encryption\n" +"is negotiated during establishment (using Diffie-Hellman 2048 bit).\n" +"The establishment between two routers is implemented in the " +"EstablishState class\n" +"and detailed below.\n" +"The IV for AES/256/CBC encryption is the last 16 bytes of the previous " +"encrypted message." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:74 +msgid "" +"0-15 bytes of padding are required to bring the total message length\n" +"(including the six size and checksum bytes) to a multiple of 16.\n" +"The maximum message size is currently 16 KB.\n" +"Therefore the maximum data size is currently 16 KB - 6, or 16378 bytes.\n" +"The minimum data size is 1." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:82 +msgid "Time Sync Message Format" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:83 +msgid "" +"One special case is a metadata message where the sizeof(data) is 0. In\n" +"that case, the unencrypted message is encoded as:" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:94 +msgid "" +"Total length: 16 bytes. The time sync message is sent at approximately 15" +" minute intervals.\n" +"The message is encrypted just as standard messages are." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:100 +msgid "Checksums" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:101 +#, python-format +msgid "" +"The standard and time sync messages use the Adler-32 checksum\n" +"as defined in the ZLIB Specification." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:107 +#: i2p2www/pages/site/docs/transport/ssu.html:183 +msgid "Idle Timeout" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:108 +#: i2p2www/pages/site/docs/transport/ssu.html:184 +msgid "" +"Idle timeout and connection close is at the discretion of each endpoint " +"and may vary.\n" +"The current implementation lowers the timeout as the number of " +"connections approaches the\n" +"configured maximum, and raises the timeout when the connection count is " +"low.\n" +"The recommended minimum timeout is two minutes or more, and the " +"recommended\n" +"maximum timeout is ten minutes or more." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:117 +msgid "RouterInfo Exchange" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:118 +msgid "" +"After establishment, and every 30-60 minutes thereafter,\n" +"the two routers should generally exchange RouterInfos using a " +"DatabaseStoreMessage.\n" +"However, Alice should check if the first queued message is a " +"DatabaseStoreMessage\n" +"so as not to send a duplicate message; this is often the case when " +"connecting to a floodfill router." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:126 +msgid "Establishment Sequence" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:127 +msgid "" +"In the establish state, there is a 4-phase message sequence to exchange " +"DH keys and signatures.\n" +"In the first two messages there is a 2048-bit Diffie Hellman exchange.\n" +"Then, signatures of the critical data are exchanged to confirm the " +"connection." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:143 +msgid "Legend:" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:144 +msgid "256 byte DH public keys" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:148 +msgid "timestamps (4 bytes, seconds since epoch)" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:149 +msgid "32 byte Session key" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:150 +msgid "2 byte size of Alice identity to follow" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:153 +msgid "DH Key Exchange" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:154 +#, python-format +msgid "" +"The initial 2048-bit DH key exchange\n" +"uses the same shared prime (p) and generator (g) as that used for I2P's\n" +"ElGamal encryption." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:160 +msgid "" +"The DH key exchange consists of a number of steps, displayed below.\n" +"The mapping between these steps and the messages sent between I2P " +"routers,\n" +"is marked in bold." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:166 +msgid "" +"Alice generates a secret integer x. She then calculates X = g^x mod" +" p." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:167 +msgid "Alice sends X to Bob (Message 1)." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:168 +msgid "" +"Bob generates a secret integer y. He then calculates Y = g^y mod " +"p." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:169 +msgid "Bob sends Y to Alice.(Message 2)" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:170 +msgid "Alice can now compute sessionKey = Y^x mod p." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:171 +msgid "Bob can now compute sessionKey = X^y mod p." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:172 +msgid "" +"Both Alice and Bob now have a shared key sessionKey = g^(x*y) mod " +"p." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:174 +#, python-format +msgid "" +"The sessionKey is then used to exchange identities in Message 3 " +"and Message 4.\n" +"The exponent (x and y) length for the DH exchange is documented on the\n" +"cryptography page." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:194 +msgid "Message 1 (Session Request)" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:195 +#, python-format +msgid "" +"This is the DH request. Alice already has Bob's\n" +"Router " +"Identity,\n" +"IP address, and port, as contained in his\n" +"Router Info,\n" +"which was published to the\n" +"network database.\n" +"Alice sends Bob:" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:208 +#: i2p2www/pages/site/docs/transport/ntcp.html:251 +#: i2p2www/pages/site/docs/transport/ntcp.html:333 +#: i2p2www/pages/site/docs/transport/ntcp.html:438 +msgid "Size:" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:210 +msgid "Contents:" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:228 +msgid "256 byte X from Diffie Hellman" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:230 +msgid "SHA256 Hash(X) xored with SHA256 Hash(Bob's `RouterIdentity`)" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:237 +#: i2p2www/pages/site/docs/transport/ntcp.html:320 +#: i2p2www/pages/site/docs/transport/ntcp.html:399 +msgid "Notes:" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:238 +msgid "" +"Bob verifies HXxorHI using his own router hash. If it does not verify,\n" +"Alice has contacted the wrong router, and Bob drops the connection." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:244 +msgid "Message 2 (Session Created)" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:245 +msgid "This is the DH reply. Bob sends Alice:" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:253 +#: i2p2www/pages/site/docs/transport/ntcp.html:335 +#: i2p2www/pages/site/docs/transport/ntcp.html:440 +msgid "Unencrypted Contents:" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:275 +#: i2p2www/pages/site/docs/transport/ntcp.html:311 +msgid "256 byte Y from Diffie Hellman" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:277 +msgid "SHA256 Hash(X concatenated with Y)" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:280 +#: i2p2www/pages/site/docs/transport/ntcp.html:365 +msgid "4 byte timestamp (seconds since the epoch)" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:282 +msgid "12 bytes random data" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:286 +#: i2p2www/pages/site/docs/transport/ntcp.html:377 +#: i2p2www/pages/site/docs/transport/ntcp.html:467 +msgid "Encrypted Contents:" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:313 +#, python-format +msgid "" +"48 bytes AES encrypted using the DH " +"session key and\n" +" the last 16 bytes of Y as the IV" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:321 +msgid "" +"Alice may drop the connection if the clock skew with Bob is too high as " +"calculated using tsB." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:326 +msgid "Message 3 (Session Confirm A)" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:327 +msgid "" +"This contains Alice's router identity, and a signature of the critical " +"data. Alice sends Bob:" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:361 +msgid "2 byte size of Alice's router identity to follow (387+)" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:363 +msgid "Alice's 387+ byte `RouterIdentity`" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:367 +#: i2p2www/pages/site/docs/transport/ntcp.html:462 +msgid "0-15 bytes random data" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:369 +msgid "" +"the `Signature` of the following concatenated data:\n" +" X, Y, Bob's `RouterIdentity`, tsA, tsB.\n" +" Alice signs it with the `SigningPrivateKey` associated with " +"the `SigningPublicKey` in her `RouterIdentity`" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:390 +#, python-format +msgid "" +"448 bytes AES encrypted using the DH" +" session key and\n" +" the last 16 bytes of HXxorHI (i.e., the last 16 bytes " +"of message #1) as the IV" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:401 +msgid "Bob verifies the signature, and on failure, drops the connection." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:404 +msgid "" +"Bob may drop the connection if the clock skew with Alice is too high as " +"calculated using tsA." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:407 +msgid "" +"Alice will use the last 16 bytes of the encrypted contents of this " +"message as the IV for the next message." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:431 +msgid "Message 4 (Session Confirm B)" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:432 +msgid "This is a signature of the critical data. Bob sends Alice:" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:456 +msgid "" +"the `Signature` of the following concatenated data:\n" +" X, Y, Alice's `RouterIdentity`, tsA, tsB.\n" +" Bob signs it with the `SigningPrivateKey` associated with " +"the `SigningPublicKey` in his `RouterIdentity`" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:480 +#, python-format +msgid "" +"Data AES encrypted using the DH " +"session key and\n" +" the last 16 bytes of the encrypted contents of message " +"#2 as the IV\n" +" 48 bytes for a DSA signature, may vary for other " +"signature types" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:489 +msgid "Alice verifies the signature, and on failure, drops the connection." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:492 +msgid "" +"Bob will use the last 16 bytes of the encrypted contents of this message " +"as the IV for the next message." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:507 +msgid "After Establishment" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:508 +msgid "" +"The connection is established, and standard or time sync messages may be " +"exchanged.\n" +"All subsequent messages are AES encrypted using the negotiated DH session" +" key.\n" +"Alice will use the last 16 bytes of the encrypted contents of message #3 " +"as the next IV.\n" +"Bob will use the last 16 bytes of the encrypted contents of message #4 as" +" the next IV." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:517 +msgid "Check Connection Message" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:518 +msgid "" +"Alternately, when Bob receives a connection, it could be a\n" +"check connection (perhaps prompted by Bob asking for someone\n" +"to verify his listener).\n" +"Check Connection is not currently used.\n" +"However, for the record, check connections are formatted as follows.\n" +"A check info connection will receive 256 bytes containing:" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:527 +msgid "32 bytes of uninterpreted, ignored data" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:528 +msgid "1 byte size" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:529 +msgid "" +"that many bytes making up the local router's IP address (as reached by " +"the remote side)" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:530 +msgid "2 byte port number that the local router was reached on" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:531 +msgid "" +"4 byte i2p network time as known by the remote side (seconds since the " +"epoch)" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:532 +msgid "uninterpreted padding data, up to byte 223" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:533 +msgid "" +"xor of the local router's identity hash and the SHA256 of bytes 32 " +"through bytes 223" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:536 +msgid "Check connection is completely disabled as of release 0.9.12." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:540 +msgid "Discussion" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:541 +#, python-format +msgid "Now on the NTCP Discussion Page." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:547 +msgid "The maximum message size should be increased to approximately 32 KB." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:551 +msgid "" +"A set of fixed packet sizes may be appropriate to further hide the data \n" +"fragmentation to external adversaries, but the tunnel, garlic, and end to" +" \n" +"end padding should be sufficient for most needs until then.\n" +"However, there is currently no provision for padding beyond the next " +"16-byte boundary,\n" +"to create a limited number of message sizes." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:559 +msgid "" +"Memory utilization (including that of the kernel) for NTCP should be " +"compared to that for SSU." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:563 +msgid "" +"Can the establishment messages be randomly padded somehow, to frustrate\n" +"identification of I2P traffic based on initial packet sizes?" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:2 +msgid "Secure Semireliable UDP" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:7 +#, python-format +msgid "" +"SSU (also called \"UDP\" in much of the I2P documentation and user " +"interfaces)\n" +"is one of two transports currently " +"implemented in I2P.\n" +"The other is NTCP." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:13 +msgid "" +"SSU is the newer of the two transports,\n" +"introduced in I2P release 0.6.\n" +"In a standard I2P installation, the router uses both NTCP and SSU for " +"outbound connections.\n" +"SSU-over-IPv6 is supported as of version 0.9.8." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:20 +msgid "" +"SSU is called \"semireliable\" because it will repeatedly retransmit " +"unacknowledged messages,\n" +"but only up to a maximum number of times. After that, the message is " +"dropped." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:25 +msgid "SSU Services" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:27 +msgid "" +"Like the NTCP transport, SSU provides reliable, encrypted, connection-" +"oriented, point-to-point data transport.\n" +"Unique to SSU, it also provides IP detection and NAT traversal services, " +"including:" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:33 +msgid "" +"Cooperative NAT/Firewall traversal using introducers" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:34 +msgid "" +"Local IP detection by inspection of incoming packets and peer testing" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:35 +msgid "" +"Communication of firewall status and local IP, and changes to either to " +"NTCP" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:47 +#: i2p2www/pages/site/docs/transport/ssu.html:60 +#: i2p2www/pages/site/docs/transport/ssu.html:61 +#: i2p2www/pages/site/docs/transport/ssu.html:63 +#: i2p2www/pages/site/docs/transport/ssu.html:66 +#: i2p2www/pages/site/docs/transport/ssu.html:67 +#: i2p2www/pages/site/docs/transport/ssu.html:73 +msgid "See below" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:80 +msgid "Protocol Details" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:82 +msgid "Congestion control" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:84 +msgid "" +"SSU's need for only semireliable delivery, TCP-friendly operation,\n" +"and the capacity for high throughput allows a great deal of latitude in\n" +"congestion control. The congestion control algorithm outlined below is\n" +"meant to be both efficient in bandwidth as well as simple to implement." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:91 +msgid "" +"Packets are scheduled according to the router's policy, taking care\n" +"not to exceed the router's outbound capacity or to exceed the measured \n" +"capacity of the remote peer. The measured capacity operates along the\n" +"lines of TCP's slow start and congestion avoidance, with additive " +"increases\n" +"to the sending capacity and multiplicative decreases in face of " +"congestion.\n" +"Unlike for TCP, routers may give up on some messages after\n" +"a given period or number of retransmissions while continuing to transmit" +" \n" +"other messages." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:102 +msgid "" +"The congestion detection techniques vary from TCP as well, since each \n" +"message has its own unique and nonsequential identifier, and each message" +"\n" +"has a limited size - at most, 32KB. To efficiently transmit this " +"feedback\n" +"to the sender, the receiver periodically includes a list of fully ACKed \n" +"message identifiers and may also include bitfields for partially received" +"\n" +"messages, where each bit represents the reception of a fragment. If \n" +"duplicate fragments arrive, the message should be ACKed again, or if the\n" +"message has still not been fully received, the bitfield should be \n" +"retransmitted with any new updates." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:114 +msgid "" +"The current implementation does not pad the packets to\n" +"any particular size, but instead just places a single message fragment " +"into\n" +"a packet and sends it off (careful not to exceed the MTU)." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:121 +msgid "" +"As of router version 0.8.12,\n" +"two MTU values are used for IPv4: 620 and 1484.\n" +"The MTU value is adjusted based on the percentage of packets that are " +"retransmitted." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:127 +msgid "" +"For both MTU values, it is desirable that (MTU % 16) == 12, so that\n" +"the payload portion after the 28-byte IP/UDP header is a multiple of\n" +"16 bytes, for encryption purposes." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:133 +msgid "" +"For the small MTU value, it is desirable to pack a 2646-byte\n" +"Variable Tunnel Build Message efficiently into multiple packets;\n" +"with a 620-byte MTU, it fits into 5 packets with nicely." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:139 +msgid "" +"Based on measurements, 1492 fits nearly all reasonably small I2NP " +"messages\n" +"(larger I2NP messages may be up to 1900 to 4500 bytes, which isn't going " +"to fit\n" +"into a live network MTU anyway)." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:145 +msgid "" +"The MTU values were 608 and 1492 for releases 0.8.9 - 0.8.11.\n" +"The large MTU was 1350 prior to release 0.8.9." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:150 +msgid "" +"The maximum receive packet size\n" +"is 1571 bytes as of release 0.8.12.\n" +"For releases 0.8.9 - 0.8.11 it was 1535 bytes.\n" +"Prior to release 0.8.9 it was 2048 bytes." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:157 +msgid "" +"As of release 0.9.2, if a router's network interface MTU is less than " +"1484,\n" +"it will publish that in the network database, and other routers should\n" +"honor that when a connection is established." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:163 +msgid "" +"For IPv6, the minimum MTU is 1280. The IPv6 IP/UDP header is 48 bytes,\n" +"so we use an MTU where (MTN % 16 == 0), which is true for 1280.\n" +"The maximum IPv6 MTU is 1488.\n" +" (max was 1472 prior to version 0.9.28)." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:170 +msgid "Message Size Limits" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:171 +msgid "" +"While the maximum message size is nominally 32KB, the practical\n" +"limit differs. The protocol limits the number of fragments to 7 bits, or " +"128.\n" +"The current implementation, however, limits each message to a maximum of " +"64 fragments,\n" +"which is sufficient for 64 * 534 = 33.3 KB when using the 608 MTU.\n" +"Due to overhead for bundled LeaseSets and session keys, the practical " +"limit\n" +"at the application level is about 6KB lower, or about 26KB.\n" +"Further work is necessary to raise the UDP transport limit above 32KB.\n" +"For connections using the larger MTU, larger messages are possible." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:193 +msgid "Keys" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:195 +msgid "" +"All encryption used is AES256/CBC with 32 byte keys and 16 byte IVs.\n" +"When Alice originates a session with Bob,\n" +"the MAC and session keys are negotiated as part of the DH exchange, and " +"are then used\n" +"for the HMAC and encryption, respectively. During the DH exchange, \n" +"Bob's publicly knowable introKey is used for the MAC and encryption." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:203 +msgid "" +"Both the initial message and the subsequent\n" +"reply use the introKey of the responder (Bob) - the responder does \n" +"not need to know the introKey of the requester (Alice). The DSA \n" +"signing key used by Bob should already be known to Alice when she \n" +"contacts him, though Alice's DSA key may not already be known by \n" +"Bob." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:212 +msgid "" +"Upon receiving a message, the receiver checks the \"from\" IP address and" +" port\n" +"with all established sessions - if there are matches,\n" +"that session's MAC keys are tested in the HMAC. If none\n" +"of those verify or if there are no matching IP addresses, the \n" +"receiver tries their introKey in the MAC. If that does not verify,\n" +"the packet is dropped. If it does verify, it is interpreted \n" +"according to the message type, though if the receiver is overloaded,\n" +"it may be dropped anyway." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:223 +msgid "" +"If Alice and Bob have an established session, but Alice loses the \n" +"keys for some reason and she wants to contact Bob, she may at any \n" +"time simply establish a new session through the SessionRequest and\n" +"related messages. If Bob has lost the key but Alice does not know\n" +"that, she will first attempt to prod him to reply, by sending a \n" +"DataMessage with the wantReply flag set, and if Bob continually \n" +"fails to reply, she will assume the key is lost and reestablish a \n" +"new one." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:234 +#, python-format +msgid "" +"For the DH key agreement,\n" +"RFC3526 2048bit\n" +"MODP group (#14) is used:" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:244 +#, python-format +msgid "" +"These are the same p and g used for I2P's\n" +"ElGamal encryption." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:249 +msgid "Replay prevention" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:251 +msgid "" +"Replay prevention at the SSU layer occurs by rejecting packets \n" +"with exceedingly old timestamps or those which reuse an IV. To\n" +"detect duplicate IVs, a sequence of Bloom filters are employed to\n" +"\"decay\" periodically so that only recently added IVs are detected." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:258 +msgid "" +"The messageIds used in DataMessages are defined at layers above\n" +"the SSU transport and are passed through transparently. These IDs\n" +"are not in any particular order - in fact, they are likely to be\n" +"entirely random. The SSU layer makes no attempt at messageId \n" +"replay prevention - higher layers should take that into account." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:266 +msgid "Addressing" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:268 +msgid "" +"To contact an SSU peer, one of two sets of information is necessary:\n" +"a direct address, for when the peer is publicly reachable, or an\n" +"indirect address, for using a third party to introduce the peer.\n" +"There is no restriction on the number of addresses a peer may have." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:280 +msgid "" +"Each of the addresses may also expose a series of options - special\n" +"capabilities of that particular peer. For a list of available\n" +"capabilities, see below." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:286 +#, python-format +msgid "" +"The addresses, options, and capabilities are published in the network database." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:291 +msgid "Direct Session Establishment" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:292 +msgid "" +"Direct session establishment is used when no third party is required for " +"NAT traversal.\n" +"The message sequence is as follows:" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:297 +msgid "Connection establishment (direct)" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:298 +msgid "" +"Alice connects directly to Bob.\n" +"IPv6 is supported as of version 0.9.8." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:313 +#, python-format +msgid "" +"After the SessionConfirmed message is received, Bob sends a small\n" +"DeliveryStatus message\n" +"as a confirmation.\n" +"In this message, the 4-byte message ID is set to a random number, and the" +"\n" +"8-byte \"arrival time\" is set to the current network-wide ID, which is 2" +"\n" +"(i.e. 0x0000000000000002)." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:322 +#, python-format +msgid "" +"After the status message is sent, the peers usually exchange\n" +"DatabaseStore messages\n" +"containing their\n" +"RouterInfos,\n" +"however, this is not required." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:331 +msgid "" +"It does not appear that the type of the status message or its contents " +"matters.\n" +"It was originally added becasue the DatabaseStore message was delayed\n" +"several seconds; since the store is now sent immediately, perhaps\n" +"the status message can be eliminated." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:340 +msgid "" +"Introduction keys are delivered through an external channel \n" +"(the network database, where they are identical to the router Hash for " +"now)\n" +"and must be used when establishing a session key. For the indirect\n" +"address, the peer must first contact the relayhost and ask them for\n" +"an introduction to the peer known at that relayhost under the given\n" +"tag. If possible, the relayhost sends a message to the addressed\n" +"peer telling them to contact the requesting peer, and also gives \n" +"the requesting peer the IP and port on which the addressed peer is\n" +"located. In addition, the peer establishing the connection must \n" +"already know the public keys of the peer they are connecting to (but\n" +"not necessary to any intermediary relay peer)." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:354 +msgid "" +"Indirect session establishment by means of a third party introduction\n" +"is necessary for efficient NAT traversal. Charlie, a router behind a\n" +"NAT or firewall which does not allow unsolicited inbound UDP packets,\n" +"first contacts a few peers, choosing some to serve as introducers. Each\n" +"of these peers (Bob, Bill, Betty, etc) provide Charlie with an " +"introduction\n" +"tag - a 4 byte random number - which he then makes available to the " +"public\n" +"as methods of contacting him. Alice, a router who has Charlie's " +"published\n" +"contact methods, first sends a RelayRequest packet to one or more of the" +" \n" +"introducers, asking each to introduce her to Charlie (offering the \n" +"introduction tag to identify Charlie). Bob then forwards a RelayIntro\n" +"packet to Charlie including Alice's public IP and port number, then sends" +"\n" +"Alice back a RelayResponse packet containing Charlie's public IP and port" +"\n" +"number. When Charlie receives the RelayIntro packet, he sends off a " +"small\n" +"random packet to Alice's IP and port (poking a hole in his NAT/firewall)," +"\n" +"and when Alice receives Bob's RelayResponse packet, she begins a new \n" +"full direction session establishment with the specified IP and port." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:381 +msgid "Connection establishment (indirect using an introducer)" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:383 +msgid "Alice first connects to introducer Bob, who relays the request to Charlie." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:401 +msgid "" +"After the hole punch, the session is established between Alice and " +"Charlie as in a direct establishment." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:413 +msgid "Peer testing" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:415 +msgid "" +"The automation of collaborative reachability testing for peers is\n" +"enabled by a sequence of PeerTest messages. With its proper \n" +"execution, a peer will be able to determine their own reachability\n" +"and may update its behavior accordingly. The testing process is \n" +"quite simple:" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:434 +msgid "" +"Each of the PeerTest messages carry a nonce identifying the\n" +"test series itself, as initialized by Alice. If Alice doesn't \n" +"get a particular message that she expects, she will retransmit\n" +"accordingly, and based upon the data received or the messages\n" +"missing, she will know her reachability. The various end states\n" +"that may be reached are as follows:" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:444 +msgid "" +"If she doesn't receive a response from Bob, she will retransmit\n" +"up to a certain number of times, but if no response ever arrives,\n" +"she will know that her firewall or NAT is somehow misconfigured, \n" +"rejecting all inbound UDP packets even in direct response to an\n" +"outbound packet. Alternately, Bob may be down or unable to get \n" +"Charlie to reply." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:453 +msgid "" +"If Alice doesn't receive a PeerTest message with the \n" +"expected nonce from a third party (Charlie), she will retransmit\n" +"her initial request to Bob up to a certain number of times, even\n" +"if she has received Bob's reply already. If Charlie's first message \n" +"still doesn't get through but Bob's does, she knows that she is\n" +"behind a NAT or firewall that is rejecting unsolicited connection\n" +"attempts and that port forwarding is not operating properly (the\n" +"IP and port that Bob offered up should be forwarded)." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:464 +msgid "" +"If Alice receives Bob's PeerTest message and both of Charlie's\n" +"PeerTest messages but the enclosed IP and port numbers in Bob's \n" +"and Charlie's second messages don't match, she knows that she is \n" +"behind a symmetric NAT, rewriting all of her outbound packets with\n" +"different 'from' ports for each peer contacted. She will need to\n" +"explicitly forward a port and always have that port exposed for \n" +"remote connectivity, ignoring further port discovery." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:474 +msgid "" +"If Alice receives Charlie's first message but not his second,\n" +"she will retransmit her PeerTest message to Charlie up to a \n" +"certain number of times, but if no response is received she knows\n" +"that Charlie is either confused or no longer online." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:482 +msgid "" +"Alice should choose Bob arbitrarily from known peers who seem\n" +"to be capable of participating in peer tests. Bob in turn should\n" +"choose Charlie arbitrarily from peers that he knows who seem to be\n" +"capable of participating in peer tests and who are on a different\n" +"IP from both Bob and Alice. If the first error condition occurs\n" +"(Alice doesn't get PeerTest messages from Bob), Alice may decide\n" +"to designate a new peer as Bob and try again with a different nonce." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:492 +msgid "" +"Alice's introduction key is included in all of the PeerTest \n" +"messages so that she doesn't need to already have an established\n" +"session with Bob and so that Charlie can contact her without knowing\n" +"any additional information. Alice may go on to establish a session\n" +"with either Bob or Charlie, but it is not required." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:520 +msgid "Transmission window, ACKs and Retransmissions" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:521 +#, python-format +msgid "" +"The DATA message may contain ACKs of full messages and\n" +"partial ACKs of individual fragments of a message. See\n" +"the data message section of\n" +"the protocol specification page\n" +"for details." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:529 +#, python-format +msgid "" +"The details of windowing, ACK, and retransmission strategies are not " +"specified\n" +"here. See the Java code for the current implementation.\n" +"During the establishment phase, and for peer testing, routers\n" +"should implement exponential backoff for retransmission.\n" +"For an established connection, routers should implement\n" +"an adjustable transmission window, RTT estimate and timeout, similar to " +"TCP\n" +"or streaming.\n" +"See the code for initial, min and max parameters." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:541 +msgid "Security" +msgstr "Zabezpečení" + +#: i2p2www/pages/site/docs/transport/ssu.html:542 +msgid "" +"UDP source addresses may, of course, be spoofed.\n" +"Additionally, the IPs and ports contained inside specific\n" +"SSU messages (RelayRequest, RelayResponse, RelayIntro, PeerTest)\n" +"may not be legitimate.\n" +"Also, certain actions and responses may need to be rate-limited." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:550 +msgid "" +"The details of validation are not specified\n" +"here. Implementers should add defenses where appropriate." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:556 +msgid "Peer capabilities" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:560 +msgid "" +"If the peer address contains the 'B' capability, that means \n" +"they are willing and able to participate in peer tests as\n" +"a 'Bob' or 'Charlie'." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:572 +msgid "" +"If the peer address contains the 'C' capability, that means\n" +"they are willing and able to serve as an introducer - serving\n" +"as a Bob for an otherwise unreachable Alice." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:581 +msgid "" +"Analysis of current SSU performance, including assessment of window size " +"adjustment\n" +"and other parameters, and adjustment of the protocol implementation to " +"improve\n" +"performance, is a topic for future work." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:587 +msgid "" +"The current implementation repeatedly sends acknowledgments for the same " +"packets,\n" +"which unnecessarily increases overhead." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:592 +msgid "" +"The default small MTU value of 620 should be analyzed and possibly " +"increased.\n" +"The current MTU adjustment strategy should be evaluated.\n" +"Does a streaming lib 1730-byte packet fit in 3 small SSU packets? " +"Probably not." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:598 +msgid "The protocol should be extended to exchange MTUs during the setup." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:602 +msgid "Rekeying is currently unimplemented and may never be." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:606 +msgid "" +"The potential use of the 'challenge' fields in RelayIntro and " +"RelayResponse,\n" +"and use of the padding field in SessionRequest and SessionCreated, is " +"undocumented." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:611 +msgid "" +"Instead of a single fragment per packet, a more efficient\n" +"strategy may be to bundle multiple message fragments into the same " +"packet,\n" +"so long as it doesn't exceed the MTU." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:617 +msgid "" +"A set of fixed packet sizes may be appropriate to further hide the data \n" +"fragmentation to external adversaries, but the tunnel, garlic, and end to" +" \n" +"end padding should be sufficient for most needs until then." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:623 +msgid "" +"Why are introduction keys the same as the router hash, should it be " +"changed, would there be any benefit?" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:627 +msgid "Capacities appear to be unused." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:631 +msgid "" +"Signed-on times in SessionCreated and SessionConfirmed appear to be " +"unused or unverified." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:636 +msgid "Implementation Diagram" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:637 +msgid "" +"This diagram\n" +"should accurately reflect the current implementation, however there may " +"be small differences." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:645 +msgid "Now on the SSU specification page" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:2 +msgid "Tunnel Implementation" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:3 +msgid "October 2010" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:7 +msgid "This page documents the current tunnel implementation." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:9 +msgid "Tunnel overview" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:11 +msgid "" +"Within I2P, messages are passed in one direction through a virtual\n" +"tunnel of peers, using whatever means are available to pass the \n" +"message on to the next hop. Messages arrive at the tunnel's \n" +"gateway, get bundled up and/or fragmented into fixed-size tunnel " +"messages, \n" +"and are forwarded on to the next hop in the tunnel, which processes and " +"verifies\n" +"the validity of the message and sends it on to the next hop, and so on, " +"until\n" +"it reaches the tunnel endpoint. That endpoint takes the messages\n" +"bundled up by the gateway and forwards them as instructed - either\n" +"to another router, to another tunnel on another router, or locally." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:23 +msgid "" +"Tunnels all work the same, but can be segmented into two different\n" +"groups - inbound tunnels and outbound tunnels. The inbound tunnels\n" +"have an untrusted gateway which passes messages down towards the \n" +"tunnel creator, which serves as the tunnel endpoint. For outbound \n" +"tunnels, the tunnel creator serves as the gateway, passing messages\n" +"out to the remote endpoint." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:32 +msgid "" +"The tunnel's creator selects exactly which peers will participate\n" +"in the tunnel, and provides each with the necessary configuration\n" +"data. They may have any number of hops.\n" +"It is the intent to make\n" +"it hard for either participants or third parties to determine the length " +"of \n" +"a tunnel, or even for colluding participants to determine whether they " +"are a\n" +"part of the same tunnel at all (barring the situation where colluding " +"peers are\n" +"next to each other in the tunnel)." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:43 +msgid "" +"In practice, a series of tunnel pools are used for different\n" +"purposes - each local client destination has its own set of inbound\n" +"tunnels and outbound tunnels, configured to meet its anonymity and\n" +"performance needs. In addition, the router itself maintains a series\n" +"of pools for participating in the network database and for managing\n" +"the tunnels themselves." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:52 +msgid "" +"I2P is an inherently packet switched network, even with these \n" +"tunnels, allowing it to take advantage of multiple tunnels running \n" +"in parallel, increasing resilience and balancing load. Outside of\n" +"the core I2P layer, there is an optional end to end streaming library \n" +"available for client applications, exposing TCP-esque operation,\n" +"including message reordering, retransmission, congestion control, etc." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:61 +#, python-format +msgid "" +"An overview of I2P tunnel terminology is\n" +"on the tunnel overview page." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:66 +msgid "Tunnel Operation (Message Processing)" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:69 +#, python-format +msgid "" +"After a tunnel is built, I2NP messages are " +"processed and passed through it.\n" +"Tunnel operation has four distinct processes, taken on by various \n" +"peers in the tunnel." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:75 +msgid "" +"First, the tunnel gateway accumulates a number\n" +"of I2NP messages and preprocesses them into tunnel messages for\n" +"delivery." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:80 +msgid "" +"Next, that gateway encrypts that preprocessed data, then\n" +"forwards it to the first hop." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:84 +msgid "" +"That peer, and subsequent tunnel \n" +"participants, unwrap a layer of the encryption, verifying that it isn't\n" +"a duplicate, then forward it on to the next peer." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:89 +msgid "" +"Eventually, the tunnel messages arrive at the endpoint where the I2NP " +"messages\n" +"originally bundled by the gateway are reassembled and forwarded on as \n" +"requested." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:96 +msgid "" +"Intermediate tunnel participants do not know whether they are in an\n" +"inbound or an outbound tunnel; they always \"encrypt\" for the next hop.\n" +"Therefore, we take advantage of symmetric AES encryption\n" +"to \"decrypt\" at the outbound tunnel gateway,\n" +"so that the plaintext is revealed at the outbound endpoint." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:110 +msgid "Role" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:111 +msgid "Preprocessing" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:112 +msgid "Encryption Operation" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:113 +msgid "Postprocessing" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:117 +msgid "Outbound Gateway (Creator)" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:118 +#: i2p2www/pages/site/docs/tunnels/implementation.html:141 +msgid "Fragment, Batch, and Pad" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:119 +msgid "Iteratively encrypt (using decryption operations)" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:120 +#: i2p2www/pages/site/docs/tunnels/implementation.html:127 +#: i2p2www/pages/site/docs/tunnels/implementation.html:143 +#: i2p2www/pages/site/docs/tunnels/implementation.html:150 +msgid "Forward to next hop" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:124 +#: i2p2www/pages/site/docs/tunnels/implementation.html:147 +msgid "Participant" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:126 +msgid "Decrypt (using an encryption operation)" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:133 +msgid "Decrypt (using an encryption operation) to reveal plaintext tunnel message" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:134 +msgid "Reassemble Fragments, Forward as instructed to Inbound Gateway or Router" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:142 +#: i2p2www/pages/site/docs/tunnels/implementation.html:149 +msgid "Encrypt" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:154 +msgid "Inbound Endpoint (Creator)" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:156 +msgid "Iteratively decrypt to reveal plaintext tunnel message" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:157 +msgid "Reassemble Fragments, Receive data" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:163 +msgid "Gateway Processing" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:164 +msgid "Message Preprocessing" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:166 +#, python-format +msgid "" +"A tunnel gateway's function is to fragment and pack\n" +"I2NP messages into fixed-size\n" +"tunnel messages\n" +"and encrypt the tunnel messages.\n" +"Tunnel messages contain the following:" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:174 +msgid "A 4 byte Tunnel ID" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:175 +msgid "A 16 byte IV (initialization vector)" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:176 +msgid "A checksum" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:177 +msgid "Padding, if necessary" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:178 +msgid "One or more { delivery instruction, I2NP message fragment } pairs" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:181 +msgid "" +"Tunnel IDs are 4 byte numbers used at each hop - participants know what\n" +"tunnel ID to listen for messages with and what tunnel ID they should be " +"forwarded\n" +"on as to the next hop, and each hop chooses the tunnel ID which they " +"receive messages\n" +"on. Tunnels themselves are short-lived (10 minutes).\n" +"Even if subsequent tunnels are built using the same sequence of \n" +"peers, each hop's tunnel ID will change." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:190 +msgid "" +"To prevent adversaries from tagging the messages along the path by " +"adjusting\n" +"the message size, all tunnel messages are a fixed 1024 bytes in size. To" +" accommodate \n" +"larger I2NP messages as well as to support smaller ones more efficiently," +" the\n" +"gateway splits up the larger I2NP messages into fragments contained " +"within each\n" +"tunnel message. The endpoint will attempt to rebuild the I2NP message " +"from the\n" +"fragments for a short period of time, but will discard them as necessary." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:199 +#, python-format +msgid "" +"Details are in the\n" +"tunnel message specification." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:205 +msgid "Gateway Encryption" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:207 +msgid "" +"After the preprocessing of messages into a padded payload, the gateway " +"builds\n" +"a random 16 byte IV value, iteratively encrypting it and the tunnel " +"message as\n" +"necessary, and forwards the tuple {tunnelID, IV, encrypted tunnel " +"message} to the next hop." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:213 +msgid "" +"How encryption at the gateway is done depends on whether the tunnel is an" +"\n" +"inbound or an outbound tunnel. For inbound tunnels, they simply select a" +" random\n" +"IV, postprocessing and updating it to generate the IV for the gateway and" +" using \n" +"that IV along side their own layer key to encrypt the preprocessed data." +" For outbound \n" +"tunnels they must iteratively decrypt the (unencrypted) IV and " +"preprocessed \n" +"data with the IV and layer keys for all hops in the tunnel. The result " +"of the outbound\n" +"tunnel encryption is that when each peer encrypts it, the endpoint will " +"recover \n" +"the initial preprocessed data." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:225 +msgid "Participant Processing" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:227 +msgid "" +"When a peer receives a tunnel message, it checks that the message came " +"from\n" +"the same previous hop as before (initialized when the first message comes" +" through\n" +"the tunnel). If the previous peer is a different router, or if the " +"message has\n" +"already been seen, the message is dropped. The participant then encrypts" +" the \n" +"received IV with AES256/ECB using their IV key to determine the current " +"IV, uses \n" +"that IV with the participant's layer key to encrypt the data, encrypts " +"the \n" +"current IV with AES256/ECB using their IV key again, then forwards the " +"tuple \n" +"{nextTunnelId, nextIV, encryptedData} to the next hop. This double " +"encryption\n" +"of the IV (both before and after use) help address a certain class of\n" +"confirmation attacks." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:243 +msgid "" +"Duplicate message detection is handled by a decaying Bloom filter on " +"message\n" +"IVs. Each router maintains a single Bloom filter to contain the XOR of " +"the IV and\n" +"the first block of the message received for all of the tunnels it is " +"participating\n" +"in, modified to drop seen entries after 10-20 minutes (when the tunnels " +"will have\n" +"expired). The size of the bloom filter and the parameters used are " +"sufficient to\n" +"more than saturate the router's network connection with a negligible " +"chance of \n" +"false positive. The unique value fed into the Bloom filter is the XOR of" +" the IV \n" +"and the first block so as to prevent nonsequential colluding peers in the" +" tunnel \n" +"from tagging a message by resending it with the IV and first block " +"switched." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:256 +msgid "Endpoint Processing" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:258 +msgid "" +"After receiving and validating a tunnel message at the last hop in the " +"tunnel,\n" +"how the endpoint recovers the data encoded by the gateway depends upon " +"whether \n" +"the tunnel is an inbound or an outbound tunnel. For outbound tunnels, " +"the \n" +"endpoint encrypts the message with its layer key just like any other " +"participant, \n" +"exposing the preprocessed data. For inbound tunnels, the endpoint is " +"also the \n" +"tunnel creator so they can merely iteratively decrypt the IV and message," +" using the \n" +"layer and IV keys of each step in reverse order." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:268 +msgid "" +"At this point, the tunnel endpoint has the preprocessed data sent by the " +"gateway,\n" +"which it may then parse out into the included I2NP messages and forwards " +"them as\n" +"requested in their delivery instructions." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:275 +msgid "Tunnel Building" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:277 +msgid "" +"When building a tunnel, the creator must send a request with the " +"necessary\n" +"configuration data to each of the hops and wait for all of them to agree " +"before\n" +"enabling the tunnel. The requests are encrypted so that only the peers " +"who need\n" +"to know a piece of information (such as the tunnel layer or IV key) has " +"that\n" +"data. In addition, only the tunnel creator will have access to the " +"peer's\n" +"reply. There are three important dimensions to keep in mind when " +"producing\n" +"the tunnels: what peers are used (and where), how the requests are sent " +"(and \n" +"replies received), and how they are maintained." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:291 +msgid "" +"Beyond the two types of tunnels - inbound and outbound - there are two " +"styles\n" +"of peer selection used for different tunnels - exploratory and client.\n" +"Exploratory tunnels are used for both network database maintenance and " +"tunnel\n" +"maintenance, while client tunnels are used for end to end client messages." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:299 +msgid "Exploratory tunnel peer selection" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:301 +msgid "" +"Exploratory tunnels are built out of a random selection of peers from a " +"subset\n" +"of the network. The particular subset varies on the local router and on " +"what their\n" +"tunnel routing needs are. In general, the exploratory tunnels are built " +"out of\n" +"randomly selected peers who are in the peer's \"not failing but active\" " +"profile\n" +"category. The secondary purpose of the tunnels, beyond merely tunnel " +"routing,\n" +"is to find underutilized high capacity peers so that they can be promoted" +" for\n" +"use in client tunnels." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:311 +#, python-format +msgid "" +"Exploratory peer selection is discussed further on the\n" +"Peer Profiling and Selection page." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:317 +msgid "Client tunnel peer selection" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:319 +msgid "" +"Client tunnels are built with a more stringent set of requirements - the " +"local\n" +"router will select peers out of its \"fast and high capacity\" profile " +"category so\n" +"that performance and reliability will meet the needs of the client " +"application.\n" +"However, there are several important details beyond that basic selection " +"that \n" +"should be adhered to, depending upon the client's anonymity needs." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:327 +#, python-format +msgid "" +"Client peer selection is discussed further on the\n" +"Peer Profiling and Selection page." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:332 +msgid "Peer Ordering within Tunnels" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:334 +#, python-format +msgid "" +"Peers are ordered within tunnels to deal with the\n" +"predecessor attack\n" +"(2008 update)." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:341 +msgid "" +"To frustrate the predecessor \n" +"attack, the tunnel selection keeps the peers selected in a strict order -" +"\n" +"if A, B, and C are in a tunnel for a particular tunnel pool, the hop " +"after A is always B, and the hop after\n" +"B is always C." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:348 +msgid "" +"Ordering is implemented by generating a random 32-byte key for each\n" +"tunnel pool at startup.\n" +"Peers should not be able to guess the ordering, or an attacker could\n" +"craft two router hashes far apart to maximize the chance of being at both" +"\n" +"ends of a tunnel.\n" +"Peers are sorted by XOR distance of the\n" +"SHA256 Hash of (the peer's hash concatenated with the random key) from " +"the random key" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:363 +msgid "" +"Because each tunnel pool uses a different random key, ordering is " +"consistent\n" +"within a single pool but not between different pools.\n" +"New keys are generated at each router restart." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:370 +msgid "Request delivery" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:372 +#, python-format +msgid "" +"A multi-hop tunnel is built using a single build message which is " +"repeatedly\n" +"decrypted and forwarded. In the terminology of\n" +"Hashing it out in Public,\n" +"this is \"non-interactive\" telescopic tunnel building." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:379 +#, python-format +msgid "" +"This tunnel request preparation, delivery, and response method is\n" +"designed to reduce the number of\n" +"predecessors exposed, cuts the number of messages transmitted, verifies " +"proper\n" +"connectivity, and avoids the message counting attack of traditional " +"telescopic\n" +"tunnel creation.\n" +"(This method, which sends messages to extend a tunnel through the " +"already-established\n" +"part of the tunnel, is termed \"interactive\" telescopic tunnel building " +"in\n" +"the \"Hashing it out\" paper.)" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:390 +#, python-format +msgid "" +"The details of tunnel request and response messages, and their " +"encryption,\n" +"are specified here." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:395 +msgid "" +"Peers may reject tunnel creation requests for a variety of reasons, " +"though\n" +"a series of four increasingly severe rejections are known: probabilistic " +"rejection\n" +"(due to approaching the router's capacity, or in response to a flood of " +"requests), \n" +"transient overload, bandwidth overload, and critical failure. When " +"received, \n" +"those four are interpreted by the tunnel creator to help adjust their " +"profile of\n" +"the router in question." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:404 +#, python-format +msgid "" +"For more information on peer profiling, see the\n" +"Peer Profiling and Selection page." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:410 +msgid "Tunnel Pools" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:412 +#, python-format +msgid "" +"To allow efficient operation, the router maintains a series of tunnel " +"pools,\n" +"each managing a group of tunnels used for a specific purpose with their " +"own\n" +"configuration. When a tunnel is needed for that purpose, the router " +"selects one\n" +"out of the appropriate pool at random. Overall, there are two " +"exploratory tunnel\n" +"pools - one inbound and one outbound - each using the router's default " +"configuration.\n" +"In addition, there is a pair of pools for each local destination -\n" +"one inbound and one outbound tunnel pool. Those pools use the " +"configuration specified\n" +"when the local destination connects to the router via I2CP, or the router's defaults if\n" +"not specified." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:424 +#, python-format +msgid "" +"Each pool has within its configuration a few key settings, defining how " +"many\n" +"tunnels to keep active, how many backup tunnels to maintain in case of " +"failure,\n" +"how long the tunnels should be, whether those\n" +"lengths should be randomized, as \n" +"well as any of the other settings allowed when configuring individual " +"tunnels.\n" +"Configuration options are specified on the I2CP " +"page." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:434 +msgid "Tunnel Lengths and Defaults" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:436 +msgid "On the tunnel overview page" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:438 +msgid "Anticipatory Build Strategy and Priority" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:440 +msgid "" +"Tunnel building is expensive, and tunnels expire a fixed time after they " +"are built.\n" +"However, when a pool that runs out of tunnels, the Destination is " +"essentially dead.\n" +"In addition, tunnel build success rate may vary greatly with both local " +"and global\n" +"network conditions.\n" +"Therefore, it is important to maintain an anticipatory, adaptive build " +"strategy\n" +"to ensure that new tunnels are successfully built before they are needed," +"\n" +"without building an excess of tunnels, building them too soon,\n" +"or consuming too much CPU or bandwidth creating and sending the encrypted" +" build messages." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:451 +msgid "" +"For each tuple {exploratory/client, in/out, length, length variance}\n" +"the router maintains statistics on the time required for a successful\n" +"tunnel build.\n" +"Using these statistics, it calculates how long before a tunnel's " +"expiration\n" +"it should start attempting to build a replacement.\n" +"As the expiration time approaches without a successful replacement,\n" +"it starts multiple build attempts in parallel, and then\n" +"will increase the number of parallel attempts if necessary." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:462 +msgid "" +"To cap bandwidth and CPU usage,\n" +"the router also limits the maximum number of build attempts outstanding\n" +"across all pools.\n" +"Critical builds (those for exploratory tunnels, and for pools that have\n" +"run out of tunnels) are prioritized." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:471 +msgid "Tunnel Message Throttling" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:473 +msgid "" +"Even though the tunnels within I2P bear a resemblance to a circuit " +"switched\n" +"network, everything within I2P is strictly message based - tunnels are " +"merely\n" +"accounting tricks to help organize the delivery of messages. No " +"assumptions are\n" +"made regarding reliability or ordering of messages, and retransmissions " +"are left\n" +"to higher levels (e.g. I2P's client layer streaming library). This " +"allows I2P\n" +"to take advantage of throttling techniques available to both packet " +"switched and\n" +"circuit switched networks. For instance, each router may keep track of " +"the \n" +"moving average of how much data each tunnel is using, combine that with " +"all of \n" +"the averages used by other tunnels the router is participating in, and be" +" able\n" +"to accept or reject additional tunnel participation requests based on its" +" \n" +"capacity and utilization. On the other hand, each router can simply drop" +" \n" +"messages that are beyond its capacity, exploiting the research used on " +"the \n" +"normal Internet." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:489 +msgid "" +"In the current implementation, routers implement a\n" +"weighted random early discard (WRED) strategy.\n" +"For all participating routers (internal participant, inbound gateway, and" +" outbound endpoint),\n" +"the router will start randomly dropping a portion of messages as the\n" +"bandwidth limits are approached.\n" +"As traffic gets closer to, or exceeds, the limits, more messages are " +"dropped.\n" +"For an internal participant, all messages are fragmented and padded and " +"therefore are the same size.\n" +"At the inbound gateway and outbound endpoint, however, the dropping " +"decision is made\n" +"on the full (coalesced) message, and the message size is taken into " +"account.\n" +"Larger messages are more likely to be dropped.\n" +"Also, messages are more likely to be dropped at the outbound endpoint " +"than the inbound gateway,\n" +"as those messages are not as \"far along\" in their journey and thus the " +"network cost of\n" +"dropping those messages is lower." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:507 +msgid "Mixing/batching" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:509 +msgid "" +"What strategies could be used at the gateway and at each hop for " +"delaying,\n" +"reordering, rerouting, or padding messages? To what extent should this " +"be done\n" +"automatically, how much should be configured as a per tunnel or per hop " +"setting,\n" +"and how should the tunnel's creator (and in turn, user) control this " +"operation?\n" +"All of this is left as unknown, to be worked out for a distant future " +"release." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:518 +msgid "Padding" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:519 +msgid "" +"The padding strategies can be used on a variety of levels, addressing the" +"\n" +"exposure of message size information to different adversaries.\n" +"The current fixed tunnel message size is 1024 bytes. Within this " +"however, the fragmented\n" +"messages themselves are not padded by the tunnel at all, though for end " +"to end \n" +"messages, they may be padded as part of the garlic wrapping." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:529 +msgid "" +"WRED strategies have a significant impact on end-to-end performance,\n" +"and prevention of network congestion collapse.\n" +"The current WRED strategy should be carefully evaluated and improved." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/old-implementation.html:2 +msgid "Old Tunnel Implementation" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/old-implementation.html:5 +#, python-format +msgid "" +"Note: Obsolete - NOT used! Replaced in 0.6.1.10 - see here for the current implementation" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/unidirectional.html:3 +msgid "November 2016" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/unidirectional.html:7 +msgid "" +"This page describes the origins and design of I2P's unidirectional " +"tunnels.\n" +"For further information see:" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/unidirectional.html:13 +msgid "Tunnel overview page" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/unidirectional.html:19 +msgid "Tunnel design discussion" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/unidirectional.html:21 +msgid "Peer selection" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/unidirectional.html:23 +msgid "Meeting 125 (~13:12-13:30)" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/unidirectional.html:28 +msgid "Review" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/unidirectional.html:30 +msgid "" +"While we aren't aware of any published research on the advantages of \n" +"unidirecdtional tunnels,\n" +"they appear to make it harder to detect a \n" +"request/response pattern, which is quite possible to detect over a \n" +"bidirectional tunnel.\n" +"Several apps and protocols, notably HTTP,\n" +"do transfer data in such manner. Having the traffic follow the same \n" +"route to its destination and back could make it easier for an \n" +"attacker who has only timing and traffic volume data to infer the path a" +" \n" +"tunnel is taking.\n" +"Having the response come back along a different path arguably \n" +"makes it harder." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/unidirectional.html:45 +msgid "" +"When dealing with \n" +"an internal adversary or most external adversaries, I2P's undirectional " +"tunnels\n" +"expose half as much traffic data than would be exposed with bidirectional" +" circuits\n" +"by simply looking at the flows themselves - an HTTP request and response " +"would \n" +"follow the same path in Tor, while in I2P the packets making up the " +"request \n" +"would go out through one or more outbound tunnels and the packets making " +"up \n" +"the response would come back through one or more different inbound " +"tunnels." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/unidirectional.html:55 +msgid "" +"The strategy of using two separate tunnels for inbound and outbound\n" +"communication is not the only technique available, and it does have " +"anonymity\n" +"implications. On the positive side, by using separate tunnels it lessens" +" the\n" +"traffic data exposed for analysis to participants in a tunnel - for " +"instance,\n" +"peers in an outbound tunnel from a web browser would only see the traffic" +" of\n" +"an HTTP GET, while the peers in an inbound tunnel would see the payload \n" +"delivered along the tunnel. With bidirectional tunnels, all participants" +" would\n" +"have access to the fact that e.g. 1KB was sent in one direction, then " +"100KB\n" +"in the other. On the negative side, using unidirectional tunnels means " +"that\n" +"there are two sets of peers which need to be profiled and accounted for, " +"and\n" +"additional care must be taken to address the increased speed of " +"predecessor\n" +"attacks. The tunnel pooling and building process\n" +"(peer selection and ordering strategies)\n" +"should minimize the worries of the predecessor attack." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/unidirectional.html:73 +msgid "Anonymity" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/unidirectional.html:75 +#, python-format +msgid "" +"A recent paper by Hermann and Grothoff\n" +"declared that I2P's unidirectional tunnels \"seems to be a bad design " +"decision\"." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/unidirectional.html:80 +msgid "" +"The paper's main point is that\n" +"deanonymizations on unidirectional tunnels take a longer time, which is " +"an \n" +"advantage, but that an attacker can be more certain in the unidirectional" +" case. \n" +"Therefore, the paper claims it isn't an advantage at all, but a " +"disadvantage, at least\n" +"with long-living eepsites." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/unidirectional.html:88 +msgid "" +"This conclusion is not fully supported by the paper. Unidirectional " +"tunnels clearly \n" +"mitigate other attacks and it's not clear how to trade off the risk of " +"the \n" +"attack in the paper\n" +"with attacks on a bidirectional tunnel architecture." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/unidirectional.html:95 +msgid "" +"This conclusion is based on an arbitrary certainty vs. time weighting \n" +"(tradeoff) that may not be applicable in all cases. For \n" +"example, somebody could make a list of possible IPs then issue subpoenas " +"to \n" +"each. Or the attacker could DDoS each in turn and via a simple \n" +"intersection attack see if the eepsite goes down or is slowed down. So " +"close \n" +"may be good enough, or time may be more important." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/unidirectional.html:104 +msgid "" +"The conclusion is based on a specific weighting of the importance of " +"certainty \n" +"vs. time, and that weighting may be wrong, and it's definitely debatable," +" \n" +"especially in a real world with subpoenas, search warrants, and other " +"methods \n" +"available for final confirmation." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/unidirectional.html:111 +msgid "" +"A full analysis of the tradeoffs of unidirectional vs. bidirectional \n" +"tunnels is clearly outside the scope of the paper, and has not been done" +" \n" +"elsewhere. For example, how does this attack compare to the numerous " +"possible \n" +"timing attacks published about onion-routed networks? Clearly the authors" +" have not\n" +"done that analysis, if it's even possible to do it\n" +"effectively." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/unidirectional.html:120 +msgid "" +"Tor uses bidirectional tunnels and has had a lot of academic review. I2P" +" \n" +"uses unidirectional tunnels and has had very little review. Does the lack" +" of a \n" +"research paper defending unidirectional tunnels mean that it is a poor " +"design \n" +"choice, or just that it needs more study? Timing attacks and \n" +"distributed attacks are difficult to defend against in both I2P and Tor. " +"The \n" +"design intent (see references above) was that unidirectional tunnels are " +"more \n" +"resistant to timing attacks. However, the paper presents a somewhat " +"different type of timing \n" +"attack. Is this attack, innovative as it is, sufficient to label I2P's \n" +"tunnel architecture (and thus I2P as a whole) a \"bad design\", and by \n" +"implication clearly inferior to Tor, or is it just a design alternative " +"that \n" +"clearly needs further investigation and analysis? There are several other" +" reasons \n" +"to consider I2P currently inferior to Tor and other projects (small " +"network \n" +"size, lack of funding, lack of review) but is unidirectional tunnels " +"really a \n" +"reason?" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/unidirectional.html:137 +msgid "" +"In summary, \"bad design decision\" is apparently (since the paper does\n" +"not label bidirectional tunnels \"bad\") shorthand for \"unidirectional \n" +"tunnels are unequivocally inferior to bidirectional tunnels\", yet this \n" +"conclusion is not supported by the paper." +msgstr "" + diff --git a/i2p2www/translations/cs/LC_MESSAGES/get-involved.po b/i2p2www/translations/cs/LC_MESSAGES/get-involved.po new file mode 100644 index 00000000..e5b30336 --- /dev/null +++ b/i2p2www/translations/cs/LC_MESSAGES/get-involved.po @@ -0,0 +1,4101 @@ +# Czech translations for I2P. +# Copyright (C) 2017 ORGANIZATION +# This file is distributed under the same license as the I2P project. +# +# Translators: +# A5h8d0wf0x , 2014 +msgid "" +msgstr "" +"Project-Id-Version: I2P\n" +"Report-Msgid-Bugs-To: http://trac.i2p2.de\n" +"POT-Creation-Date: 2017-07-26 20:35+0000\n" +"PO-Revision-Date: 2017-12-07 17:33+0000\n" +"Last-Translator: str4d \n" +"Language-Team: Czech (http://www.transifex.com/otf/I2P/language/cs/)\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 1.3\n" + +#: i2p2www/pages/site/get-involved/donate.html:2 +#: i2p2www/pages/site/get-involved/index.html:82 +msgid "Donate" +msgstr "Darujte" + +#: i2p2www/pages/site/get-involved/donate.html:4 +msgid "" +"Thank you for your interest in contributing to I2P!\n" +"The details of how you\n" +"can make your contribution are provided below." +msgstr "" +"Děkujeme za váš zájem v přispívání do I2P!\n" +"Detaily jak můžete\n" +"přispět naleznete níže." + +#: i2p2www/pages/site/get-involved/donate.html:10 +msgid "Tax Status" +msgstr "Daňový Status" + +#: i2p2www/pages/site/get-involved/donate.html:11 +msgid "" +"I2P is not incorporated.\n" +"Your contributions are probably not tax-deductible.\n" +"If you would like to discuss a large contribution, please contact eche|on." +msgstr "" + +#: i2p2www/pages/site/get-involved/donate.html:17 +msgid "Stickers" +msgstr "Samolepky" + +#: i2p2www/pages/site/get-involved/donate.html:18 +msgid "" +"While supplies last, we offer I2P stickers to those who donate enough\n" +"to cover PayPal fees and postage from the U.S.\n" +"You must include \"stickers please\" and your address in the Paypal " +"comments.\n" +"For other payment methods, follow up with an email to eche|on\n" +"with the subject \"stickers please\", your payment information, and your " +"address." +msgstr "" + +#: i2p2www/pages/site/get-involved/donate.html:25 +msgid "Please allow 30-60 days for delivery." +msgstr "" + +#: i2p2www/pages/site/get-involved/donate.html:30 +#, python-format +msgid "" +"As of %(date)s, eche|on has been running a\n" +"%(cointype)s account for the I2P project.\n" +"ATTENTION! The address changed on 02-20-2014. ATTENTION!\n" +"If you'd like to donate using %(cointype)s, just transfer your\n" +"desired amount of coins to the account %(account)s\n" +"and leave eche|on a note if you'd like your donation to be\n" +"mentioned on the I2P webpage." +msgstr "" + +#: i2p2www/pages/site/get-involved/donate.html:42 +#: i2p2www/pages/site/get-involved/donate.html:59 +#: i2p2www/pages/site/get-involved/donate.html:75 +#: i2p2www/pages/site/get-involved/donate.html:91 +msgid "For easy usage, use the QR code below!" +msgstr "" + +#: i2p2www/pages/site/get-involved/donate.html:47 +#, python-format +msgid "" +"As of %(date)s, eche|on has been running a\n" +"%(cointype)s account for the I2P project.\n" +"ATTENTION! The address changed 02-20-2014. ATTENTION!\n" +"If you'd like to donate using %(cointype)s, just transfer your\n" +"desired amount of coins to the account %(account)s\n" +"and leave eche|on a note if you'd like your donation to be\n" +"mentioned on the I2P webpage." +msgstr "" + +#: i2p2www/pages/site/get-involved/donate.html:64 +#, python-format +msgid "" +"As of %(date)s, Meeh has been running a\n" +"%(cointype)s account for the I2P project.\n" +"If you'd like to donate using %(cointype)s, just transfer your\n" +"desired amount of coins to the account %(account)s\n" +"and leave Meeh a note if you'd like your donation to be\n" +"mentioned on the I2P webpage." +msgstr "" + +#: i2p2www/pages/site/get-involved/donate.html:80 +#, python-format +msgid "" +"As of %(date)s, echelon has been running a\n" +" %(cointype)s account for the I2P project.\n" +" If you'd like to donate using %(cointype)s, just transfer your\n" +" desired amount of coins to the account %(account)s\n" +" and leave echelon a note if you'd like your donation to be\n" +" mentioned on the I2P webpage." +msgstr "" + +#: i2p2www/pages/site/get-involved/donate.html:97 +#, python-format +msgid "" +"We accept most altcoins, just ask Meeh. Other altcoins can be converted " +"and exchanged for a crypto currency we currently support. Please send a " +"mail to \"%(account)s\" for a such donation." +msgstr "" + +#: i2p2www/pages/site/get-involved/donate.html:104 +#, python-format +msgid "You can donate direct via PayPal to the account \"%(account)s\"." +msgstr "" + +#: i2p2www/pages/site/get-involved/donate.html:110 +msgid "One time donation:" +msgstr "" + +#: i2p2www/pages/site/get-involved/donate.html:124 +msgid "Donate 10 €/month for 12 months:" +msgstr "" + +#: i2p2www/pages/site/get-involved/donate.html:132 +#: i2p2www/pages/site/get-involved/donate.html:144 +#: i2p2www/pages/site/get-involved/donate.html:156 +#: i2p2www/pages/site/get-involved/donate.html:168 +msgid "I2P donation " +msgstr "" + +#: i2p2www/pages/site/get-involved/donate.html:138 +msgid "Donate 20 €/month for 12 months:" +msgstr "" + +#: i2p2www/pages/site/get-involved/donate.html:150 +msgid "Donate 30 €/month for 12 months:" +msgstr "" + +#: i2p2www/pages/site/get-involved/donate.html:162 +msgid "Donate 50 €/month for 12 months:" +msgstr "" + +#: i2p2www/pages/site/get-involved/donate.html:177 +msgid "Flattr this" +msgstr "" + +#: i2p2www/pages/site/get-involved/donate.html:182 +msgid "" +"If you want to keep more or less anonymous, the option to send money via " +"mail is also available. But it is less secure\n" +"as the envelope can be lost on the way to us." +msgstr "" + +#: i2p2www/pages/site/get-involved/donate.html:186 +#, python-format +msgid "" +"If you'd like to donate via snail mail, send an email to %(email)s\n" +" and you'll receive an email with instructions detailing how to proceed." +msgstr "" + +#: i2p2www/pages/site/get-involved/donate.html:191 +#, python-format +msgid "" +"In the meantime, feel free to take a look at the generous donations that " +"have been\n" +"given in support of the I2P Project at the hall of fame." +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:2 +msgid "Get Involved!" +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:4 +msgid "We need your help!" +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:5 +msgid "" +"To get involved, please feel free to join us on the #i2p-dev IRC channel " +"(on\n" +"irc.freenode.net, irc.oftc.net, or within I2P on irc.echelon.i2p, " +"irc.dg.i2p or irc.postman.i2p)." +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:9 +#, python-format +msgid "" +"If you're interested in joining our team, please" +" get in\n" +"touch as we're always looking for eager contributors!" +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:13 +msgid "" +"We need help in many areas, and you don't need to know Java to " +"contribute!\n" +"Here's a list to help get you started!" +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:18 +msgid "Spread the Word!" +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:19 +msgid "" +"Tell people about I2P on forums, blogs, and comments to articles.\n" +"Fix up the Wikipedia article about I2P in your language.\n" +"Tell your friends." +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:24 +msgid "Testing" +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:25 +#, python-format +msgid "" +"Run the latest builds from monotone\n" +"and report results on #i2p or as bugs on Trac." +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:30 +msgid "Documentation" +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:31 +msgid "" +"Help fix the parts of the website that are outdated or incomplete.\n" +"Translate pages into other languages." +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:35 +msgid "Pictures" +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:36 +msgid "Make some more pictures, fix the old ones on the website" +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:39 +msgid "Content" +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:40 +msgid "Make an eepsite! Add some content! Contribute to the community!" +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:43 +msgid "Services" +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:44 +msgid "" +"Run a service on an eepsite. It could be a proxy, a forum, a tracker,\n" +"a naming service, a search engine, an eepsite monitor... many of these\n" +"aren't that hard." +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:49 +msgid "Applications" +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:50 +#, python-format +msgid "" +"Write or port applications for I2P! There's some guidelines and\n" +"a list of ideas on the applications page." +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:54 +msgid "Coding" +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:55 +#, python-format +msgid "" +"There's plenty to do if you know Java or are ready to learn.\n" +"Check for open tickets on Trac\n" +"or the TODO list on %(zzz)s for\n" +"some ideas on where to start.\n" +"See the new developer's guide for details." +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:64 +msgid "Translation" +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:65 +#, python-format +msgid "" +"Help translate the website and the software into your language.\n" +"See the new translator's guide for details." +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:69 +msgid "Analysis" +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:70 +#, python-format +msgid "" +"Study or test the code to look for vulnerabilities.\n" +"Both anonymity vulnerabilities from the various\n" +"threat models,\n" +"and DOS and other weaknesses due to securities holes,\n" +"need researching." +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:77 +msgid "Reseeding" +msgstr "Opětovné sdílení (reseeding)" + +#: i2p2www/pages/site/get-involved/index.html:78 +#, python-format +msgid "" +"Set up a reseed server for new routers to bootstrap from.\n" +"Detailed instructions are on our reseed server " +"page." +msgstr "" + +#: i2p2www/pages/site/get-involved/roadmap.html:2 +msgid "Roadmap" +msgstr "" + +#: i2p2www/pages/site/get-involved/roadmap.html:3 +msgid "June 2017" +msgstr "" + +#: i2p2www/pages/site/get-involved/roadmap.html:304 +#, python-format +msgid "" +"Reachability Mapping / handle peers partially reachable / enhanced restricted routes" +msgstr "" + +#: i2p2www/pages/site/get-involved/roadmap.html:307 +msgid "Full restricted routes" +msgstr "" + +#: i2p2www/pages/site/get-involved/roadmap.html:308 +msgid "Tunnel mixing and padding" +msgstr "" + +#: i2p2www/pages/site/get-involved/roadmap.html:309 +msgid "User defined message delays" +msgstr "" + +#: i2p2www/pages/site/get-involved/roadmap.html:317 +#, python-format +msgid "" +"Please see the TODO list for more detailed info " +"about some of these tasks." +msgstr "" + +#: i2p2www/pages/site/get-involved/todo.html:2 +msgid "I2P Project Targets" +msgstr "" + +#: i2p2www/pages/site/get-involved/todo.html:5 +#: i2p2www/pages/site/get-involved/todo.html:47 +msgid "Core functionality" +msgstr "" + +#: i2p2www/pages/site/get-involved/todo.html:7 +#: i2p2www/pages/site/get-involved/todo.html:50 +msgid "NetworkDB and profile tuning and ejection policy for large nets" +msgstr "" + +#: i2p2www/pages/site/get-involved/todo.html:11 +#: i2p2www/pages/site/get-involved/todo.html:74 +msgid "Security / anonymity" +msgstr "" + +#: i2p2www/pages/site/get-involved/todo.html:13 +#: i2p2www/pages/site/get-involved/todo.html:77 +msgid "Full blown n-hop restricted routes with optional trusted links" +msgstr "" + +#: i2p2www/pages/site/get-involved/todo.html:16 +#: i2p2www/pages/site/get-involved/todo.html:96 +msgid "Hashcash for routerIdentity, destination, and tunnel request" +msgstr "" + +#: i2p2www/pages/site/get-involved/todo.html:19 +#: i2p2www/pages/site/get-involved/todo.html:125 +msgid "Advanced tunnel operation (batching/mixing/throttling/padding)" +msgstr "" + +#: i2p2www/pages/site/get-involved/todo.html:22 +#: i2p2www/pages/site/get-involved/todo.html:162 +msgid "Stop & go mix w/ garlics & tunnels" +msgstr "" + +#: i2p2www/pages/site/get-involved/todo.html:26 +#: i2p2www/pages/site/get-involved/todo.html:176 +msgid "Performance" +msgstr "" + +#: i2p2www/pages/site/get-involved/todo.html:31 +#, python-format +msgid "" +"Note: This page is not up-to-date.\n" +"See the roadmap for current plans." +msgstr "" + +#: i2p2www/pages/site/get-involved/todo.html:36 +#, python-format +msgid "" +"Below is a more detailed (yet still incomplete) discussion of the major " +"areas\n" +"of future development on the core I2P network, spanning the plausibly " +"planned\n" +"releases. This does not include stego transports, porting to wireless " +"devices,\n" +"or tools to secure the local machine, nor does it include client " +"applications\n" +"that will be essential in I2P's success. There are probably other things " +"that\n" +"will come up, especially as I2P gets more peer review, but these are the " +"main\n" +"'big things'. See also the roadmap. Want to " +"help?\n" +"Get involved!" +msgstr "" + +#: i2p2www/pages/site/get-involved/todo.html:53 +msgid "" +"Within the current network database and profile management " +"implementation, \n" +"we have taken the liberty of some practical shortcuts. For instance, we \n" +"don't have the code to drop peer references from the K-buckets, as we \n" +"don't have enough peers to even plausibly fill any of them, so instead, \n" +"we just keep the peers in whatever bucket is appropriate. Another example" +" \n" +"deals with the peer profiles - the memory required to maintain each " +"peer's \n" +"profile is small enough that we can keep thousands of full blown profiles" +" \n" +"in memory without problems. While we have the capacity to use trimmed \n" +"down profiles (which we can maintain 100s of thousands in memory), we \n" +"don't have any code to deal with moving a profile from a \"minimal " +"profile\" \n" +"to a \"full profile\", a \"full profile\" to a \"minimal profile\", or to" +" simply \n" +"eject a profile altogether. It just wouldn't be practical to write that \n" +"code yet, since we aren't going to need it for a while." +msgstr "" + +#: i2p2www/pages/site/get-involved/todo.html:68 +msgid "" +"That said, as the network grows we are going to want to keep these " +"considerations \n" +"in mind. We will have some work to do, but we can put it off for later." +msgstr "" + +#: i2p2www/pages/site/get-involved/todo.html:80 +msgid "" +"The restricted route functionality described before was simply a " +"functional \n" +"issue - how to let peers who would not otherwise be able to communicate \n" +"do so. However, the concept of allowing restricted routes includes " +"additional \n" +"capabilities. For instance, if a router absolutely cannot risk " +"communicating \n" +"directly with any untrusted peers, they can set up trusted links through" +" \n" +"those peers, using them to both send and receive all of its messages. \n" +"Those hidden peers who want to be completely isolated would also refuse \n" +"to connect to peers who attempt to get them to (as demonstrated by the \n" +"garlic routing technique outlined before) - they can simply take the " +"garlic \n" +"clove that has a request for delivery to a particular peer and tunnel \n" +"route that message out one of the hidden peer's trusted links with " +"instructions \n" +"to forward it as requested." +msgstr "" + +#: i2p2www/pages/site/get-involved/todo.html:99 +#, python-format +msgid "" +"Within the network, we will want some way to deter people from consuming" +" \n" +"too many resources or from creating so many peers to mount a Sybil \n" +"attack. Traditional techniques such as having a peer see who is " +"requesting \n" +"a resource or running a peer aren't appropriate for use within I2P, as \n" +"doing so would compromise the anonymity of the system. Instead, we want \n" +"to make certain requests \"expensive\"." +msgstr "" + +#: i2p2www/pages/site/get-involved/todo.html:107 +msgid "" +"Hashcash is one technique that \n" +"we can use to anonymously increase the \"cost\" of doing certain " +"activities, \n" +"such as creating a new router identity (done only once on installation)," +" \n" +"creating a new destination (done only once when creating a service), or \n" +"requesting that a peer participate in a tunnel (done often, perhaps 2-300" +" \n" +"times per hour). We don't know the \"correct\" cost of each type of " +"certificate \n" +"yet, but with some research and experimentation, we could set a base " +"level \n" +"that is sufficiently expensive while not an excessive burden for people \n" +"with few resources." +msgstr "" + +#: i2p2www/pages/site/get-involved/todo.html:118 +msgid "" +"There are a few other algorithms that we can explore for making those \n" +"requests for resources \"nonfree\", and further research on that front is" +" \n" +"appropriate." +msgstr "" + +#: i2p2www/pages/site/get-involved/todo.html:128 +#, python-format +msgid "" +"To powerful passive external observers as well as large colluding " +"internal \n" +"observers, standard tunnel routing is vulnerable to traffic analysis " +"attacks \n" +"- simply watching the size and frequency of messages being passed between" +" \n" +"routers. To defend against these, we will want to essentially turn some \n" +"of the tunnels into its own mix cascade - delaying messages received at \n" +"the gateway and passing them in batches, reordering them as necessary, \n" +"and injecting dummy messages (indistinguishable from other \"real\" " +"tunnel \n" +"messages by peers in the path). There has been a significant amount of \n" +"research \n" +"on these algorithms that we can lean on prior to implementing the various" +" \n" +"tunnel mixing strategies." +msgstr "" + +#: i2p2www/pages/site/get-involved/todo.html:141 +msgid "" +"In addition to the anonymity aspects of more varied tunnel operation, \n" +"there is a functional dimension as well. Each peer only has a certain \n" +"amount of data they can route for the network, and to keep any particular" +" \n" +"tunnel from consuming an unreasonable portion of that bandwidth, they \n" +"will want to include some throttles on the tunnel. For instance, a tunnel" +" \n" +"may be configured to throttle itself after passing 600 messages (1 per \n" +"second), 2.4MB (4KBps), or exceeding some moving average (8KBps for the \n" +"last minute). Excess messages may be delayed or summarily dropped. With \n" +"this sort of throttling, peers can provide ATM-like QoS support for their" +" \n" +"tunnels, refusing to agree to allocate more bandwidth than the peer has \n" +"available." +msgstr "" + +#: i2p2www/pages/site/get-involved/todo.html:154 +msgid "" +"In addition, we may want to implement code to dynamically reroute tunnels" +" \n" +"to avoid failed peers or to inject additional hops into the path. This \n" +"can be done by garlic routing a message to any particular peer in a " +"tunnel \n" +"with instructions to redefine the next-hop in the tunnel." +msgstr "" + +#: i2p2www/pages/site/get-involved/todo.html:165 +msgid "" +"Beyond the per-tunnel batching and mixing strategy, there are further \n" +"capabilities for protecting against powerful attackers, such as allowing" +" \n" +"each step in a garlic routed path to define a delay or window in which \n" +"it should be forwarded on. This would enable protections against the long" +" \n" +"term intersection attack, as a peer could send a message that looks " +"perfectly \n" +"standard to most peers that pass it along, except at any peers where the" +" \n" +"clove exposed includes delay instructions." +msgstr "" + +#: i2p2www/pages/site/get-involved/todo.html:177 +#, python-format +msgid "" +"Performance related improvements are listed on the\n" +"Performance page." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/arabic-trans.html:2 +msgid "Bounty Arabic translation of webpage and router console" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/arabic-trans.html:3 +#: i2p2www/pages/site/get-involved/bounties/index.html:118 +msgid "Arabic translation" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/arabic-trans.html:6 +msgid "" +"To improve I2P usage and attract more people\n" +"into I2P echelon set out this bounty for translation\n" +"of the I2P web page and I2P router console into Arabic." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/arabic-trans.html:12 +#: i2p2www/pages/site/get-involved/bounties/russian-trans.html:12 +msgid "This bounty is set into 2 subparts:" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/arabic-trans.html:14 +#: i2p2www/pages/site/get-involved/bounties/russian-trans.html:14 +msgid "Part 1 is translation of the webpage." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/arabic-trans.html:17 +msgid "" +"For collecting the bounty of 20 BTC you need to translate the following " +"pages:" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/arabic-trans.html:25 +msgid "This job was done by hamada and the bounty of 20 BTC was paid to hamada." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/arabic-trans.html:27 +msgid "" +"Part 2 is the translation of the router console. The router console was\n" +"partly translated and the bounty of 80 BTC was paid to hamada." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/arabic-trans.html:34 +msgid "Judge is echelon." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/btc-client.html:2 +msgid "Bounty creating a I2P native Bitcoin client" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/btc-client.html:3 +msgid "BTC I2P native client" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/btc-client.html:6 +msgid "" +"For a future of I2P and attract more people\n" +"into I2P this bounty is to create a I2P native Bitcoin client. \n" +"It should integrate with other client via the I2P network and via " +"gateways to\n" +"the existant bitcoin network." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/btc-client.html:15 +msgid "" +"Judge is psychonaut who donated the first 30 € to this bounty.\n" +"Bounty was almost fullfilled with btci2p, only a small\n" +"part of creating a plugin is leftover. User giv has been paid for the " +"work." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/datastore.html:2 +msgid "Bounty datastorage" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/datastore.html:3 +msgid "datastore" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/datastore.html:6 +msgid "" +"To improve I2P's usage and to be independent of routers \n" +"online status we want a datastorage as a extension to I2P.\n" +"Like in Freenet the datastorage should be distributed and every\n" +"participating node should be able to configure his options.\n" +"The files should be saved in chunks and at least 2-3 times to\n" +"obtain redundancy. Usage of storage space should be auto balanced.\n" +"As it is a extra application, it should work flawless within I2P and\n" +"cooperate nice with the I2P router. Maybe a integration within the\n" +"webpage/router could be done." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/datastore.html:17 +msgid "" +"This bounty cooperates with the 2 other bounties \"frost for I2P\" and \n" +"\"eepsites in datastorage\"." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/datastore.html:21 +msgid "" +"The frost for I2P datastorage bounty is paid for a frost like program \n" +"with which files/messages are stored into database and got from database." +"\n" +"It needs to work with a GUI." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/datastore.html:26 +msgid "" +"The eepsite served out of I2P datastorage extends a I2P router to send\n" +"out eepsites out of the I2P datastorage. All files for eepsites need to " +"be\n" +"saved inside of datastorage and are taken from it.\n" +"Extension:\n" +"For better integration all datastorage participants could serve that " +"eepsite." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/datastore.html:36 +msgid "" +"For bounties to be declared done and paid, we need the program AND the " +"source.\n" +"Source and code need to be licensed under a free license (free to change " +"and \n" +"free to distribute)." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/deb-pack.html:2 +msgid "Bounty I2P package in Debian and Ubuntu mirrors" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/deb-pack.html:3 +msgid "I2P Ubuntu/Debian package" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/deb-pack.html:6 +msgid "" +"For the future of I2P and in order to attract more people\n" +"to I2P, this bounty was set for including an I2P package into the Ubuntu " +"and Debian \n" +"archive mirrors.\n" +"To claim this bounty, the I2P router package needs to be available from\n" +"Ubuntu and Debian archive mirrors and Debian bug \n" +"448638 \n" +"needs to be closed successfully." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/i2phex.html:2 +msgid "Bounty I2PHex code implementation" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/i2phex.html:3 +msgid "i2phex code implementation" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/i2phex.html:6 +msgid "" +"To improve I2P usage and attract more people\n" +"into I2PHex P2P ArneBab setout the bounty for implementing actual\n" +"Phex code onto I2PHex." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:2 +msgid "Bounties for I2P" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:5 +msgid "" +"While we always gratefully accept any contributions of code, \n" +"documentation, and the like, there are other ways to help I2P move \n" +"forward. As with any open source project, our goals would be achieved " +"more \n" +"rapidly if we were able to support all of our contributors to work on \n" +"I2P full time. However, as with any open source project, that's not a \n" +"possibility. Instead, we are making use of a bounty system, whereby \n" +"anyone can get support for working on something that people want \n" +"implemented, and people who want to contribute to I2P can be assured that" +" \n" +"their support goes to what they care about." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:17 +msgid "" +"We are also keeping open the ability for people who want to support I2P \n" +"but don't have strong feelings about the bounties available. Those " +"people\n" +"can simply put their trust in the I2P team to do what we feel is best by\n" +"donating to a catch-all general fund that will be used as deemed \n" +"necessary - allocated to various bounties, covering incidentals (hosting," +" \n" +"etc), and the like." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:26 +msgid "Current bounties" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:29 +#: i2p2www/pages/site/get-involved/bounties/index.html:84 +#: i2p2www/pages/site/get-involved/bounties/index.html:104 +msgid "Name" +msgstr "Jméno" + +#: i2p2www/pages/site/get-involved/bounties/index.html:29 +#: i2p2www/pages/site/get-involved/bounties/index.html:84 +#: i2p2www/pages/site/get-involved/bounties/index.html:104 +msgid "Status" +msgstr "Status" + +#: i2p2www/pages/site/get-involved/bounties/index.html:29 +#: i2p2www/pages/site/get-involved/bounties/index.html:84 +msgid "Judge" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:29 +#: i2p2www/pages/site/get-involved/bounties/index.html:84 +msgid "Dev" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:29 +#: i2p2www/pages/site/get-involved/bounties/index.html:84 +msgid "Bounty" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:31 +msgid "Frost for I2P datastorage" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:32 +#: i2p2www/pages/site/get-involved/bounties/index.html:39 +#: i2p2www/pages/site/get-involved/bounties/index.html:46 +#: i2p2www/pages/site/get-involved/bounties/index.html:53 +#: i2p2www/pages/site/get-involved/bounties/index.html:74 +#: i2p2www/pages/site/get-involved/bounties/index.html:94 +msgid "Proposal in development" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:34 +#: i2p2www/pages/site/get-involved/bounties/index.html:41 +#: i2p2www/pages/site/get-involved/bounties/index.html:48 +#: i2p2www/pages/site/get-involved/bounties/index.html:55 +#: i2p2www/pages/site/get-involved/bounties/index.html:76 +#: i2p2www/pages/site/get-involved/bounties/index.html:89 +msgid "vacant" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:38 +msgid "Eepsites served out of I2P datastorage" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:45 +msgid "Backporting Phex code onto I2PHex" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:52 +msgid "I2P package in Debian and Ubuntu mirrors" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:59 +msgid "Bitcoin client for I2P" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:60 +msgid "Done, phase of verification" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:66 +msgid "Unit tests and Multi-router Simulation" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:67 +msgid "Partly done, partly in work, partly still open" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:81 +msgid "Hold bounties, set on hold due to jrandom AWOL and missing funding" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:86 +msgid "Bundling bounties" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:87 +msgid "Proposed" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:101 +msgid "Claimed bounties" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:104 +msgid "Dev team" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:106 +msgid "Make I2P IPv6 native" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:113 +msgid "Setting up a SILC server" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:123 +msgid "Datastore over I2P" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:128 +#: i2p2www/pages/site/get-involved/bounties/russian-trans.html:3 +msgid "Russian translation" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:133 +msgid "Swarming file transfer" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:138 +msgid "Streaming library window size" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:143 +msgid "IRC connect time monitor" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:148 +msgid "Unit tests (part 1)" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:160 +msgid "" +"Dev lists anyone who may already be working on the bounty - collaboration" +" is\n" +"preferred, so if you're interested in working on it, please contact one " +"of the\n" +"people listed!" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/ipv6.html:2 +msgid "Bounty I2P IPv6 native" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/ipv6.html:3 +msgid "native IPv6 I2P" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/ipv6.html:6 +msgid "" +"For a future of I2P and attract more people\n" +"into I2P I withdrawal the vuze bounty and offer a IPv6 bounty.\n" +"To claim this bounty, the I2P router needs to run full on native\n" +"IPv6 connections like it does on IPv4." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/ipv6.html:23 +#: i2p2www/pages/site/get-involved/bounties/vuze-plugin.html:20 +msgid "" +"For bounties to be declared done and paid, we need the plugin AND the " +"source.\n" +"Source and code need to be licensed under a free license (free to change " +"and \n" +"free to distribute)." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/netdb.html:2 +msgid "NetDB Backend" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/netdb.html:3 +msgid "netDB backend" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/netdb.html:7 +msgid "" +"The current NetDB implementation (namely the FloodFill system)\n" +"needs to be extended with another backend to improve reliability,\n" +"reduce attack surface and solve the scalability issue for the \n" +"coming years." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/netdb.html:14 +msgid "" +"A solution likely based on a DHT will be investigated and \n" +"finally implemented." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/russian-trans.html:2 +msgid "Bounty russian translation of webpage and router console" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/russian-trans.html:6 +msgid "" +"To improve I2P usage and attract more people\n" +"into I2P a anonymous donator set out the bounty for translation\n" +"of the I2P web page and I2P router console into russian language." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/russian-trans.html:17 +msgid "" +"For collecting the bounty of $115 USD you need to translate the following" +" pages:" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/russian-trans.html:30 +msgid "" +"Part 2 is the translation of the router console. The whole router console" +" needs\n" +"to be translated to collect the bounty of $115 USD." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/russian-trans.html:37 +msgid "Judge is the russian donor." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/silc.html:2 +msgid "Bounty migrate I2P IRC to SILC" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/silc.html:3 +msgid "I2P silc server" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/silc.html:7 +msgid "" +"For a future of I2P and attract more people\n" +"into I2P this bounty is to setup and host a I2P SILC server. \n" +"This will allow people to send files over their messaging servers and " +"have intrinsic security built into the protocol." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/silc.html:12 +msgid "" +"A silc server needs to be set up and run for at least 3 month time to get" +" payed. \n" +"A second server should be set up, too." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/silc.html:16 +msgid "" +"Bounty was withdrawn and money donated to returningnovice and general " +"fund." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/silc.html:22 +msgid "Judge is An Anonymous Secret Society, society@mail.i2p." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/syndie-2012.html:2 +#: i2p2www/pages/site/get-involved/bounties/syndie-2012.html:3 +msgid "Syndie development" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/syndie-2012.html:7 +msgid "" +"Beside of I2P we want to encourage users\n" +"to care more about anonymity and security. As I2P is a low \n" +"latency network with its natural limits, the software SYNDIE\n" +"can overcome some of these limits and provide better anonymity\n" +"for people who really need it." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/syndie-2012.html:14 +msgid "" +"For our bad sake the syndie project was out of development for \n" +"quite a long time yet (5 years) and has been updated just with\n" +"small fixes to keep it running. To get a fresh and new built \n" +"with needed bugfixes we set out this bounty. Also syndie needs\n" +"some enhancements and a better GUI for users to work with it.\n" +"Current bounty sum is 3 Bitcoin." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/syndie-2012.html:23 +msgid "" +"The latest Syndie coding rally did improve the situation of the\n" +"Syndie package dramatically. A new Syndie package with bugfixes\n" +"was created and made available on different webpages.\n" +"As a result of this work, the bounty sum was reduced and\n" +"the withdrawn money moved to the IPv6 bounty." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:2 +msgid "Bounty unittests" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:3 +msgid "unit test" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:7 +msgid "" +"To improve I2P's maintainability, we want to have a solid set of\n" +"automated unit tests for the critical code. While we do have some\n" +"unit tests at the moment, they are ad-hoc and partly unfinished. \n" +"This bounty is for someone to check the existing tests and move over\n" +"old ones to jUnit, automate their execution, extend them to provide \n" +"better code coverage, and publish the report online. Its a massive \n" +"effort, but can be broken down into phases, listed below (phase 2 \n" +"must occur first, but further phases may happen in any order).\n" +"As this needs some reading of code, it is the best start point for\n" +"new devs to get a good overview of I2P code and coding. A good job\n" +"for college students, interns or anyone who is just interested." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:20 +msgid "" +"Take care! Jobs and bounties shuffled a bit!\n" +"Phase 6,7 and 8 are still open!" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:26 +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:40 +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:55 +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:66 +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:77 +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:88 +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:101 +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:112 +#, python-format +msgid "Phase %(phase)s:" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:27 +msgid "CI jenkins and IRC bot" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:28 +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:42 +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:57 +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:68 +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:79 +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:90 +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:103 +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:114 +#, python-format +msgid "Bounty: %(euro)s €" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:29 +msgid "server runs and this section is blocked" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:31 +msgid "" +"To collect this bounty, a continuous integration server (Jenkins,\n" +"old name was Hudson) must be set up and a connected IRC bot needs \n" +"to set up in the channel #i2p-dev on IRC2p network to print out\n" +"results of build tests.
\n" +"The server needs to be run long term." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:41 +msgid "Check existing SDK tests" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:43 +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:69 +msgid "paid to str4d" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:45 +#, python-format +msgid "" +"To collect this bounty, the existing SDK tests must be checked \n" +"and made to work again. The need to be integrated into the ant \n" +"build scripts (\"ant test\"), and tied in with a code coverage tool (e.g." +" \n" +"Clover). The ant script\n" +"must be capable of generating test status results as a web page, \n" +"which will be published online." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:56 +msgid "SDK test coverage" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:58 +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:80 +msgid "paid to unittests dev team" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:60 +msgid "" +"To collect this bounty, the automated unit tests of the SDK \n" +"(i2p/core/java/src) must work again." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:67 +msgid "Router test migration" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:71 +msgid "" +"As with phase 2, the existing unit tests for the router must be\n" +"moved over to the automated system." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:78 +msgid "Router test coverage" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:82 +msgid "" +"To collect this bounty, the automated unit tests of the router \n" +"(i2p/router/java/src) must work again." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:89 +msgid "Streaming lib tests" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:94 +msgid "" +"To collect this bounty, a new set of unit tests must meet a \n" +"measured code coverage of 90% of the streaming lib \n" +"(i2p/apps/ministreaming/ and i2p/apps/streaming/)." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:102 +msgid "Unit tests coverage" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:106 +msgid "" +"To collect this bounty, all above unit tests must meet the 100%\n" +"coverage marker (except for log statements)." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:113 +msgid "MultiRouter simulation" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:115 +msgid "will be split in more sub-tasks" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:117 +msgid "" +"To collect this bounty, the existing in-memory multi-router\n" +"simulation must be checked, made work again and extend to simulate\n" +"lots of routers in memory on a single machine. This bounty will\n" +"be split in more fine grained subworks." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:126 +msgid "" +"Judge on all these works is the donor and donor decides if a phase is\n" +"called succesfull done and money can be paid." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/vuze-plugin.html:2 +msgid "Bounty I2P vuze plugin" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/vuze-plugin.html:3 +msgid "vuze plugin" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/vuze-plugin.html:6 +msgid "" +"To improve I2P usage and attract more people\n" +"into I2P torrent P2P I setout the bounty for a working I2P vuze\n" +"plugin.\n" +"The plugin needs to be official and submitted to vuze for publication\n" +"on their webpage/repository for plugins.\n" +"It should be easy to install and configured, work smooth and flawless.\n" +"Configuration should be friendly to starters and made easy to be " +"anonymous.\n" +"It should work with *.b32.i2p destinations as with signed (516++ bits) \n" +"destinations." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:2 +msgid "Application Development" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:3 +msgid "May 2013" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:7 +#: i2p2www/pages/site/get-involved/develop/applications.html:15 +msgid "Why write I2P-specific code?" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:8 +#: i2p2www/pages/site/get-involved/develop/applications.html:101 +msgid "Important concepts" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:9 +#: i2p2www/pages/site/get-involved/develop/applications.html:189 +msgid "Development options" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:10 +#: i2p2www/pages/site/get-involved/develop/applications.html:302 +msgid "Start developing - a simple guide" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:17 +#, python-format +msgid "" +"There are multiple ways to use applications in I2P.\n" +"Using I2PTunnel,\n" +"you can use regular applications without needing to program explicit I2P " +"support.\n" +"This is very effective for client-server scenario's,\n" +"where you need to connect to a single website.\n" +"You can simply create a tunnel using I2PTunnel to connect to that " +"website, as shown in Figure 1." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:25 +msgid "" +"If your application is distributed, it will require connections to a " +"large amount of peers.\n" +"Using I2PTunnel, you will need to create a new tunnel for each peer you " +"want to contact,\n" +"as shown in Figure 2.\n" +"This process can of course be automated, but running a lot of I2PTunnel " +"instances creates a large amount of overhead.\n" +"In addition, with many protocols you will need to force everyone to \n" +"use the same set of ports for all peers - e.g. if you want to reliably " +"run DCC \n" +"chat, everyone needs to agree that port 10001 is Alice, port 10002 is " +"Bob, port \n" +"10003 is Charlie, and so on, since the protocol includes TCP/IP specific " +"information\n" +"(host and port)." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:36 +msgid "" +"General network applications often send a lot of additional data that " +"could be used to identify users.\n" +"Hostnames, port numbers, time zones, character sets, etc. are often sent " +"without informing the user.\n" +"As such, designing the network protocol specifically with anonymity in " +"mind\n" +"can avoid compromising user identities." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:42 +msgid "" +"There are also efficiency considerations to review when determining how " +"to \n" +"interact on top of I2P. The streaming library and things built on top of" +" it\n" +"operate with handshakes similar to TCP, while the core I2P protocols " +"(I2NP and I2CP)\n" +"are strictly message based (like UDP or in some instances raw IP). The " +"important\n" +"distinction is that with I2P, communication is operating over a long fat " +"network - \n" +"each end to end message will have nontrivial latencies, but may contain " +"payloads \n" +"of up to several KB. An application that needs a simple request and " +"response can get rid\n" +"of any state and drop the latency incurred by the startup and teardown " +"handshakes\n" +"by using (best effort) datagrams without having to worry about MTU " +"detection or \n" +"fragmentation of messages." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:56 +#: i2p2www/pages/site/get-involved/develop/applications.html:58 +msgid "" +"Creating a server-client connection using I2PTunnel only requires " +"creating a single tunnel." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:58 +msgid "Figure 1:" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:63 +#: i2p2www/pages/site/get-involved/develop/applications.html:65 +msgid "" +"Setting up connections for a peer-to-peer applications requires a very " +"large amount of tunnels." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:65 +msgid "Figure 2:" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:69 +msgid "In summary, a number of reasons to write I2P-specific code:" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:73 +msgid "" +"Creating a large amount of I2PTunnel instances consumes a non-trivial " +"amount of resources,\n" +"which is problematic for distributed applications (a new tunnel is " +"required for each peer)." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:77 +msgid "" +"General network protocols often send a lot of additional data that can be" +" used to identify users.\n" +"Programming specifically for I2P allows the creation of a network " +"protocol\n" +"that does not leak such information, keeping users anonymous and secure." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:82 +msgid "" +"Network protocols designed for use on the regular internet can be " +"inefficient\n" +"on I2P, which is a network with a much higher latency." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:89 +#, python-format +msgid "" +"I2P supports a standard plugins interface for" +" developers\n" +"so that applications may be easily integrated and distributed." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:95 +msgid "" +"Applications written in Java and accessible/runnable\n" +"using an HTML interface via the standard webapps/app.war\n" +"may be considered for inclusion in the i2p distribution." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:103 +msgid "There are a few changes that require adjusting to when using I2P:" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:107 +msgid "Destination ~= host+port" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:109 +msgid "" +"An application running on I2P sends messages from and receives messages " +"to a\n" +"unique cryptographically secure end point - a \"destination\". In TCP or" +" UDP\n" +"terms, a destination could (largely) be considered the equivalent of a " +"hostname\n" +"plus port number pair, though there are a few differences." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:117 +msgid "" +"An I2P destination itself is a cryptographic construct - all data sent to" +" one is \n" +"encrypted as if there were universal deployment of IPsec with the " +"(anonymized)\n" +"location of the end point signed as if there were universal deployment of" +" DNSSEC." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:122 +msgid "" +"I2P destinations are mobile identifiers - they can be moved from one I2P " +"router\n" +"to another (or it can even \"multihome\" - operate on multiple routers at" +"\n" +"once). This is quite different from the TCP or UDP world where a single " +"end point (port)\n" +"must stay on a single host." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:129 +msgid "" +"I2P destinations are ugly and large - behind the scenes, they contain a " +"2048 bit ElGamal\n" +"public key for encryption, a 1024 bit DSA public key for signing, and a " +"variable size \n" +"certificate, which may contain proof of work or blinded data." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:134 +#, python-format +msgid "" +"There are existing ways to refer to these large and ugly destinations by " +"short\n" +"and pretty names (e.g. \"irc.duck.i2p\"), but those techniques do not " +"guarantee\n" +"globally uniqueness (since they're stored locally in a database on each " +"person's machine)\n" +"and the current mechanism is not especially scalable nor secure (updates " +"to the host list are\n" +"managed using \"subscriptions\" to naming services).\n" +"There may be some secure, human readable, scalable, and globally \n" +"unique, naming system some day, but applications shouldn't depend upon it" +" being in place,\n" +"since there are those who don't think such a beast is possible.\n" +"Further information on the naming system is " +"available." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:148 +#, python-format +msgid "" +"While most applications do not need to distinguish protocols and ports,\n" +"I2P does support them. Complex applications may specify a " +"protocol,\n" +"from port, and to port, on a per-message basis, to multiplex traffic on\n" +"a single destination.\n" +"See the datagram page for details.\n" +"Simple applications operate by listening for \"all protocols\" on \"all " +"ports\" of a destination." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:157 +msgid "Anonymity and confidentiality" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:159 +msgid "" +"I2P has transparent end to end encryption\n" +"and authentication for all data passed over the network - if Bob sends to" +" Alice's destination,\n" +"only Alice's destination can receive it, and if Bob is using the " +"datagrams or streaming \n" +"library, Alice knows for certain that Bob's destination is the one who " +"sent the data." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:166 +msgid "" +"Of course, I2P transparently anonymizes the\n" +"data sent between Alice and Bob, but it does nothing to anonymize the " +"content of what they\n" +"send. For instance, if Alice sends Bob a form with her full name, " +"government IDs, and \n" +"credit card numbers, there is nothing I2P can do. As such, protocols and" +" applications should \n" +"keep in mind what information they are trying to protect and what " +"information they are willing\n" +"to expose." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:175 +msgid "I2P datagrams can be up to several KB" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:177 +#, python-format +msgid "" +"Applications that use I2P datagrams (either raw or repliable ones) can " +"essentially be thought\n" +"of in terms of UDP - the datagrams are unordered, best effort, and " +"connectionless - but unlike\n" +"UDP, applications don't need to worry about MTU detection and can simply " +"fire off large datagrams.\n" +"While the upper limit is nominally 32 KB, the message is fragmented for " +"transport, thus dropping\n" +"the reliability of the whole. Datagrams over about 10 KB are not " +"currently recommended.\n" +"See the datagram page for details.\n" +"For many applications, 10 KB of data is sufficient for an\n" +"entire request or response, allowing them to transparently operate in I2P" +" as a UDP-like \n" +"application without having to write fragmentation, resends, etc." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:191 +msgid "" +"There are several means of sending data over I2P, each with their own " +"pros and cons.\n" +"The streaming lib is the recommended interface, used by the majority of " +"I2P applications." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:196 +msgid "Streaming Lib" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:197 +#, python-format +msgid "" +"The full streaming library is now the " +"standard\n" +"interface. It allows programming using TCP-like sockets, as explained in " +"the Streaming development guide." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:203 +#, python-format +msgid "" +"BOB is the Basic Open Bridge,\n" +"allowing an application in any language to make streaming connections \n" +"to and from I2P. At this point in time it lacks UDP support, but UDP " +"support\n" +"is planned in the near future. BOB also contains several tools, such as \n" +"destination key generation, and verification that an address conforms to" +" \n" +"I2P specifications. Up to date info and applications that use BOB can be" +" \n" +"found at this eepsite." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:216 +msgid "SAM is not recommended. SAM V2 is okay, SAM V3 is recommended." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:217 +#, python-format +msgid "" +"SAM is the Simple Anonymous Messaging protocol, " +"allowing an\n" +"application written in any language to talk to a SAM bridge through a " +"plain TCP socket and have\n" +"that bridge multiplex all of its I2P traffic, transparently coordinating " +"the encryption/decryption\n" +"and event based handling. SAM supports three styles of operation:" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:224 +msgid "" +"streams, for when Alice and Bob want to send data to each other reliably " +"and in order" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:227 +msgid "" +"repliable datagrams, for when Alice wants to send Bob a message that Bob " +"can reply to" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:230 +msgid "" +"raw datagrams, for when Alice wants to squeeze the most bandwidth and " +"performance as possible,\n" +"and Bob doesn't care whether the data's sender is authenticated or not " +"(e.g. the data transferred\n" +"is self authenticating)" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:236 +msgid "" +"SAM V3 aims at the same goal as SAM and SAM V2, but does not require\n" +"multiplexing/demultiplexing. Each I2P stream is handled by its own socket" +" between the application\n" +"and the SAM bridge. Besides, datagrams can be sent and received by the " +"application through datagram\n" +"communications with the SAM bridge." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:243 +#, python-format +msgid "" +"SAM V2 is a new version used by imule\n" +"that fixes some of the problems in SAM.\n" +"
\n" +"SAM V3 is used by imule since version 1.4.0." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:251 +msgid "" +"The I2PTunnel application allows applications to build specific TCP-like " +"tunnels to peers \n" +"by creating either I2PTunnel 'client' applications (which listen on a " +"specific port and connect\n" +"to a specific I2P destination whenever a socket to that port is opened) " +"or I2PTunnel 'server'\n" +"applications (which listen to a specific I2P destination and whenever it " +"gets a new I2P \n" +"connection it outproxies to a specific TCP host/port). These streams are" +" 8-bit clean, and are\n" +"authenticated and secured through the same streaming library that SAM " +"uses, but there is a \n" +"nontrivial overhead involved with creating multiple unique I2PTunnel " +"instances, since each have\n" +"their own unique I2P destination and their own set of tunnels, keys, etc." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:263 +msgid "" +"I2P supports a SOCKS V4 and V5 proxy.\n" +"Outbound connections work well. Inbound (server) and UDP functionality " +"may be incomplete\n" +"and untested." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:270 +msgid "Removed" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:271 +msgid "" +"There used to be a simple \"ministreaming\" library,\n" +"but now ministreaming.jar contains only the interfaces for the full " +"streaming library." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:276 +msgid "Datagrams" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:277 +msgid "Recommended for UDP-like applications" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:278 +#, python-format +msgid "" +"The Datagram library allows sending UDP-" +"like packets.\n" +"It's possible to use:" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:283 +msgid "Repliable datagrams" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:284 +msgid "Raw datagrams" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:288 +msgid "Not recommended" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:289 +#, python-format +msgid "" +"I2CP itself is a language independent protocol, " +"but to implement an I2CP library \n" +"in something other than Java there is a significant amount of code to be " +"written (encryption routines, \n" +"object marshalling, asynchronous message handling, etc). While someone " +"could write an I2CP library in \n" +"C or something else, it would most likely be more useful to use the C SAM" +" library instead." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:296 +msgid "Web Applications" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:297 +msgid "" +"I2P comes with the Jetty webserver, and configuring to use the Apache " +"server instead is straightforward.\n" +"Any standard web app technology should work." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:303 +msgid "" +"Developing using I2P requires a working I2P installation and a " +"development environment of your own choice.\n" +"If you are using Java, you can start development with the streaming library or datagram library.\n" +"Using another programming language, SAM or BOB can be used." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:309 +msgid "Developing with the streaming library" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:311 +msgid "" +"The following example shows how to create TCP-like client and server " +"applications\n" +"using the streaming library." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:316 +msgid "This will require the following libraries in your classpath:" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:320 +msgid "The streaming library itself" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:321 +msgid "Factory and interfaces for the streaming library" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:322 +msgid "Standard I2P classes, data structures, API, and utilities" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:325 +msgid "" +"You can fetch these from an I2P installation, or add the following " +"dependencies\n" +"from Maven Central:" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:334 +msgid "" +"Network communication requires the usage of I2P network sockets.\n" +"To demonstrate this, we will create an application where a client can " +"send text messages to a server,\n" +"who will print the messages and send them back to the client. In other " +"words, the server will function as an echo." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:339 +msgid "" +"We will start by initializing the server application. This requires " +"getting an I2PSocketManager\n" +"and creating an I2PServerSocket.\n" +"We will not provide the I2PSocketManagerFactory with the saved keys for " +"an existing Destination,\n" +"so it will create a new Destination for us.\n" +"So we will ask the I2PSocketManager for an I2PSession, so we can find out" +" the Destination that\n" +"was created, as we will need to copy and paste that information later so " +"the client can connect to us." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:370 +msgid "Code example 1: initializing the server application." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:372 +msgid "" +"Once we have an I2PServerSocket, we can create I2PSocket instances to " +"accept connections from clients.\n" +"In this example, we will create a single I2PSocket instance, that can " +"only handle one client at a time.\n" +"A real server would have to be able to handle multiple clients.\n" +"To do this, multiple I2PSocket instances would have to be created, each " +"in separate threads.\n" +"Once we have created the I2PSocket instance, we read data, print it and " +"send it back to the client.\n" +"The bold code is the new code we add." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:456 +msgid "Code example 2: accepting connections from clients and handling messages." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:460 +msgid "" +"When you run the above server code, it should print something like this " +"(but without the line endings, it should just be\n" +"one huge block of characters):" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:474 +msgid "" +"This is the base64-representation of the server Destination. The client " +"will need this string to reach the server." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:478 +msgid "" +"Now, we will create the client application. Again, a number of steps are " +"required for initialization.\n" +"Again, we will need to start by getting an I2PSocketManager.\n" +"We won't use an I2PSession and an I2PServerSocket this time.\n" +"Instead, we will use the server Destination string to start our " +"connection.\n" +"We will ask the user for the Destination string, and create an I2PSocket " +"using this string.\n" +"Once we have an I2PSocket, we can start sending and receiving data to and" +" from the server." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:562 +msgid "" +"Code example 3: starting the client and connecting it to the server " +"application." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:564 +msgid "" +"Finally, you can run both the server and the client application.\n" +"First, start the server application. It will print a Destination string " +"(like shown above).\n" +"Next, start the client application. When it requests a Destination " +"string, you can enter the string printed by the server.\n" +"The client will then send 'Hello I2P!' (along with a newline) to the " +"server, who will print the message and send it back to the client." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:570 +msgid "Congratulations, you have successfully communicated over I2P!" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:574 +msgid "Existing Applications" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:575 +msgid "Contact us if you would like to contribute." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:596 +msgid "Application Ideas" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:598 +msgid "NNTP server - there have been some in the past, none at the moment" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:601 +msgid "" +"Jabber server - there have been some in the past, and there is one at the" +" moment, with access to the public internet" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:604 +msgid "PGP Key server and/or proxy" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:607 +msgid "" +"Content Distribution / DHT applications - resurrect feedspace,\n" +"port dijjer, look for alternatives" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:611 +msgid "Help out with Syndie development" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:614 +msgid "" +"Web-based applications - The sky is the limit for hosting web-server-" +"based\n" +"applications such as blogs, pastebins, storage, tracking, feeds, etc.\n" +"Any web or CGI technology such as Perl, PHP, Python, or Ruby will work." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:619 +msgid "" +"Resurrect some old apps, several previously in the i2p source package -\n" +"bogobot, pants, proxyscript, q, stasher, socks proxy, i2ping, feedspace" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/developers-keys.html:2 +msgid "I2P Developer's MTN Keys" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/developers-keys.html:4 +msgid "" +"Monotone servers used by the I2P project require two types of keys to be " +"used." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/developers-keys.html:8 +msgid "" +"Commit Keys to sign changes checked-in to the " +"respository; and" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/developers-keys.html:9 +msgid "" +"Transport Keys to push changes to remote " +"servers." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/developers-keys.html:12 +#, python-format +msgid "" +"Everyone that uses Monotone to checkout the I2P codebase will need to\n" +"import the\n" +"developer commit keys, but only Monotone \n" +"server operators will need to import the transport keys." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/developers-keys.html:19 +msgid "Developer Commit keys" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/developers-keys.html:291 +msgid "Developer Transport Keys" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/developers-keys.html:292 +#, python-format +msgid "" +"Note: Transport keys are only needed for setting up a\n" +"Monotone server." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/license-agreements.html:2 +msgid "License Agreements" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/license-agreements.html:5 +#, python-format +msgid "For more information see the licenses page." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/license-agreements.html:8 +msgid "" +"Following is a monotonerc file defining the current trust list.\n" +"Developers must use this file in ~/.monotone/monotonerc or\n" +"_MTN/montonerc in their i2p.i2p workspace." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/license-agreements.html:17 +msgid "Agreements" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:2 +msgid "I2P Software Licenses" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:4 +#, python-format +msgid "" +"As required by our\n" +"threat model (among other reasons), the \n" +"software developed to support the anonymous communication \n" +"network we call I2P must be freely available, open source, \n" +"and user modifiable. To meet these criteria, we make use of\n" +"a variety of legal and software engineering techniques so\n" +"as to remove as many barriers to entry for those considering\n" +"making use of or contributing to the I2P effort." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:15 +msgid "" +"While the information below may be more confusing than just simply \n" +"stating \"I2P is BSD\", \"I2P is GPL\", or \"I2P is public domain\",\n" +"the short answer to the question \"How is I2P licensed?\" is this:" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:21 +msgid "All software bundled in the I2P distributions will allow:" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:23 +msgid "use without fee" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:24 +msgid "" +"use with no restrictions on how, when, where, why, or by whom is running " +"it" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:25 +msgid "access to the source code without fee" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:26 +msgid "modifications to the source" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:29 +msgid "" +"Most of the software guarantees much more - the ability of anyone " +"to \n" +"distribute the modified source however they choose. However, not all of " +"the \n" +"software bundled provides this freedom - the GPL restricts the ability of" +" \n" +"developers who wish to integrate I2P with their own applications that are" +" not \n" +"themselves open source applications. While we applaud the noble goals of" +" \n" +"increasing the resources in the commons, I2P is best served by removing " +"any\n" +"barriers that stand in the way of its adoption - if a developer " +"considering whether\n" +"they can integrate I2P with their application has to stop and check with " +"their lawyer,\n" +"or conduct a code audit to make sure their own source can be released as " +"GPL-compatible,\n" +"we lose out." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:42 +msgid "Component licenses" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:43 +msgid "" +"The I2P distribution contains several resources, reflecting the " +"partitioning of \n" +"the source code into components. Each component has its own license, " +"which all \n" +"developers who contribute to it agree to - either by explicitly declaring" +" the release\n" +"of code committed under a license compatible with that component, or by " +"implicitly\n" +"releasing the code committed under the component's primary license. Each" +" of these \n" +"components has a lead developer who has the final say as to what license " +"is compatible\n" +"with the component's primary license, and the I2P project manager has the" +" final say as\n" +"to what licenses meet the above four guarantees for inclusion in the I2P " +"distribution." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:56 +msgid "Component" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:57 +msgid "Source path" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:58 +msgid "Resource" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:59 +msgid "Primary license" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:60 +msgid "Alternate licenses" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:61 +msgid "Lead developer" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:275 +msgid "GPL + java exception" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:276 +#, python-format +msgid "" +"While it may be redundant, just for clarity the\n" +"GPL'ed code included within\n" +"I2PTunnel and other apps must be released under the GPL with an " +"additional \"exception\"\n" +"explicitly authorizing the use of Java's standard libraries:" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:292 +msgid "" +"All source code under each component will by default be licensed under " +"the\n" +"primary license, unless marked otherwise in the code. All of the above " +"is\n" +"summary of the license terms - please see the specific license for the " +"component\n" +"or source code in question for authoritative terms. Component source " +"locations and\n" +"resource packaging may be changed if the repository is reorganized." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:300 +msgid "Website content" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:308 +msgid "Commit privileges" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:309 +#, python-format +msgid "" +"Developers may push changes to a distributed monotone repository if you\n" +"receive permission from the person running that repository.\n" +"See the Monotone Page for details." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:315 +msgid "" +"However, to have changes included in a release, developers\n" +"must be trusted by the release manager (currently zzz).\n" +"In addition, they must explicitly agree with the above terms to be " +"trusted.\n" +"That means that they must send one of the release managers a signed " +"message affirming that:" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:322 +msgid "" +"Unless marked otherwise, all code I commit is implicitly licensed under\n" +"the component's primary license" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:326 +msgid "" +"If specified in the source, the code may be explicitly licensed under one" +"\n" +"of the component's alternate licenses" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:330 +msgid "" +"I have the right to release the code I commit under the terms I\n" +"am committing it" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:336 +#, python-format +msgid "" +"If anyone is aware of any instances where the above conditions are not " +"met,\n" +"please contact the component lead and/or an I2P release manager with " +"further\n" +"information.\n" +"See developers' license agreements." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/release-signing-key.html:2 +msgid "Release Signing Key" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/release-signing-key.html:4 +msgid "Releases 0.7.6 and later are signed by zzz. His current public key is:" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/release-signing-key.html:190 +msgid "Releases from 0.9.9 could be signed by str4d. His current public key is:" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/release-signing-key.html:563 +msgid "str4d has signed the following releases:" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/release-signing-key.html:571 +msgid "Releases 0.7.6 through 0.9.12 were signed by zzz with the following key:" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/release-signing-key.html:607 +msgid "" +"Releases 0.6.1.31 through 0.7.5 were signed by Complication. His public " +"key is:" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/security-key.html:2 +msgid "Security GPG Key" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/security-key.html:4 +msgid "Following is the GPG key for the security _at_ geti2p.net email address:" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/signed-keys.html:2 +msgid "Signed Developer Keys" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/signed-keys.html:4 +msgid "" +"Keys for zzz, Complication and welterde are provided clearsigned. The key" +" for jrandom must be\n" +"verified differently, since he's away, and only left a binary detached\n" +"signature for his key." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/signed-keys.html:10 +#: i2p2www/pages/site/get-involved/develop/signed-keys.html:16 +msgid "Monotone keys for zzz" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/signed-keys.html:11 +#: i2p2www/pages/site/get-involved/develop/signed-keys.html:47 +msgid "Monotone keys for welterde" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/signed-keys.html:12 +#: i2p2www/pages/site/get-involved/develop/signed-keys.html:79 +msgid "Monotone keys for Complication" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/signed-keys.html:13 +#: i2p2www/pages/site/get-involved/develop/signed-keys.html:114 +msgid "Monotone keys for jrandom" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/signed-keys.html:14 +#: i2p2www/pages/site/get-involved/develop/signed-keys.html:169 +msgid "Others" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/signed-keys.html:17 +msgid "" +"Tip: To find zzz's GPG key, on his eepsite locate the key " +"`0xA76E0BED`, with\n" +"the name `zzz@mail.i2p` and the fingerprint `4456 EBBE C805 63FE 57E6 " +"B310 4155\n" +"76BA A76E 0BED`." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/signed-keys.html:49 +msgid "" +"Tip: To find welterde's GPG key, on public keyservers locate the " +"key\n" +"`0x62E011A1`, with the name `welterde@arcor.de` and the fingerprint `6720" +" FD81\n" +"3872 6DFC 6016 64D1 EBBC 0374 62E0 11A1`." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/signed-keys.html:81 +msgid "" +"Tip: To find Complication's GPG key, on his eepsite locate the key" +"\n" +"`0x79FCCE33`, with the name `complication@mail.i2p` and the fingerprint " +"`73CF\n" +"2862 87A7 E7D2 19FF DB66 FA1D FC6B 79FC CE33`." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/signed-keys.html:116 +msgid "" +"Tip: To find jrandom's GPG key for Syndie releases, on public " +"keyservers locate\n" +"the key `0x393F2DF9`, with the name `syndie-dist-key@i2p.net` and the\n" +"fingerprint `AE89 D080 0E85 72F0 B777 B2ED C2FA 68C0 393F 2DF9`." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/signed-keys.html:122 +msgid "" +"Jrandom had to leave unexpectedly in the end of 2007. His commit key was\n" +"deployed in the Syndie Monotone repository, in a file named `mtn-" +"committers`.\n" +"That file also had a GPG signature, `mtn-committers.sig`, but it was a " +"binary\n" +"detached signature. I am going to supply both files in GPG ASCII-armoured" +" form\n" +"below." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/signed-keys.html:130 +msgid "" +"First, the file `mtn-committers` containing jrandom's Monotone key. Save " +"as\n" +"`mtn-committers.asc` and unpack it using `gpg --output mtn-committers " +"--dearmor\n" +"mtn-committers.asc`:" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/signed-keys.html:151 +msgid "" +"Now the file `mtn-committers.sig`, containing the GPG signature. Save as\n" +"`mtn-committers.sig.asc` and unpack it using `gpg --output mtn-" +"committers.sig\n" +"--dearmor mtn-committers.sig.asc`. Use it to verify the above supplied\n" +"`mtn-committers` file:" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/signed-keys.html:170 +#, python-format +msgid "" +"Some of the developers have included their Monotone keys in their signed license agreement." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:2 +msgid "Developer Guidelines and Coding Style" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:3 +msgid "January 2017" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:5 +#, python-format +msgid "Read the new developers guide first." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:9 +msgid "Basic Guidelines and Coding Style" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:11 +msgid "" +"Most of the following should be common sense for anybody who has worked " +"on open source or in a commercial\n" +"programming envrionment.\n" +"The following applies mostly to the main development branch i2p.i2p.\n" +"Guidelines for other branches, plugins, and external apps may be " +"substantially different;\n" +"check with the appropriate developer for guidance." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:19 +msgid "Community" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:21 +msgid "" +"Please don't just \"write code\". If you can, participate in other " +"development activities, including:\n" +"development discussions and support on IRC, zzz.i2p, and forum.i2p; " +"testing;\n" +"bug reporting and responses; documentation; code reviews; etc." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:26 +msgid "" +"Active devs should be available periodically on IRC #i2p-dev.\n" +"Be aware of the current release cycle.\n" +"Adhere to release milestones such as feature freeze, tag freeze, and\n" +"the checkin deadline for a release." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:35 +msgid "Release Cycle" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:36 +msgid "" +"Our normal release cycle is 6-10 weeks.\n" +"Following are the approximate deadlines within a typical 8-week cycle.\n" +"Actual deadlines for each release are set by the lead developer." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:43 +msgid "1-2 days after previous release: Checkins to trunk are allowed." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:46 +msgid "" +"2-3 weeks after previous release: Deadline to propagate major changes " +"from other branches to trunk." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:49 +msgid "4-5 weeks before release: Deadline to request new home page links." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:52 +msgid "3-4 weeks before release: Feature freeze. Deadline for major new features." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:55 +msgid "" +"2-3 weeks before release: Hold project meeting to review new home page " +"link requests, if any." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:58 +msgid "" +"7-10 days before release: String freeze. No more changes to translated " +"(\"tagged\") strings.\n" +"Push strings to Transifex, announce translation deadline on Transifex." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:62 +msgid "" +"7-10 days before release: Feature deadline. Bug fixes only after this " +"time. No more features, refactoring or cleanup." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:65 +msgid "" +"3-4 days before release: Translation deadline. Pull translations from " +"Transifex and check in." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:68 +msgid "" +"2-3 days before release: Checkin deadline. No checkins after this time " +"without the permission of the release builder." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:71 +msgid "Hours before release: Code review deadline." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:80 +msgid "" +"Have a basic understanding of distributed source control systems, even if" +" you haven't\n" +"used monotone before. Ask for help if you need it.\n" +"Once pushed, checkins are forever, there is no undo. Please be careful.\n" +"If you have not used monotone before, start with baby steps.\n" +"Check in some small changes and see how it goes." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:87 +msgid "" +"Test your changes before checking them in.\n" +"If you prefer the checkin-before-test development model,\n" +"use your own development branch (e.g. i2p.i2p.yourname.test)\n" +"and propagate back to i2p.i2p once it is working well.\n" +"Do not break the build. Do not cause regressions.\n" +"In case you do (it happens), please do not vanish for a long period after" +"\n" +"you push your change." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:96 +msgid "" +"If your change is non-trivial, or you want people to test it and need " +"good test reports\n" +"to know whether your change was tested or not, add a checkin comment to " +"history.txt\n" +"and increment the build revision in RouterVersion.java." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:101 +msgid "" +"Ensure that you have the latest monotonerc file in _MTN.\n" +"Do not check in on top of untrusted revisions." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:105 +msgid "" +"Ensure that you 'mtn pull' and 'mtn update' to the latest revision before" +" you check in and push.\n" +"If you inadvertently diverge, merge and push as soon as possible.\n" +"Don't routinely make others merge for you.\n" +"Yes, we know that monotone says you should push and then merge,\n" +"but in our experience, in-workspace merge works just as well as in-" +"database merge,\n" +"without creating a merge revision." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:113 +msgid "" +"Do not check in major changes into the main i2p.i2p branch late in the " +"release cycle.\n" +"If a project will take you more than a couple days, create your own " +"branch in monotone\n" +"and do the development there so you do not block releases." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:120 +msgid "Coding Style" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:122 +msgid "" +"Coding style throughout most of the code is 4-spaces for indentation. Do " +"not use tabs.\n" +"Do not reformat code. If your IDE or editor wants to reformat everything," +" get control of it.\n" +"Yes, we know 4 spaces is a pain, but perhaps you can configure your " +"editor appropriately.\n" +"In some places, the coding style is different.\n" +"Use common sense. Emulate the style in the file you are modifying." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:129 +msgid "" +"All new public and package-private classes and methods require Javadocs. " +"Add @since release-number.\n" +"Javadocs for new private methods are desirable." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:133 +msgid "" +"For any Javadocs added, there must not be any doclint errors or warnings." +"\n" +"Run 'ant javadoc' with Oracle Java 8 or higher to check.\n" +"All params must have @param lines, all non-void methods must have @return" +" lines,\n" +"all exceptions declared thrown must have @throws lines, and no HTML " +"errors." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:139 +msgid "" +"Classes in core/ (i2p.jar) and portions of i2ptunnel are part of our " +"official API.\n" +"There are several out-of-tree plugins and other applications that rely on" +" this API.\n" +"Be careful not to make any changes that break compatibility.\n" +"Don't add methods to the API unless they are of general utility.\n" +"Javadocs for API methods should be clear and complete.\n" +"If you add or change the API, also update the documentation on the " +"website (i2p.www branch)." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:147 +msgid "" +"Tag strings for translation where appropriate.\n" +"Don't change existing tagged strings unless really necessary, as it will " +"break existing translations.\n" +"Do not add or change tagged strings after the \"tag freeze\" in the " +"release cycle so that\n" +"translators have a chance to update before the release." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:153 +msgid "" +"Use generics and concurrent classes where possible. I2P is a highly " +"multi-threaded application." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:156 +msgid "" +"Be familiar with common Java pitfalls that are caught by findbugs.\n" +"Run 'ant findbugs' to learn more." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:160 +msgid "" +"We require Java 7 to build and run I2P.\n" +"Do not use Java 8 classes or methods anywhere.\n" +"Do not use Java 7 or 8 classes or methods in embedded subsystems (core, " +"router, mstreaming, streaming, i2ptunnel),\n" +"as Android and embedded applications require only Java 6. All classes " +"must be available in Android API 9.\n" +"Java 7 language features are acceptable in these subsystems if supported " +"by the current version\n" +"of the Android SDK and they compile to Java 6-compatible code." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:168 +msgid "" +"Explicitly convert between primitive types and classes;\n" +"don't rely on autoboxing/unboxing." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:172 +msgid "Don't use URL. Use URI." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:175 +msgid "" +"Don't catch Exception. Catch RuntimeException and checked exceptions " +"individually." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:178 +msgid "" +"Don't use String.getBytes() without a UTF-8 charset argument. You may " +"also use DataHelper.getUTF8() or DataHelper.getASCII()." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:181 +msgid "" +"Always specify a UTF-8 charset when reading or writing files. The " +"DataHelper utilities may be helpful." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:184 +msgid "" +"Always specify a locale (for example Locale.US) when using " +"String.toLowerCase() or String.toUpperCase().\n" +"Do not use String.equalsIgnoreCase(), as a locale cannot be specified." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:188 +msgid "Don't use String.split(). Use DataHelper.split()." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:191 +msgid "Ensure that InputStreams and OutputStreams are closed in finally blocks." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:194 +msgid "" +"Use {} for all for and while blocks, even if only one line.\n" +"If you use {} for either the if, else, or if-else block, use it for all " +"blocks.\n" +"Put \"} else {\" on a single line." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:199 +msgid "Specify fields as final wherever possible." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:202 +msgid "" +"Don't store I2PAppContext, RouterContext, Log, or any other references to" +" router or context items in static fields." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:205 +msgid "Don't start threads in constructors. Use I2PAppThread instead of Thread." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:210 +msgid "Licenses" +msgstr "Licence" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:212 +msgid "" +"Only check in code that you wrote yourself.\n" +"Before checking in any code or library jars from other sources,\n" +"justify why it is necessary,\n" +"verify the license is compatible,\n" +"and obtain approval from the lead developer." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:219 +msgid "" +"If you do obtain approval to add external code or jars,\n" +"and binaries are available in any Debian or Ubuntu package,\n" +"you must implement build and packaging options to use the external " +"package instead.\n" +"Checklist of files to modify:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:227 +msgid "" +"For any images checked in from external sources,\n" +"it is your responsibility to first verify the license is compatible.\n" +"Include the license and source information in the checkin comment." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:234 +msgid "Bugs" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:236 +#, python-format +msgid "" +"Managing Trac tickets is everybody's job, please help.\n" +"Monitor %(trac)s for tickets you have been assigned or can help with.\n" +"Assign, categorize, comment on, fix, or close tickets if you can." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:241 +msgid "" +"New developers should start by fixing a bug.\n" +"Search for bugs with the 'easy' keyword on trac.\n" +"When you have a fix, attach your patch to the ticket and add the keyword " +"'review-needed'.\n" +"Do not close the ticket until it's been successfully reviewed and you've " +"checked your changes in.\n" +"Once you've done this smoothly for a couple of tickets, you may follow " +"the normal procedure below." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:248 +msgid "" +"Close a ticket when you think you've fixed it.\n" +"We don't have a test department to verify and close tickets.\n" +"If you arent sure you fixed it, close it and add a note saying\n" +"\"I think I fixed it, please test and reopen if it's still broken\".\n" +"Add a comment with the dev build number or revision and set\n" +"the milestone to the next release." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/ides.html:2 +msgid "Using an IDE with I2P" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/ides.html:4 +msgid "" +"The main I2P development branch (i2p.i2p) has been set up to" +" enable developers to easily set up two of the commonly-used IDEs for " +"Java development: Eclipse and NetBeans." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/ides.html:10 +msgid "" +"The main I2P development branches (i2p.i2p and branches from" +" it) contain .project and .classpath Eclipse files, to enable the branch " +"to be easily set up in Eclipse." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/ides.html:16 +msgid "" +"Check out the I2P branch into some directory (e.g. " +"$HOME/dev/i2p.i2p)." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/ides.html:20 +msgid "" +"Open Eclipse and create a new Workspace, based in the directory that the " +"I2P branch was checked out to." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/ides.html:24 +msgid "" +"Select \"File - Import...\" and then under \"General\" select \"Existing " +"Projects into Workspace\"." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/ides.html:28 +msgid "" +"For \"Select root directory:\" choose the directory that the I2P branch " +"was checked out to." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/ides.html:32 +msgid "If necessary, click \"Refresh\" to refresh the list of projects." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/ides.html:36 +msgid "Select every project in the list, and click \"Finish\"." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/ides.html:40 +msgid "" +"Done! Your workspace should now contain all projects within the I2P " +"branch, and their build dependencies should be correctly set up." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/ides.html:48 +msgid "" +"The main I2P development branches (i2p.i2p and branches from" +" it) contain NetBeans project files." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:2 +msgid "Monotone Guide" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:6 +msgid "Operating a Monotone client" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:8 +#: i2p2www/pages/site/get-involved/guides/monotone.html:61 +msgid "Generating Monotone keys" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:9 +msgid "Trust and initializing your repository" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:10 +#: i2p2www/pages/site/get-involved/guides/monotone.html:194 +msgid "Obtaining and deploying developers' keys" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:11 +#: i2p2www/pages/site/get-involved/guides/monotone.html:225 +msgid "Setting up trust evaluation hooks" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:12 +#: i2p2www/pages/site/get-involved/guides/monotone.html:266 +msgid "" +"Pulling the i2p.i2p, i2p.www and " +"i2p.syndie branches" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:13 +#: i2p2www/pages/site/get-involved/guides/monotone.html:312 +msgid "Verifying that trust evaluation works" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:14 +#: i2p2www/pages/site/get-involved/guides/monotone.html:361 +msgid "Checking out a working copy of the latest version" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:15 +#: i2p2www/pages/site/get-involved/guides/monotone.html:388 +msgid "Updating your working copy to the latest version" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:19 +#: i2p2www/pages/site/get-involved/guides/monotone.html:418 +msgid "Operating a Monotone Server" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:21 +msgid "Obtaining and deploying developers’ transport keys" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:22 +#: i2p2www/pages/site/get-involved/guides/monotone.html:428 +msgid "Granting push and pull access" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:23 +#: i2p2www/pages/site/get-involved/guides/monotone.html:473 +msgid "Running Monotone in server mode" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:24 +#: i2p2www/pages/site/get-involved/guides/monotone.html:498 +msgid "Differences under Debian GNU/Linux" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:32 +#, python-format +msgid "" +"This is a revised version of Complication's original\n" +" guide detailing the use of Monotone in I2P development.\n" +" For basic instructions see the quick-start " +"guide." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:40 +#, python-format +msgid "" +"I2P has a distributed development model. The source code is replicated " +"across\n" +" independently administered Monotone (\"MTN\") repositories.\n" +" Developers with commit rights are able to push their changes to the " +"repository\n" +" (a license agreement needs to be " +"signed\n" +" before commit rights are granted)." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:50 +msgid "" +"Some of Monotone's noteworthy qualities are: distributed\n" +" version control, cryptographic authentication, access control, its " +"small size, having few\n" +" dependencies, storage of projects in a compressed SQLite database file," +" and\n" +" having the ability to resume interrupted synchronization attempts." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:59 +msgid "Operating a Monotone Client" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:64 +msgid "" +"A transport key grants you the ability to push your changes to a Monotone" +" repository server.\n" +" In order to commit code into Monotone (in essence signing your code), a" +" commit key is also needed.\n" +" None of the public Monotone servers on I2P currently require a key in " +"order to read (or pull) the source code." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:72 +msgid "" +"Without a transport key, one cannot:\n" +"
    \n" +"
  • pull code from a server which doesn't allow global read " +"access
  • \n" +"
  • push code to any server
  • \n" +"
  • run a Monotone server
  • \n" +"
" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:83 +msgid "" +"Without a commit key, one cannot:\n" +"
    \n" +"
  • commit any code
  • \n" +"
" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:92 +msgid "" +"If you only intend to retrieve code from MTN, feel free to skip to the\n" +" next section. " +"If you want\n" +" to generate keys, read the following." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:100 +msgid "" +"By convention keys are named like an e-mail addresses, but a " +"corresponding e-mail\n" +" address does not need to exist. For example, your keys might be named:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:111 +msgid "" +"Monotone stores keys under $HOME/.monotone/keys in " +"text files which\n" +" are named identically to the keys. For example:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:121 +msgid "" +"To generate transport and commit keys, enter the following commands at a " +"prompt:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:131 +msgid "" +"Monotone will prompt you for a password to protect your keys. You are " +"very strongly encouraged to set a password\n" +" for the commit key. Many users will leave an empty password for the " +"transport key, especially those running a\n" +" Monotone server." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:139 +msgid "Trust, and initializing your repository" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:143 +msgid "" +"Monotone's security model helps to ensure that nobody can easily " +"impersonate a developer without\n" +" it being noticed. Since developers can make mistakes and become " +"compromised,only manual review can\n" +" ensure quality of code. Monotone's trust model will ensure that you " +"read the right diffs. It does\n" +" not replace reading diffs." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:153 +msgid "" +"A Monotone repository is a single file (a compressed SQLite database) " +"which contains all of the project's source code and history." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:159 +msgid "" +"After importing the " +"developers' keys into Monotone and\n" +" setting up trust " +"evaluation hooks,\n" +" Monotone will prevent untrusted code from being checked out into your " +"workspace.\n" +" There are commands available to clean untrusted code from your " +"workspace but in practice they've not been\n" +" needed due to the push access policies in place." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:169 +msgid "" +"A repository can hold many branches. For example, our repository holds " +"the\n" +" following main branches:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:174 +msgid "The I2P router and associated programs" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:175 +msgid "The I2P project website" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:176 +msgid "Syndie, a distributed forums tool" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:181 +msgid "" +"By convention, the I2P Monotone repository is named i2p.mtn." +" Before pulling\n" +" source code from servers, a database for your repository will need to " +"be initialized.\n" +" To initialize your local repository, change into the directory that you" +" want the\n" +" i2p.mtn file and branch directories to be stored and issue" +" the following\n" +" command:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:197 +msgid "" +"Keys which developers use to commit code are essential for trust " +"evaluation in\n" +" Monotone. The other developers' transport keys are only required for " +"Monotone server operators.\n" +" " +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:204 +#, python-format +msgid "" +"Developers' commit keys are provided GPG-signed on another page." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:210 +#, python-format +msgid "" +"To import developers' keys after verifying their authenticity, copy all of the keys into a new\n" +" file. Create this file (e.g. keys.txt) in the same " +"directory where i2p.mtn is located. Import the keys with the" +" command:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:220 +msgid "" +"Note: Never add keys to " +"$HOME/.monotone/keys manually." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:228 +msgid "" +"The default Monotone trust policy is way too lax for our requirements: " +"every committer is trusted by default.\n" +" That is not acceptable for I2P development." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:235 +msgid "" +"Change into the directory $HOME/.monotone and open " +"the file\n" +" monotonerc with a text editor. Copy and paste the " +"following two functions into this file:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:244 +msgid "" +"The first function determines an intersection between two sets, in our " +"case a\n" +" revision's signers and trusted signers." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:251 +msgid "" +"The second function determines trust in a given revision, by calling the " +"first\n" +" function with \"signers\" and \"trusted\" as arguments. If the " +"intersection is\n" +" null, the revision is not trusted. If the intersection is not empty, " +"the\n" +" revision is trusted. Otherwise, the revision is not trusted." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:260 +msgid "" +"More information about Trust Evaluation Hooks can be found in the official Monotone " +"documentation." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:268 +msgid "" +"I2P is shipped with a pre-configured tunnel pointing to the project " +"Monotone server. Ensure that the tunnel has been started\n" +" within I2PTunnel before" +" attempting to pull the source code from 127.0.0.1:8998." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:275 +msgid "" +"Enter the directory where you initialized i2p.mtn. Depending" +" on whether you\n" +" want only I2P sources, or also sources for the I2P website and Syndie, " +"you can\n" +" perform the pull operation in different ways." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:283 +msgid "If you only want I2P sources:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:292 +msgid "If you want all branches:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:298 +msgid "" +"If the transfer aborts before completing sucessfully, simply repeating " +"the pull command will resume the transfer." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:304 +msgid "" +"Pulling in the above examples is done anonymously by specifying an empty " +"transport key.\n" +" If everyone pulls anonymously it will be harder for an attacker who " +"gains control of the server\n" +" to selectively provide some people with tampered data." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:315 +msgid "To verify that trust evaluation works:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:319 +msgid "Make a backup of your monotonerc file." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:320 +msgid "" +"Modify monotonerc by setting the trusted_signers " +"variable in the following way:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:326 +msgid "" +"With monotonerc configured as above, Monotone will no" +" longer trust any committers. Confirm this by changing into the\n" +"directory where i2p.mtn was created and attempt a checkout " +"of the I2P branch:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:336 +msgid "" +"A directory named i2p.i2p should not appear. You " +"should encounter many\n" +" error messages like:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:353 +msgid "" +"If you are satisfied with results, restore the backup of\n" +" monotonerc that was created above. If you didn't create a " +"backup\n" +" as advised, re-read Setting up trust evaluation hooks." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:364 +msgid "" +"If you already have a branch checked out, skip to the next\n" +" section." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:371 +msgid "" +"Change into the directory where i2p.mtn is located. Over " +"there issue:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:380 +msgid "" +"The checkout should complete without error messages and a directory named" +"\n" +" i2p.i2p should appear in the current directory. " +"Congratulations! You have\n" +" successfully checked out the latest I2P sources, ready to be compiled." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:391 +msgid "" +"If you haven't done this already, pull fresh code from the server to your" +" local\n" +" Monotone repository. To accomplish this, change into the directory " +"where\n" +" i2p.mtn is located and issue:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:402 +msgid "Now change into your i2p.i2p directory, and over there issue:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:411 +msgid "" +"As long as there were no errors…Congratulations! You have " +"successfully updated to the latest I2P sources. They\n" +" should be ready to compile." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:420 +msgid "Obtaining and deploying developers' transport keys" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:423 +msgid "" +"As a server operator you may want to grant push access to certain " +"developers." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:431 +msgid "By default the Monotone server denies all access." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:437 +msgid "To grant pull access to all clients, set the following in" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:449 +msgid "" +"No one will not be able to push code to your server without permission " +"being explicitly granted. To grant push access:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:455 +msgid "" +"Add the name of the user's transport key to\n" +"$HOME/.monotone/write-permissions, such as\n" +"
\n"
+"    zzz-transport@mail.i2p\n"
+"    complication-transport@mail.i2p\n"
+"
\n" +"with one key per line." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:466 +msgid "" +"Import the transport key(s) into your database. The procedure for " +"importing transport keys is the same as for\n" +"importing commit keys, which is described in the section Obtaining and deploying " +"developers' keys." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:476 +msgid "" +"A separate database should be used for your Monotone server because " +"monotone will lock the database while it is served to others.\n" +" Make a copy of your development database, then start the server with:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:483 +msgid "" +"If your key is protected with a passphrase, Monotone may request the " +"passphrase\n" +" when the first client connects. You can work around this by connecting " +"making the first client connection to your server\n" +" (or by clearing the password for your transport key)." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:491 +msgid "" +"For your server to be accessible for others over I2P, you will need to " +"create a\n" +" server tunnel for it. Use the \"Standard\" tunnel type and \"Bulk\" " +"profile." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:501 +msgid "" +"Debian (amongst other distributions) has integrated Monotone into their\n" +" framework of daemons/services. Although Monotone servers can still be " +"run\n" +" \"the ordinary way\" on Debian systems, doing it the \"Debian way\" may" +" be more straightforward." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:509 +msgid "" +"Permissions are granted by editing the files\n" +" /etc/monotone/read-permissions and\n" +" /etc/monotone/write-permissions. You'll also need to edit\n" +" /etc/default/monotone to enable monotone to start at boot " +"or to\n" +" customize the host, port, or database location." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:2 +msgid "New Developer's Guide" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:5 +#: i2p2www/pages/site/get-involved/guides/new-developers.html:31 +msgid "Basic study" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:6 +#: i2p2www/pages/site/get-involved/guides/new-developers.html:45 +msgid "Getting the I2P code" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:8 +#: i2p2www/pages/site/get-involved/guides/new-developers.html:52 +msgid "The easy way: Git" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:9 +#: i2p2www/pages/site/get-involved/guides/new-developers.html:72 +msgid "The proper way: Monotone" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:11 +#: i2p2www/pages/site/get-involved/guides/new-developers.html:135 +msgid "Building I2P" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:12 +#: i2p2www/pages/site/get-involved/guides/new-developers.html:156 +msgid "Development ideas" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:13 +#: i2p2www/pages/site/get-involved/guides/new-developers.html:164 +msgid "Making the results available" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:14 +#: i2p2www/pages/site/get-involved/guides/new-developers.html:185 +msgid "Get to know us!" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:15 +#: i2p2www/pages/site/get-involved/guides/new-developers.html:191 +msgid "Translations" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:16 +#: i2p2www/pages/site/get-involved/guides/new-developers.html:197 +msgid "Tools" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:21 +msgid "" +"\n" +"So you want to start work on I2P? Great!\n" +"Here's a quick guide to getting started\n" +"on contributing to the website or the software, doing development or " +"creating translations." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:26 +#, python-format +msgid "" +"\n" +"Not quite ready for coding?\n" +"Try getting involved first." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:33 +msgid "" +"Basic development on the I2P router or the embedded applications uses " +"Java as the main development language.\n" +"If you don't have experience with Java, you can always have a look at Thinking in Java." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:37 +#, python-format +msgid "" +"Study the how intro,\n" +"the other \"how\" documents,\n" +"the tech intro,\n" +"and associated documents.\n" +"These will give you a good overview of how I2P is structured and what " +"different things it does." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:47 +msgid "" +"For development on the I2P router or the embedded applications,\n" +"there are two ways to get the source code:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:54 +#, python-format +msgid "Install Git." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:57 +#, python-format +msgid "Get the code from the GitHub mirror:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:64 +#: i2p2www/pages/site/get-involved/guides/new-developers.html:119 +msgid "Remarks" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:65 +#, python-format +msgid "" +"The Git repository is currently a read-only mirror. If you wish to use it" +" for\n" +"development, you will need to submit patches to our " +"issue\n" +"tracker. We can accept GitHub pull requests, but they must be " +"processed\n" +"manually by turning them into patches anyway." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:74 +msgid "" +"Install monotone.\n" +"Monotone is a version control system.\n" +"We use it because it allows us to keep track of who does what changes to " +"the source code (and for a lot of complicated things, but 'keeping track " +"of changes' is the basic idea)." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:79 +msgid "" +"Skim over the monotone tutorial," +" to make sure you understand the concepts." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:83 +msgid "" +"If you want to remain anonymous, you need to do an additional step, to " +"set up a connection to a monotone server over I2P:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:86 +#, python-format +msgid "" +"Enable the i2ptunnel client tunnel on port " +"8998 pointing to mtn.i2p-projekt.i2p." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:90 +msgid "" +"Pick a directory where you want to put all your I2P files, and create a " +"monotone database:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:93 +msgid "" +"Define the trust list by creating ~/.monotone/monotonerc (or" +" _MTN/monotonerc in the i2p.i2p workspace) with the " +"following contents:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:98 +#, python-format +msgid "" +"Copy and paste the developer's commit keys " +"into a new file (e.g. keys.txt) in the same directory\n" +" that i2p.mtn is in. Import the keys into your database " +"with
      mtn -d i2p.mtn read < keys.txt
" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:102 +msgid "" +"Pull the I2P sources to your machine. This may take a long time, " +"especially if you are doing this over I2P!" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:104 +msgid "Anonymously:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:107 +msgid "Non-anonymously:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:113 +msgid "" +"All the sources are now present on your machine, in the database file. To" +" make them available in a directory, you need to check them out:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:115 +msgid "" +"The above command creates a directory i2p.i2p, which contains all of the " +"I2P sources." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:120 +msgid "" +"\n" +"To download the website files instead of the I2P source files, use " +"'i2p.www' instead of 'i2p.i2p'." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:123 +msgid "" +"The initial pull may take several hours using the tunnel.\n" +"If it fails after a partial pull, simply rerun it, it will start where it" +" left off.\n" +"If you are in a hurry, use the non-anonymous access." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:128 +#, python-format +msgid "" +"A full list of branches, including i2p.i2p and i2p.www can be found on viewmtn." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:131 +#, python-format +msgid "" +"A long explanation about using monotone is available on the monotone page." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:137 +#, python-format +msgid "" +"To compile the code, you need the Sun Java Development Kit 6 or higher, " +"or equivalent JDK\n" +"(Sun JDK 6 strongly recommended) and\n" +"Apache ant\n" +"version 1.7.0 or higher.\n" +"If you go are working on the main I2P code, you can go into the i2p.i2p " +"directory and run 'ant' to see the build options." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:145 +msgid "" +"To build or work on console translations, you need\n" +"the xgettext, msgfmt, and msgmerge tools from the\n" +"GNU gettext package." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:151 +#, python-format +msgid "" +"For development on new applications,\n" +"see the application development guide." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:157 +#, python-format +msgid "" +"See zzz's TODO lists,\n" +"this website's TODO list or\n" +"Trac\n" +"for ideas." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:166 +#, python-format +msgid "" +"See the bottom of the licenses page " +"for\n" +"commit privilege requirements. You need these to put code into i2p.i2p " +"(not required for the website!)." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:171 +msgid "Short version of how to generate and use keys if you plan to commit:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:173 +msgid "use an empty passphrase" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:174 +msgid "enter a passphrase" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:175 +#, python-format +msgid "" +"send this to a mtn repo operator to get " +"push privileges" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:176 +#, python-format +msgid "" +"send this to a release manager to get " +"commit privileges - not required for website" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:177 +msgid "check in with this key" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:178 +msgid "push with this key" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:180 +#, python-format +msgid "Long version: see the monotone page." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:186 +#, python-format +msgid "" +"The developers hang around on IRC. They can be reached on the Freenode " +"network, OFTC, and on the I2P internal networks. The usual place to look " +"is #i2p-dev. Join the channel and say hi!\n" +"We also have additional guidelines for regular" +" developers." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:192 +#, python-format +msgid "" +"Website and router console translators: See the New Translator's Guide\n" +"for next steps." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:198 +msgid "" +"I2P is open source software that is mostly developed using open sourced\n" +"toolkits. The I2P project recently acquired a license for the YourKit " +"Java\n" +"Profiler. Open source projects are eligible to receive a free license " +"provided\n" +"that YourKit is referenced on the project web site. Please get in touch " +"if you\n" +"are interested in profiling the I2P codebase." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:206 +#, python-format +msgid "" +"YourKit is kindly supporting open source projects with its full-featured " +"Java Profiler.\n" +"YourKit, LLC is the creator of innovative and intelligent tools for " +"profiling\n" +"Java and .NET applications. Take a look at YourKit's leading software " +"products:\n" +"YourKit Java Profiler and\n" +"YourKit .NET Profiler." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:2 +msgid "New Translator's Guide" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:4 +msgid "Here's a very quick guide to getting started." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:6 +msgid "How to Translate the Website" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:8 +#, python-format +msgid "" +"Translation of the website is done with .po files. The easiest way by far" +" to\n" +"translate the website is to sign up for an account at \n" +"Transifex and request to join a translation" +" team. \n" +"Alternatively it can be done \"the old way\" as outlined below." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:17 +#: i2p2www/pages/site/get-involved/guides/new-translators.html:82 +msgid "Preparation" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:19 +#: i2p2www/pages/site/get-involved/guides/new-translators.html:84 +#, python-format +msgid "" +"Come to #i2p-dev on irc and talk to people.\n" +"Claim the language -\n" +"To make sure other coworkers don't bump onto the files you are working " +"on,\n" +"please update the translation status on this wiki " +"page." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:25 +#, python-format +msgid "" +"Follow the new developer's guide,\n" +"Including the installation of monotone,\n" +"checking out i2p.www branch, and generate your own monotone keys.\n" +"It is not required that you sign a dev agreement." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:33 +msgid "" +"Create files:\n" +"If the file for your language does not exist yet:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:38 +msgid "" +"Run \"./extract-messages.sh\" to generate a " +"messages.pot in the base directory.\n" +"Edit the header of this file, then run \"./init-new-po.sh " +"locale\" to generate the file\n" +"i2p2www/translations/locale/LC_MESSAGES/messages.po. " +"\"mtn add\" this file." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:43 +msgid "" +"Edit i2p2www/pages/global/lang.html and add a line for your " +"language (copy an existing line)." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:46 +msgid "" +"Add a flag image file to i2p2www/static/images/flags/ for " +"the menu (copy from the router)." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:52 +msgid "" +"Edit files:\n" +"Edit i2p2www/translations/locale/LC_MESSAGES/messages.po.\n" +"To work with .po files efficiently, you may wish to use POEdit" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:58 +#: i2p2www/pages/site/get-involved/guides/new-translators.html:151 +msgid "" +"Check in:\n" +"\"mtn pull\", \"mtn update\". Then check in by " +"\"mtn ci -k yourname@mail.i2p file1 file2 ...\"\n" +"This collects the diff info of your changed file into your local repo. " +"Then \"mtn sync mtn.i2p2.de -k yourname-transport@mail.i2p " +"i2p.i2p\".\n" +"This synchronizes your local repo with the repo on the target machine." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:65 +#: i2p2www/pages/site/get-involved/guides/new-translators.html:158 +msgid "Repeat. Check in often. Don't wait until it is perfect." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:72 +msgid "How to Translate the Router Console" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:74 +#, python-format +msgid "" +"The easiest way by far to translate the router console is to sign up for " +"an account at \n" +"Transifex and request to join a translation" +" team. \n" +"Alternatively it can be done \"the old way\" as outlined below." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:90 +#, python-format +msgid "" +"Follow the new developer's guide,\n" +"including the installation of monotone and the gettext tools,\n" +"checking out i2p.i2p branch, and generate your own monotone keys." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:95 +msgid "Generate your own gpg key and sign the dev agreement." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:101 +msgid "" +"Before starting a console translation, better help translate some i2p " +"webpages first.\n" +"At least an i2p homepage in your language would be great." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:106 +msgid "" +"What to translate:\n" +"There are about 15 files in the i2p.i2p branch that needs translation:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:132 +msgid "" +"Where xx is your language code like fr/de/ch/zh/...\n" +"There may be or may not be files with your lang code. If not, you can " +"create your own. by copying and renaming other language files you know " +"with your own lang code." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:137 +msgid "" +"Create files:\n" +"If the file for your language does not exist yet, copy another language " +"file to a new file foo_xx.bar for your language.\n" +"Then \"mtn add\" the file.\n" +"After creating a .po file, edit the headers. Then run \"ant " +"distclean poupdate\"." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:144 +msgid "" +"Start to work:\n" +"Edit the HTML files with any text editor.\n" +"Be sure not to use an editor in HTML mode that reformats everything.\n" +"To work with .po files efficiently, you may wish to use POEdit" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:163 +msgid "" +"As you can see, it's not that difficult.\n" +"If you have questions about the meaning of the terms in the console, ask " +"in #i2p-dev on IRC." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:169 +msgid "FAQ" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:171 +msgid "" +"Q: Why do I have to install monotone, Java, jsp, learn about .po files " +"and html, etc.? Why can't I just do a translation and email it to you?" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:175 +msgid "A: Several reasons:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:178 +#, python-format +msgid "" +"You might be interested in translating via Transifex. Request to join a " +"translation team here." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:182 +msgid "" +"We don't have anybody who has time to accept manual contributions and " +"submit them to our source control system on your behalf. Even if we did, " +"it doesn't scale." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:186 +msgid "" +"Maybe you are thinking translation is a one-step process. It isn't. You " +"can't do it all at once. You will make mistakes. You need to test it and " +"tweak it to make it look right before you submit it. Developers " +"will update or add to the English text, thus requiring a translation " +"update." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:190 +msgid "" +"Having translators use a source control system directly provides " +"authentication and accountablility - we know who is doing what, and we " +"can track changes, and revert them if necessary." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:194 +msgid "" +".po files are not difficult. If you don't want to work directly with " +"them, we recommend 'poedit'." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:198 +msgid "" +"HTML files are not difficult. Just ignore the html stuff and translate " +"the text." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:202 +msgid "" +"Installing and using monotone is not that difficult. Several of the " +"translators and other contributors to I2P are non-programmers, and they " +"use monotone regularly. Monotone is simply a source control system, it is" +" not about \"coding\"." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:206 +msgid "" +"Our items to translate are not \"documents\". They are html files and po " +"files, with a specific format and character encoding (UTF-8) that must be" +" maintained, and not corrupted by email programs or other methods of " +"transfer." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:210 +msgid "" +"We looked at 'pootle' as a front-end for translators. It didn't work " +"well, needed an administrator, and a pootle-based process would suffer " +"from a number of the above flaws." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:215 +msgid "" +"In summary:\n" +"Yes, we know it is somewhat of a hurdle to get started. It's really the " +"only possible way we can do it. Give it a try, it really isn't that hard." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:220 +msgid "More Information" +msgstr "Další informace" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:221 +#, python-format +msgid "" +"The #i2p-dev channel on IRC, or the translation forum on %(zzz)s." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:2 +msgid "How to Set up a Reseed Server" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:3 +msgid "February 2017" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:6 +msgid "Overview" +msgstr "Přehled" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:8 +msgid "" +"Thank you for volunteering to run an I2P reseed server.\n" +"\"Reseeding\" is our term for bootstrapping new routers into the network." +"\n" +"New routers fetch a bundle of peer references, or \"router infos\", from " +"one or more of a hardcoded list of HTTPS URLs." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:14 +msgid "Requirements" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:16 +msgid "" +"At its simplest, a reseed server consists of a Java I2P router, an HTTPS " +"web server,\n" +"and some scripts that periodically gather router infos from the router,\n" +"bundle and sign them into a custom file format, and deliver these files " +"over HTTPS.\n" +"In practice, it's a bit more complex, and a reseed operator must be " +"fairly competent and attentive.\n" +"A reseed server is not appropriate for a residential internet connection." +" The complexities include:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:25 +msgid "" +"You must have a secure SSL setup with either a self-signed certificate or" +" a cert that chains up to a standard CA" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:28 +msgid "" +"The SSL configuration must conform to current best practices on allowed " +"ciphers and protocols, and the CN/SAN host name must match the URL" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:31 +msgid "" +"The scripts are designed to deliver different router info bundles to " +"different requestors for network diversity" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:34 +msgid "" +"The scripts are designed to deliver the same bundle to the same repeated " +"requestor to prevent scraping" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:37 +msgid "" +"The reseed servers are under periodic attacks and DDoS attempts, and from" +" other buggy I2P implementations and botnets.\n" +"This necessitates that you run fail2ban or an equivalent solution." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:43 +msgid "Information Required" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:45 +msgid "" +"When your setup is complete and ready for testing, we will need the HTTPS" +" URL,\n" +"the SSL public key certificate, and the \"su3\" bundle public key.\n" +"After testing is complete, these will be added to the hardcoded entries " +"in the Java and C++ routers in the next release,\n" +"and you will start seeing traffic.\n" +"We also will need your email address so we may continue to contact you " +"about reseed administration issues.\n" +"The email will not be made public but will be known to the other reseed " +"operators.\n" +"You should expect that your nick or name and its association with that " +"URL or IP will become public." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:55 +msgid "Privacy Policy" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:57 +msgid "" +"A reseed operator is a trusted role in the network.\n" +"While we do not yet have a formal privacy policy, you must ensure the " +"privacy of our users\n" +"by not publicizing logs or IPs found in those logs, except as necessary " +"to discuss administration issues with the I2P reseed team." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:63 +msgid "Financial Support" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:65 +msgid "" +"Modest financial support may be available to those running reseed " +"servers.\n" +"This support would be in partial reimbursement for your server costs.\n" +"Support will not be paid in advance and will probably not cover all your " +"expenses.\n" +"Support is only available to those who have been running reseed servers " +"in good standing for several months, and is based on actual need." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:72 +msgid "" +"If you would like to discuss support, please contact echelon and CC: " +"backup." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:77 +msgid "Getting Started" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:79 +msgid "" +"Our reseed coordinator is \"backup\" and he may be contacted at backup at" +" mail.i2p or backup at i2pmail.org.\n" +"Unfortunately, he is not generally on IRC. The reseed setup is somewhat " +"specialized, and you should direct most questions to him." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:84 +msgid "" +"For actual implementation, details below. We have one recommended reseed " +"solution:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:89 +msgid "" +"A Go implementation that includes the web server and all the scripts. " +"This is the recommended solution." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:95 +msgid "" +"For further information, read the information at the following links, and" +" then contact backup.\n" +"Thank you!" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:110 +msgid "Detailed Instructions" +msgstr "" + diff --git a/i2p2www/translations/id/LC_MESSAGES/blog.po b/i2p2www/translations/id/LC_MESSAGES/blog.po new file mode 100644 index 00000000..a004e09e --- /dev/null +++ b/i2p2www/translations/id/LC_MESSAGES/blog.po @@ -0,0 +1,8768 @@ +# Indonesian translations for I2P. +# Copyright (C) 2017 ORGANIZATION +# This file is distributed under the same license as the I2P project. +# +# Translators: +# Khairul Agasta , 2014 +msgid "" +msgstr "" +"Project-Id-Version: I2P\n" +"Report-Msgid-Bugs-To: http://trac.i2p2.de\n" +"POT-Creation-Date: 2017-09-08 12:53+0000\n" +"PO-Revision-Date: 2018-01-30 13:38+0000\n" +"Last-Translator: Robert Dafis \n" +"Language-Team: Indonesian (http://www.transifex.com/otf/I2P/language/id/)" +"\n" +"Plural-Forms: nplurals=1; plural=0\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 1.3\n" + +#: i2p2www/blog/2011/10/11/0.8.9-Release.rst:24 +#: i2p2www/blog/2011/10/20/0.8.10-Release.rst:11 +#: i2p2www/blog/2011/11/08/0.8.11-Release.rst:25 +#: i2p2www/blog/2012/01/06/0.8.12-Release.rst:12 +#: i2p2www/blog/2012/02/27/0.8.13-Release.rst:12 +#: i2p2www/blog/2012/05/02/0.9-Release.rst:17 +#: i2p2www/blog/2012/07/30/0.9.1-Release.rst:12 +#: i2p2www/blog/2012/09/21/0.9.2-Release.rst:16 +#: i2p2www/blog/2012/10/27/0.9.3-Release.rst:16 +#: i2p2www/blog/2012/12/17/0.9.4-Release.rst:26 +#: i2p2www/blog/2013/03/08/0.9.5-Release.rst:19 +#: i2p2www/blog/2013/05/28/0.9.6-Release.rst:19 +msgid "Files are available on the `download page`_." +msgstr "File sudah tersedia di `halaman unduhan`_." + +#: i2p2www/blog/2011/10/11/0.8.9-Release.rst:28 +#: i2p2www/blog/2011/10/20/0.8.10-Release.rst:15 +#: i2p2www/blog/2011/11/08/0.8.11-Release.rst:29 +#: i2p2www/blog/2012/01/06/0.8.12-Release.rst:16 +#: i2p2www/blog/2012/02/27/0.8.13-Release.rst:16 +#: i2p2www/blog/2012/05/02/0.9-Release.rst:21 +#: i2p2www/blog/2012/07/30/0.9.1-Release.rst:16 +#: i2p2www/blog/2012/09/21/0.9.2-Release.rst:20 +#: i2p2www/blog/2012/10/27/0.9.3-Release.rst:20 +#: i2p2www/blog/2012/12/17/0.9.4-Release.rst:30 +#: i2p2www/blog/2013/03/08/0.9.5-Release.rst:23 +#: i2p2www/blog/2013/05/28/0.9.6-Release.rst:23 +#: i2p2www/blog/2014/02/16/i2pbrowser-malware.rst:39 +msgid "`download page`" +msgstr "`halaman unduhan`" + +#: i2p2www/blog/2011/10/11/0.8.9-Release.rst:30 +#: i2p2www/blog/2011/10/20/0.8.10-Release.rst:17 +#: i2p2www/blog/2011/11/08/0.8.11-Release.rst:31 +#: i2p2www/blog/2012/01/06/0.8.12-Release.rst:18 +#: i2p2www/blog/2012/02/27/0.8.13-Release.rst:19 +#: i2p2www/blog/2012/07/30/0.9.1-Release.rst:18 +#: i2p2www/blog/2012/09/21/0.9.2-Release.rst:22 +#: i2p2www/blog/2012/10/27/0.9.3-Release.rst:22 +#: i2p2www/blog/2012/12/17/0.9.4-Release.rst:32 +#: i2p2www/blog/2013/03/08/0.9.5-Release.rst:25 +#: i2p2www/blog/2013/05/28/0.9.6-Release.rst:79 +#: i2p2www/blog/2013/07/15/0.9.7-Release.rst:45 +#: i2p2www/blog/2013/08/10/0.9.7.1-Release.rst:13 +#: i2p2www/blog/2013/09/30/0.9.8-Release.rst:101 +#: i2p2www/blog/2013/12/07/0.9.9-Release.rst:26 +#: i2p2www/blog/2014/01/21/Syndie-1.105b-Release.rst:48 +#: i2p2www/blog/2014/01/22/0.9.10-Release.rst:34 +#: i2p2www/blog/2014/02/08/0.9.11-Release.rst:35 +#: i2p2www/blog/2014/03/31/0.9.12-Release.rst:65 +#: i2p2www/blog/2014/05/22/0.9.13-Release.rst:29 +#: i2p2www/blog/2014/07/26/0.9.14-Release.rst:37 +#: i2p2www/blog/2014/08/09/0.9.14.1-Release.rst:32 +#: i2p2www/blog/2014/09/20/0.9.15-Release.rst:38 +#: i2p2www/blog/2014/11/01/0.9.16-Release.rst:36 +#: i2p2www/blog/2014/11/30/0.9.17-Release.rst:43 +#: i2p2www/blog/2015/02/22/0.9.18-Release.rst:27 +#: i2p2www/blog/2015/04/12/0.9.19-Release.rst:30 +#: i2p2www/blog/2015/06/02/0.9.20-Release.rst:44 +#: i2p2www/blog/2015/07/31/0.9.21-Release.rst:36 +#: i2p2www/blog/2015/09/12/0.9.22-Release.rst:34 +#: i2p2www/blog/2015/11/19/0.9.23-Release.rst:73 +#: i2p2www/blog/2016/01/27/0.9.24-Release.rst:53 +#: i2p2www/blog/2016/03/22/0.9.25-Release.rst:35 +#: i2p2www/blog/2016/06/07/0.9.26-Release.rst:54 +#: i2p2www/blog/2016/10/17/0.9.27-Release.rst:33 +#: i2p2www/blog/2016/12/12/0.9.28-Release.rst:35 +#: i2p2www/blog/2017/02/27/0.9.29-Release.rst:32 +#: i2p2www/blog/2017/05/03/0.9.30-Release.rst:56 +#: i2p2www/blog/2017/08/07/0.9.31-Release.rst:32 +msgid "RELEASE DETAILS" +msgstr "RINCIAN RILIS" + +#: i2p2www/blog/2011/10/11/0.8.9-Release.rst:32 +#: i2p2www/blog/2011/10/20/0.8.10-Release.rst:19 +#: i2p2www/blog/2011/11/08/0.8.11-Release.rst:33 +#: i2p2www/blog/2012/02/27/0.8.13-Release.rst:40 +#: i2p2www/blog/2012/05/02/0.9-Release.rst:50 +#: i2p2www/blog/2012/09/21/0.9.2-Release.rst:24 +#: i2p2www/blog/2012/10/27/0.9.3-Release.rst:24 +#: i2p2www/blog/2012/12/17/0.9.4-Release.rst:34 +#: i2p2www/blog/2013/09/30/0.9.8-Release.rst:103 +msgid "Major Changes" +msgstr "Perubahan Besar" + +#: i2p2www/blog/2011/10/11/0.8.9-Release.rst:44 +#: i2p2www/blog/2011/10/20/0.8.10-Release.rst:24 +#: i2p2www/blog/2011/11/08/0.8.11-Release.rst:43 +#: i2p2www/blog/2012/01/06/0.8.12-Release.rst:55 +#: i2p2www/blog/2012/02/27/0.8.13-Release.rst:47 +#: i2p2www/blog/2012/05/02/0.9-Release.rst:58 +#: i2p2www/blog/2012/07/30/0.9.1-Release.rst:43 +#: i2p2www/blog/2012/09/21/0.9.2-Release.rst:32 +#: i2p2www/blog/2012/10/27/0.9.3-Release.rst:30 +#: i2p2www/blog/2012/12/17/0.9.4-Release.rst:39 +#: i2p2www/blog/2013/05/28/0.9.6-Release.rst:81 +#: i2p2www/blog/2013/07/15/0.9.7-Release.rst:54 +#: i2p2www/blog/2013/09/30/0.9.8-Release.rst:112 +#: i2p2www/blog/2013/12/07/0.9.9-Release.rst:34 +#: i2p2www/blog/2014/01/21/Syndie-1.105b-Release.rst:51 +#: i2p2www/blog/2014/01/22/0.9.10-Release.rst:40 +#: i2p2www/blog/2014/02/08/0.9.11-Release.rst:41 +#: i2p2www/blog/2014/03/31/0.9.12-Release.rst:76 +#: i2p2www/blog/2014/05/22/0.9.13-Release.rst:39 +#: i2p2www/blog/2014/07/26/0.9.14-Release.rst:50 +#: i2p2www/blog/2014/08/09/0.9.14.1-Release.rst:35 +#: i2p2www/blog/2014/09/20/0.9.15-Release.rst:51 +#: i2p2www/blog/2014/11/01/0.9.16-Release.rst:55 +#: i2p2www/blog/2014/11/30/0.9.17-Release.rst:53 +#: i2p2www/blog/2015/02/22/0.9.18-Release.rst:30 +#: i2p2www/blog/2015/04/12/0.9.19-Release.rst:40 +#: i2p2www/blog/2015/06/02/0.9.20-Release.rst:57 +#: i2p2www/blog/2015/07/31/0.9.21-Release.rst:52 +#: i2p2www/blog/2015/09/12/0.9.22-Release.rst:42 +#: i2p2www/blog/2015/11/19/0.9.23-Release.rst:80 +#: i2p2www/blog/2016/01/27/0.9.24-Release.rst:63 +#: i2p2www/blog/2016/03/22/0.9.25-Release.rst:47 +#: i2p2www/blog/2016/06/07/0.9.26-Release.rst:71 +#: i2p2www/blog/2016/10/17/0.9.27-Release.rst:43 +#: i2p2www/blog/2016/12/12/0.9.28-Release.rst:47 +#: i2p2www/blog/2017/02/27/0.9.29-Release.rst:48 +#: i2p2www/blog/2017/05/03/0.9.30-Release.rst:68 +#: i2p2www/blog/2017/08/07/0.9.31-Release.rst:41 +msgid "Bug Fixes" +msgstr "Perbaikan Bug" + +#: i2p2www/blog/2011/10/11/0.8.9-Release.rst:54 +#: i2p2www/blog/2011/10/20/0.8.10-Release.rst:30 +#: i2p2www/blog/2011/11/08/0.8.11-Release.rst:47 +#: i2p2www/blog/2012/01/06/0.8.12-Release.rst:69 +#: i2p2www/blog/2012/02/27/0.8.13-Release.rst:63 +#: i2p2www/blog/2012/05/02/0.9-Release.rst:68 +#: i2p2www/blog/2012/07/30/0.9.1-Release.rst:54 +#: i2p2www/blog/2012/09/21/0.9.2-Release.rst:41 +#: i2p2www/blog/2012/10/27/0.9.3-Release.rst:36 +#: i2p2www/blog/2012/12/17/0.9.4-Release.rst:51 +#: i2p2www/blog/2013/03/08/0.9.5-Release.rst:43 +#: i2p2www/blog/2013/05/28/0.9.6-Release.rst:94 +#: i2p2www/blog/2013/07/15/0.9.7-Release.rst:63 +#: i2p2www/blog/2013/08/10/0.9.7.1-Release.rst:19 +#: i2p2www/blog/2013/09/30/0.9.8-Release.rst:118 +#: i2p2www/blog/2013/12/07/0.9.9-Release.rst:52 +#: i2p2www/blog/2014/01/21/Syndie-1.105b-Release.rst:99 +#: i2p2www/blog/2014/01/22/0.9.10-Release.rst:49 +#: i2p2www/blog/2014/02/08/0.9.11-Release.rst:47 +#: i2p2www/blog/2014/03/31/0.9.12-Release.rst:87 +#: i2p2www/blog/2014/05/22/0.9.13-Release.rst:49 +#: i2p2www/blog/2014/07/26/0.9.14-Release.rst:57 +#: i2p2www/blog/2014/08/09/0.9.14.1-Release.rst:42 +#: i2p2www/blog/2014/09/20/0.9.15-Release.rst:60 +#: i2p2www/blog/2014/11/01/0.9.16-Release.rst:68 +#: i2p2www/blog/2014/11/30/0.9.17-Release.rst:65 +#: i2p2www/blog/2015/02/22/0.9.18-Release.rst:38 +#: i2p2www/blog/2015/04/12/0.9.19-Release.rst:49 +#: i2p2www/blog/2015/06/02/0.9.20-Release.rst:75 +#: i2p2www/blog/2015/07/31/0.9.21-Release.rst:65 +#: i2p2www/blog/2015/09/12/0.9.22-Release.rst:50 +#: i2p2www/blog/2015/11/19/0.9.23-Release.rst:89 +#: i2p2www/blog/2016/01/27/0.9.24-Release.rst:76 +#: i2p2www/blog/2016/03/22/0.9.25-Release.rst:53 +#: i2p2www/blog/2016/06/07/0.9.26-Release.rst:83 +#: i2p2www/blog/2016/10/17/0.9.27-Release.rst:58 +#: i2p2www/blog/2016/12/12/0.9.28-Release.rst:57 +#: i2p2www/blog/2017/02/27/0.9.29-Release.rst:62 +#: i2p2www/blog/2017/05/03/0.9.30-Release.rst:82 +#: i2p2www/blog/2017/08/07/0.9.31-Release.rst:54 +msgid "Other" +msgstr "Lainnya" + +#: i2p2www/blog/2011/10/11/0.8.9-Release.rst:73 +#: i2p2www/blog/2011/10/20/0.8.10-Release.rst:36 +#: i2p2www/blog/2011/11/08/0.8.11-Release.rst:51 +#: i2p2www/blog/2012/01/06/0.8.12-Release.rst:82 +#: i2p2www/blog/2012/02/27/0.8.13-Release.rst:75 +#: i2p2www/blog/2012/05/02/0.9-Release.rst:96 +#: i2p2www/blog/2012/07/30/0.9.1-Release.rst:76 +#: i2p2www/blog/2012/09/21/0.9.2-Release.rst:52 +#: i2p2www/blog/2012/10/27/0.9.3-Release.rst:56 +#: i2p2www/blog/2012/12/17/0.9.4-Release.rst:67 +#: i2p2www/blog/2013/03/08/0.9.5-Release.rst:56 +#: i2p2www/blog/2013/05/28/0.9.6-Release.rst:110 +#: i2p2www/blog/2013/07/15/0.9.7-Release.rst:79 +#: i2p2www/blog/2013/08/10/0.9.7.1-Release.rst:30 +#: i2p2www/blog/2013/09/30/0.9.8-Release.rst:129 +#: i2p2www/blog/2013/10/02/0.9.8.1-Release.rst:27 +#: i2p2www/blog/2013/12/07/0.9.9-Release.rst:76 +#: i2p2www/blog/2014/01/22/0.9.10-Release.rst:64 +#: i2p2www/blog/2014/02/08/0.9.11-Release.rst:59 +#: i2p2www/blog/2014/03/31/0.9.12-Release.rst:104 +#: i2p2www/blog/2014/05/22/0.9.13-Release.rst:62 +#: i2p2www/blog/2014/07/26/0.9.14-Release.rst:73 +#: i2p2www/blog/2014/08/09/0.9.14.1-Release.rst:52 +#: i2p2www/blog/2014/09/20/0.9.15-Release.rst:76 +#: i2p2www/blog/2014/11/01/0.9.16-Release.rst:86 +#: i2p2www/blog/2014/11/30/0.9.17-Release.rst:81 +#: i2p2www/blog/2015/02/22/0.9.18-Release.rst:61 +#: i2p2www/blog/2015/04/12/0.9.19-Release.rst:69 +#: i2p2www/blog/2015/06/02/0.9.20-Release.rst:101 +#: i2p2www/blog/2015/07/31/0.9.21-Release.rst:75 +#: i2p2www/blog/2015/09/12/0.9.22-Release.rst:56 +#: i2p2www/blog/2015/11/19/0.9.23-Release.rst:115 +#: i2p2www/blog/2016/01/27/0.9.24-Release.rst:105 +#: i2p2www/blog/2016/03/22/0.9.25-Release.rst:76 +#: i2p2www/blog/2016/06/07/0.9.26-Release.rst:96 +#: i2p2www/blog/2016/10/17/0.9.27-Release.rst:73 +#: i2p2www/blog/2016/12/12/0.9.28-Release.rst:103 +#: i2p2www/blog/2017/02/27/0.9.29-Release.rst:77 +#: i2p2www/blog/2017/03/04/0.9.29-Windows-Installer-Fix.rst:25 +#: i2p2www/blog/2017/05/03/0.9.30-Release.rst:102 +#: i2p2www/blog/2017/08/07/0.9.31-Release.rst:69 +msgid "SHA256 Checksums:" +msgstr "Checksum SHA256:" + +#: i2p2www/blog/2012/01/06/0.8.12-Release.rst:39 +msgid "Major changes" +msgstr "Perubahan besar" + +#: i2p2www/blog/2012/01/06/0.8.12-Release.rst:47 +msgid "Wrapper Update" +msgstr "Pembaruan Wrapper" + +#: i2p2www/blog/2012/05/02/0.9-Release.rst:23 +msgid "Update Info" +msgstr "Info Pembaruan" + +#: i2p2www/blog/2012/09/21/0.9.2-Release.rst:2 +msgid "0.9.2 Release" +msgstr "0.9.2 Rilis" + +#: i2p2www/blog/2012/09/21/0.9.2-Release.rst:7 +#: i2p2www/blog/2012/09/21/0.9.2-Release.rst:9 +msgid "" +"0.9.2 includes extensive low-level changes to improve the performance and" +" efficiency of the router. We have updated our UPnP library, to hopefully" +" make UPnP work for more people. I2PSnark now has DHT support, but it is " +"not yet enabled by default, as we plan to do more testing during the " +"upcoming 0.9.3 development cycle." +msgstr "" +"0.9.2 mencakup perubahan tingkat rendah yang luas untuk meningkatkan " +"kinerja dan efisiensi router. Kami telah memperbarui library UPnP kami, " +"mudah-mudahan ini membuat UPnP bekerja untuk orang lebih banyak. I2PSnark" +" sekarang memiliki dukungan DHT, tetapi itu tidak belum diaktifkan secara" +" default, karena kami rencanakan untuk melakukan pengujian lagi selama " +"siklus pengembangan 0.9.3 mendatang." + +#: i2p2www/blog/2012/09/21/0.9.2-Release.rst:12 +#: i2p2www/blog/2012/10/27/0.9.3-Release.rst:12 +msgid "" +"As usual, there's also lots of bug fixes in this release, so updating is " +"recommended." +msgstr "" +"Seperti biasa, ada banyak bug untuk diperbaiki pada rilis ini, jadi " +"pembaruan sangat direkomendasikan." + +#: i2p2www/blog/2012/09/21/0.9.2-Release.rst:26 +msgid "" +"SSU: Fix several problems in our UDP transport, to improve efficiency and" +" reliability for connection setup. Also improve defenses against various " +"types of bad input." +msgstr "" +"SSU: Memperbaiki beberapa masalah pada transport UDP kami, untuk " +"meningkatkan efisiensi dan kehandalan untuk setup koneksi. Juga " +"meningkatkan pertahanan terhadap beragam jenis input yang buruk." + +#: i2p2www/blog/2012/09/21/0.9.2-Release.rst:27 +msgid "" +"UPnP: Updated our library to fix several issues, should work for more " +"routers now" +msgstr "" +"UPnP: Memperbarui pustaka kami untuk memperbaiki beberapa masalah, akan " +"bekerja pada lebih banyak router sekarang." + +#: i2p2www/blog/2012/09/21/0.9.2-Release.rst:28 +msgid "" +"Transport: Improve performance in both our TCP and UDP transports, to " +"benefit high-bandwidth routers" +msgstr "" +"Transport: Meningkatkan kinerja pada kedua transport TCP dan UDP kami, " +"untuk menikmati router dengan bandwidth tinggi" + +#: i2p2www/blog/2012/09/21/0.9.2-Release.rst:29 +msgid "" +"Crypto: The thresholds and number of ElGamal/AES Session Tags delivered " +"are now much more flexible, which should lessen protocol overhead and " +"reduce stalls caused by dropped tags." +msgstr "" +"Crypto: Ambang batas dan jumlah ElGamal/AES Session Tags yang dikirimkan " +"kini lebih fleksibel, yang seharusnya mengurangi overhead pada protokol " +"dan mengurangi stall yang disebabkan oleh tags yang menurun." + +#: i2p2www/blog/2012/09/21/0.9.2-Release.rst:30 +msgid "" +"I2PSnark: Add DHT support, not yet enabled by default, will do further " +"testing and plan to enable by default in 0.9.3." +msgstr "" +"I2PSnark: Menambahkan dukungan DHT, tidak diaktifkan secara default, akan" +" melakukan pengujian lebih lanjut dan berencana untuk mengaktifkannya " +"secara default di 0.9.3." + +#: i2p2www/blog/2012/09/21/0.9.2-Release.rst:34 +msgid "" +"Fix various issues affecting memory usage and performance on high-" +"bandwidth routers" +msgstr "" +"Perbaikan beragam masalah yang mempengaruhi penggunaan memori dan kinerja" +" pada router dengan bandwidth tinggi" + +#: i2p2www/blog/2012/09/21/0.9.2-Release.rst:35 +msgid "Fix problems in UDP for routers using a reduced-MTU connection, e.g. a VPN" +msgstr "" +"Perbaikan masalahn pada UDP untuk router yang menggunakan koneksi " +"pengurangan MTU, misalnya VPN" + +#: i2p2www/blog/2012/09/21/0.9.2-Release.rst:36 +msgid "Fix i2psnark bug that prevented a completion announcement to the tracker" +msgstr "" +"Memperbaiki bug i2psnark yang mencegah sebuah penyelesaian pengumuman ke " +"tracker" + +#: i2p2www/blog/2012/09/21/0.9.2-Release.rst:37 +msgid "Fix a lock contention problem in i2ptunnel" +msgstr "Memperbaiki masalah lock contention di i2ptunnel" + +#: i2p2www/blog/2012/09/21/0.9.2-Release.rst:38 +msgid "Fix some OSX installation issues" +msgstr "Memperbaiki beberapa masalah instalasi OSX" + +#: i2p2www/blog/2012/09/21/0.9.2-Release.rst:39 +msgid "Remove uses of direct byte buffers that may have been leaking" +msgstr "Menghapus penggunaan langsung byte buffer yang mungkin bocor" + +#: i2p2www/blog/2012/09/21/0.9.2-Release.rst:43 +msgid "Reduce overhead in network messages" +msgstr "Mengurangi overhead dalam jaringan pesan" + +#: i2p2www/blog/2012/09/21/0.9.2-Release.rst:44 +msgid "Add \"universal\" theme support" +msgstr "Menambahkan dukungan tema \"universal\"" + +#: i2p2www/blog/2012/09/21/0.9.2-Release.rst:45 +msgid "Theme updates" +msgstr "Pembaruan tema" + +#: i2p2www/blog/2012/09/21/0.9.2-Release.rst:46 +msgid "Add a jbigi library for Raspberry Pi" +msgstr "Menambahkan sebuah library jbigi untuk Raspberry Pi" + +#: i2p2www/blog/2012/09/21/0.9.2-Release.rst:47 +msgid "New Scala unit test framework" +msgstr "Kerangka unit tes Scala baru" + +#: i2p2www/blog/2012/09/21/0.9.2-Release.rst:48 +msgid "Translation updates for Czech, Dutch, German, and Greek" +msgstr "Pembaruan Terjemahan untuk bahasa Ceko, Belanda, Jerman, dan Yunani" + +#: i2p2www/blog/2012/09/21/0.9.2-Release.rst:49 +msgid "Update wrapper to 3.5.15 (new installs and PPA only)" +msgstr "Pembaruan wrapper ke 3.5.15 (hanya untuk instalasi baru dan PPA)" + +#: i2p2www/blog/2012/09/21/0.9.2-Release.rst:50 +#: i2p2www/blog/2012/10/27/0.9.3-Release.rst:53 +#: i2p2www/blog/2012/12/17/0.9.4-Release.rst:63 +#: i2p2www/blog/2013/03/08/0.9.5-Release.rst:53 +#: i2p2www/blog/2013/05/28/0.9.6-Release.rst:108 +#: i2p2www/blog/2013/07/15/0.9.7-Release.rst:77 +#: i2p2www/blog/2013/09/30/0.9.8-Release.rst:127 +#: i2p2www/blog/2013/12/07/0.9.9-Release.rst:74 +#: i2p2www/blog/2014/01/22/0.9.10-Release.rst:62 +#: i2p2www/blog/2014/02/08/0.9.11-Release.rst:57 +#: i2p2www/blog/2014/03/31/0.9.12-Release.rst:100 +#: i2p2www/blog/2014/05/22/0.9.13-Release.rst:58 +#: i2p2www/blog/2014/07/26/0.9.14-Release.rst:70 +#: i2p2www/blog/2014/08/09/0.9.14.1-Release.rst:49 +#: i2p2www/blog/2014/11/01/0.9.16-Release.rst:83 +#: i2p2www/blog/2014/11/30/0.9.17-Release.rst:78 +#: i2p2www/blog/2015/02/22/0.9.18-Release.rst:58 +#: i2p2www/blog/2015/04/12/0.9.19-Release.rst:66 +#: i2p2www/blog/2015/06/02/0.9.20-Release.rst:96 +#: i2p2www/blog/2015/07/31/0.9.21-Release.rst:72 +#: i2p2www/blog/2015/09/12/0.9.22-Release.rst:53 +#: i2p2www/blog/2015/11/19/0.9.23-Release.rst:112 +#: i2p2www/blog/2016/01/27/0.9.24-Release.rst:97 +#: i2p2www/blog/2016/03/22/0.9.25-Release.rst:68 +#: i2p2www/blog/2016/06/07/0.9.26-Release.rst:88 +#: i2p2www/blog/2016/10/17/0.9.27-Release.rst:65 +#: i2p2www/blog/2016/12/12/0.9.28-Release.rst:95 +#: i2p2www/blog/2017/02/27/0.9.29-Release.rst:69 +#: i2p2www/blog/2017/05/03/0.9.30-Release.rst:94 +#: i2p2www/blog/2017/08/07/0.9.31-Release.rst:60 +msgid "Update GeoIP data (new installs and PPA only)" +msgstr "Perbaruan data GeoIP (hanya instalasi dan PPA baru)" + +#: i2p2www/blog/2012/10/27/0.9.3-Release.rst:2 +msgid "0.9.3 Release" +msgstr "0.9.3 Rilis" + +#: i2p2www/blog/2012/10/27/0.9.3-Release.rst:7 +#: i2p2www/blog/2012/10/27/0.9.3-Release.rst:9 +msgid "" +"0.9.3 includes extensive low-level changes to the queueing of messages in" +" the router. We implement the CoDel Active Queue Management (AQM) " +"algorithm. We also unify the queueing and priority mechanisms in the " +"transports to aid diagnosis and reduce network latency. Work continues " +"on fixing UDP transport bugs and making UDP more resistant to attacks. " +"There are more changes to improve the performance of the router and " +"reduce its memory usage. Also, we enable i2psnark's DHT support, " +"introduced last release, by default." +msgstr "" +"0.9.3 termasuk perubahan tingkat rendah yang luas untuk antrian pesan di " +"router. Kami menerapkan algoritma Active Queue Management (AQM) CoDel. " +"Kami juga menyatukan mekanisme antrian dan prioritas di dalam transport " +"untuk membantu diagnosis dan mengurangi latensi jaringan. Usaha terus " +"dilakukan untuk memperbaiki bug UDP transport dan membuat UDP lebih tahan" +" terhadap serangan. Ada lebih banyak perubahan untuk meningkatkan " +"kinerja router dan mengurangi penggunaan memori. Selain itu, kami " +"memungkinkan dukungan i2psnark's DHT, yang diperkenalkan di rilis " +"terakhir, secara default." + +#: i2p2www/blog/2012/10/27/0.9.3-Release.rst:26 +msgid "Active Queue Management" +msgstr "Active Queue Management " + +#: i2p2www/blog/2012/10/27/0.9.3-Release.rst:27 +msgid "Priority queues" +msgstr "Antrian prioritas" + +#: i2p2www/blog/2012/10/27/0.9.3-Release.rst:28 +msgid "I2PSnark DHT: Several bug fixes, enable by default." +msgstr "I2PSnark DHT: beberapa perbaikan bug, diaktifkan secara default." + +#: i2p2www/blog/2012/10/27/0.9.3-Release.rst:32 +msgid "" +"Several SSU fixes including memory leak, and better handling of routers " +"behind firewalls that change UDP ports; additional defenses for malicious" +" packets." +msgstr "" +"Beberapa perbaikan SSU termasuk kebocoran memori, dan penanganan yang " +"lebih baik dari router yang berada di belakang firewall yang mengubah " +"port UDP; Pertahanan tambahan untuk paket-paket yang berbahaya." + +#: i2p2www/blog/2012/10/27/0.9.3-Release.rst:33 +msgid "Fix piece selection (rarest-first) bugs in i2psnark" +msgstr "Memperbaiki bug seleksi potongan (paling langka - pertama) di i2psnark" + +#: i2p2www/blog/2012/10/27/0.9.3-Release.rst:34 +msgid "Fix bug causing multiple browsers to open at startup" +msgstr "" +"Memperbaiki bug yang menyebabkan banyak peramban atau browser terbuka " +"pada saat startup" + +#: i2p2www/blog/2012/10/27/0.9.3-Release.rst:38 +msgid "Improvements in caching" +msgstr "Perbaikan dalam cache" + +#: i2p2www/blog/2012/10/27/0.9.3-Release.rst:39 +msgid "Several synchronization fixes and lock contention reduction" +msgstr "Beberapa perbaikan sinkronisasi dan pengurangan lock contention" + +#: i2p2www/blog/2012/10/27/0.9.3-Release.rst:40 +msgid "Major reduction in SSU buffers memory use" +msgstr "Pengurangan besar di penggunaan buffer SSU" + +#: i2p2www/blog/2012/10/27/0.9.3-Release.rst:41 +msgid "" +"Fix streaming connection timeout back to 1 minute, was inadvertently " +"changed to 5 minutes; set i2ptunnel server read timeout to 5 minutes, was" +" unlimited" +msgstr "" +"Memperbaiki timeout koneksi streaming kembali ke 1 menit, yang pernah " +"tanpa sengaja terubah ke 5 menit; menentukan server i2ptunnel read " +"timeout sampai 5 menit, menjadi tidak terbatas" + +#: i2p2www/blog/2012/10/27/0.9.3-Release.rst:42 +msgid "Improved defenses in i2ptunnel for \"darkloris\"" +msgstr "Peningkatan pertahanan i2ptunnel untuk \"darkloris\"" + +#: i2p2www/blog/2012/10/27/0.9.3-Release.rst:43 +msgid "More validation at torrent creation in i2psnark" +msgstr "Validasi lebih pada penciptaan torrent di i2psnark" + +#: i2p2www/blog/2012/10/27/0.9.3-Release.rst:44 +msgid "Several parameter changes in SSU to improve throughput" +msgstr "Beberapa perubahan parameter dalam SSU untuk meningkatkan throughput" + +#: i2p2www/blog/2012/10/27/0.9.3-Release.rst:45 +msgid "" +"New event log for major events including restarts; show multiple restart " +"lines on graphs" +msgstr "" +"Log peristiwa baru untuk event besar termasuk restart; menampilkan lebih " +"banyak baris restart di grafik " + +#: i2p2www/blog/2012/10/27/0.9.3-Release.rst:46 +msgid "Remove duplicate messages from logs" +msgstr "Menghapus pesan duplikat dari log" + +#: i2p2www/blog/2012/10/27/0.9.3-Release.rst:47 +msgid "Don't respond to blocked streaming connections with a reset, just drop" +msgstr "" +"Tidak menanggapi koneksi streaming yang diblokir dengan reset, langsung " +"di-drop" + +#: i2p2www/blog/2012/10/27/0.9.3-Release.rst:48 +msgid "Remove all uses of inefficient SimpleTimer" +msgstr "Menghapus semua penggunaan SimpleTimer yang tidak efisien " + +#: i2p2www/blog/2012/10/27/0.9.3-Release.rst:49 +msgid "More checks for valid IPs and ports entered in console" +msgstr "Memeriksa lebih untuk IP dan port yang valid yang dimasukkan di console" + +#: i2p2www/blog/2012/10/27/0.9.3-Release.rst:50 +msgid "Fix bug that wasted a lot of entropy" +msgstr "Memperbaiki bug yang menyia-nyiakan banyak entropi" + +#: i2p2www/blog/2012/10/27/0.9.3-Release.rst:51 +msgid "Translation updates: Italian, Portuguese, Spanish, Swedish" +msgstr "Pembaruan terjemahan: Italia, Portugis, Spanyol, Swedia" + +#: i2p2www/blog/2012/10/27/0.9.3-Release.rst:52 +msgid "Add non-NIO configuration in jetty.xml, recommended for Java 5" +msgstr "Menambahkan konfigurasi non-NIO di jetty.xml, yang dianjurkan untuk Java 5" + +#: i2p2www/blog/2012/12/17/0.9.4-Release.rst:2 +msgid "0.9.4 Release" +msgstr "0.9.4 Rilis" + +#: i2p2www/blog/2012/12/17/0.9.4-Release.rst:7 +#: i2p2www/blog/2012/12/17/0.9.4-Release.rst:9 +msgid "" +"0.9.4 includes a fix for a network capacity bug, introduced in 0.9.2, " +"that was reducing network performance and reliability. It also includes " +"major changes in the in-network update system, and adds the capability to" +" update via in-network torrents." +msgstr "" +"0.9.4 termasuk memperbaiki bug kapasitas jaringan, yang diperkenalkan di " +"0.9.2, yang mengurangi kinerja dan kehandalan jaringan. Juga mencakup " +"perubahan besar dalam sistem pembaruan di jaringan, dan menambahkan " +"kemampuan untuk update melalui dalam jaringan torrent." + +#: i2p2www/blog/2012/12/17/0.9.4-Release.rst:13 +msgid "" +"We fixed several bugs in the i2psnark DHT implementation that was " +"introduced\n" +"last release. For those of you using console or http proxy passwords,\n" +"we converted to the more-secure digest method and improved the security " +"for console forms." +msgstr "" +"Kami memperbaiki beberapa bug di implementasi i2psnark DHT yang " +"diperkenalkan di rilis terakhir. Bagi Anda yang menggunakan console atau " +"http proxy password, kami mengubahnya ke metode digest yang lebih aman " +"dan meningkatkan keamanan untuk console form." + +#: i2p2www/blog/2012/12/17/0.9.4-Release.rst:19 +msgid "" +"For those of you already running development builds, your router should " +"automatically\n" +"update to 0.9.4-0 using the new in-network torrent facility.\n" +"For those running 0.9.3-0, you will update normally using in-network " +"HTTP, and\n" +"we will have more information for you when we release 0.9.5." +msgstr "" +"Bagi Anda yang telah menjalankan development built, router Anda harus " +"secara otomatis update ke 0.9.4-0 menggunakan fasilitas baru di jaringan " +"torrent.\n" +"Untuk orang-orang yang menjalankan versi 0.9.3-0, Anda akan memperbarui " +"seperti biasa menggunakan HTTP dalam jaringan, dan kami akan memiliki " +"lebih banyak informasi untuk Anda ketika kami merilis versi 0.9.5." + +#: i2p2www/blog/2012/12/17/0.9.4-Release.rst:36 +msgid "" +"Big rework of the update system; Preliminary support for updates via " +"i2psnark" +msgstr "" +"Pembaruan besar di sistem pembaruan; Dukungan awal untuk update melalui " +"i2psnark" + +#: i2p2www/blog/2012/12/17/0.9.4-Release.rst:37 +msgid "Add per-destination outbound priorities" +msgstr "Menambahkan prioritas keluar per-destinasi" + +#: i2p2www/blog/2012/12/17/0.9.4-Release.rst:41 +msgid "" +"Fix major bug that reduced SSU connection limits which reduced tunnel " +"build success rates" +msgstr "" +"Memperbaiki bug besar yang mengurangi batas koneksi SSU, yang mengurangi " +"tingkat keberhasilan membangun tunnel" + +#: i2p2www/blog/2012/12/17/0.9.4-Release.rst:42 +msgid "Fix bug with external I2CP that prevented some external apps from working" +msgstr "" +"Memperbaiki bug dengan I2CP eksternal yang mencegah beberapa aplikasi " +"eksternal untuk berfungsi" + +#: i2p2www/blog/2012/12/17/0.9.4-Release.rst:43 +msgid "Fixed several bugs in i2psnark DHT" +msgstr "Memperbaiki beberapa bug di i2psnark DHT" + +#: i2p2www/blog/2012/12/17/0.9.4-Release.rst:44 +msgid "Fixed bug in i2psnark PEX that inflated peer counts" +msgstr "Memperbaiki bug di i2psnark PEX yang membesarbesarkan jumlah peer" + +#: i2p2www/blog/2012/12/17/0.9.4-Release.rst:45 +msgid "Handle dropped I2CP messages better" +msgstr "Handle menolak pesan-pesan I2Cp secara lebih baik" + +#: i2p2www/blog/2012/12/17/0.9.4-Release.rst:46 +msgid "Reduce overhead of I2CP messages" +msgstr "Mengurangi overhead pesan I2CP" + +#: i2p2www/blog/2012/12/17/0.9.4-Release.rst:47 +msgid "Enforce max size in transport outbound message queues" +msgstr "Menegakkan ukuran maksimum di dalam antrian transport pesan keluar" + +#: i2p2www/blog/2012/12/17/0.9.4-Release.rst:48 +msgid "Fixes for Windows eepget.bat (new installs and PPA only)" +msgstr "Memperbaiki Windows eepget.bat (hanya untuk instalasi dan PPA baru)" + +#: i2p2www/blog/2012/12/17/0.9.4-Release.rst:49 +msgid "Fix a bug that would drop messages of exactly 512 bytes in SSU" +msgstr "Memperbaiki bug yang akan menolak pesan tepat sebesar 512 byte di SSU" + +#: i2p2www/blog/2012/12/17/0.9.4-Release.rst:53 +msgid "" +"More performance improvements, memory reduction, and object churn " +"reduction" +msgstr "" +"Peningkatan kinerja lebih banyak, pengurangan penurunan memori dan objek " +"churn" + +#: i2p2www/blog/2012/12/17/0.9.4-Release.rst:54 +msgid "Better detection of network disconnections" +msgstr "Deteksi lebih baik untuk koneksi jaringan yang terputus" + +#: i2p2www/blog/2012/12/17/0.9.4-Release.rst:55 +msgid "Further improvements in the SSU transport" +msgstr "Penyempurnaan lebih jauh dalam transport SSU" + +#: i2p2www/blog/2012/12/17/0.9.4-Release.rst:56 +msgid "Add console password form" +msgstr "Menambahkan formulir password di console" + +#: i2p2www/blog/2012/12/17/0.9.4-Release.rst:57 +msgid "" +"Convert http proxy and console from basic to digest authentication for " +"added security" +msgstr "" +"Mengkonversi http proxy dan console form basic ke otentikasi digest untuk" +" keamanan tambahan" + +#: i2p2www/blog/2012/12/17/0.9.4-Release.rst:58 +msgid "" +"Improved verification of console form submissions, using jsp sessions. " +"Cookies may now be required on forms, except when the console password is" +" enabled" +msgstr "" +"Meningkatkan verifikasi untuk penyerahan formulir consile, menggunakan " +"sesi jsp. Cookie sekarang mungkin diperlukan untuk formulir, kecuali " +"ketika password console diaktifkan" + +#: i2p2www/blog/2012/12/17/0.9.4-Release.rst:59 +msgid "" +"Initial work on new interfaces to manage applications started via " +"clients.config" +msgstr "" +"Pembuatan antarmuka baru untuk mengatur aplikasi, dimulai melalui " +"clients.config" + +#: i2p2www/blog/2012/12/17/0.9.4-Release.rst:60 +msgid "Increase minimum peer port to 1024" +msgstr "Meningkatkan port peer minimum menjadi 1024" + +#: i2p2www/blog/2012/12/17/0.9.4-Release.rst:61 +msgid "Increase granularity of bandwidth limiter for smoother transmissions" +msgstr "Meningkatkan granularity bandwidth limiter untuk transmisi lebih halus" + +#: i2p2www/blog/2012/12/17/0.9.4-Release.rst:62 +msgid "" +"Translation updates: Chinese, French, German, Italian, Polish, " +"Portuguese, Swedish, and Ukrainian" +msgstr "" +"Pembaruan terjemahan: Mandarin, Perancis, Jerman, Italia, Polandia, " +"Portugis, Swedia, dan Ukraina" + +#: i2p2www/blog/2012/12/17/0.9.4-Release.rst:64 +msgid "Update wrapper to 3.5.16 (new installs and PPA only)" +msgstr "Update wrapper ke 3.5.16 (hanya untuk install baru dan PPA)" + +#: i2p2www/blog/2012/12/17/0.9.4-Release.rst:65 +msgid "New ARMv6 wrapper for Raspberry Pi" +msgstr "Wrapper ARMv6 baru untuk Raspberry Pi" + +#: i2p2www/blog/2013/03/08/0.9.5-Release.rst:2 +msgid "0.9.5 Release" +msgstr "0.9.5 Rilis" + +#: i2p2www/blog/2013/03/08/0.9.5-Release.rst:7 +#: i2p2www/blog/2013/03/08/0.9.5-Release.rst:9 +msgid "" +"0.9.5 includes bug fixes and defenses for some issues and vulnerabilities" +" that are being investigated by researchers at UCSB. We continue to work " +"with them on additional improvements. This is a good opportunity to " +"remind the community that while our network continues to grow rapidly, it" +" is still relatively small. There may be multiple weaknesses or bugs that" +" could compromise your anonymity. Help us grow the network by spreading " +"the word and contributing where you can." +msgstr "" +"0.9.5 mencakup perbaikan bug dan pertahanan untuk beberapa masalah dan " +"kerentanan yang sedang diselidiki oleh para peneliti di UCSB. Kami terus " +"bekerja dengan mereka untuk perbaikan tambahan. Ini adalah kesempatan " +"yang baik untuk mengingatkan masyarakat bahwa walaupun jaringan kami " +"terus berkembang pesat, jaringan ini masih relatif kecil. Mungkin ada " +"beberapa kelemahan atau bug yang dapat membahayakan anonimitas Anda. " +"Membantu kami mengembangkan jaringan dengan menyebarkan berita dan " +"berkontribusi di mana Anda dapat melakukannya." + +#: i2p2www/blog/2013/03/08/0.9.5-Release.rst:13 +#, python-format +msgid "" +"In this upgrade cycle, a random 1%(pc)s of routers, (plus all routers " +"running a\n" +"development build) will attempt to update via the experimental in-network" +" bittorrent\n" +"with i2psnark. If this doesn't work, it should fall back to standard in-" +"network HTTP update." +msgstr "" +"Dalam siklus upgrade ini, sejumlah 1%(pc)s router secara acaj (ditambah " +"semua router yang menjalankan development built) akan berusaha " +"memperbarui melalui bittorrent di jaringan eksperimental dengan i2psnark." +" Jika ini tidak berhasil, itu kembali ke standar di pembaruan HTTP " +"standar." + +#: i2p2www/blog/2013/03/08/0.9.5-Release.rst:27 +msgid "Defenses and Bug Fixes" +msgstr "Pertahanan dan Perbaikan Bug" + +#: i2p2www/blog/2013/03/08/0.9.5-Release.rst:29 +msgid "Fix router bug causing lockup when using iMule" +msgstr "Memperbaiki bug router yang menyebabkan lockup ketika menggunakan iMule" + +#: i2p2www/blog/2013/03/08/0.9.5-Release.rst:30 +msgid "Recognize, handle, reject duplicate tunnel IDs" +msgstr "Mengenali, menangani, menolak id tunnel duplikat" + +#: i2p2www/blog/2013/03/08/0.9.5-Release.rst:31 +msgid "Fix changing of the log file name" +msgstr "Memperbaiki perubahan nama file log" + +#: i2p2www/blog/2013/03/08/0.9.5-Release.rst:32 +msgid "Prevent hashcode attack in session tags" +msgstr "Mencegah serangan kode hash di tag sesi" + +#: i2p2www/blog/2013/03/08/0.9.5-Release.rst:33 +msgid "Add build request throttler based on previous hop" +msgstr "Menambahlan permintaan pembangunan throttler berdasarkan hop sebelumnya" + +#: i2p2www/blog/2013/03/08/0.9.5-Release.rst:34 +msgid "Limit concurrent next-hop lookups" +msgstr "Membatasi pencarian next-hop yang bersamaan" + +#: i2p2www/blog/2013/03/08/0.9.5-Release.rst:35 +msgid "Catch exceptions storing nonces in console" +msgstr "Menangkap exceptions storing nonces di konsol" + +#: i2p2www/blog/2013/03/08/0.9.5-Release.rst:36 +msgid "Fix saving graph settings in console" +msgstr "Memperbaiki penyimpanan pengaturan grafik di console" + +#: i2p2www/blog/2013/03/08/0.9.5-Release.rst:37 +msgid "Fix eepget generation of URLs when not proxied" +msgstr "Memperbaiki pembuatan URL eepget ketika tidak menggunakan proxy" + +#: i2p2www/blog/2013/03/08/0.9.5-Release.rst:38 +msgid "" +"Encrypt database lookup messages end-to-end when sent through exploratory" +" tunnels" +msgstr "" +"Mengenkripsi pesan pencarian database end-to-end ketika dikirim melalui " +"exploratory tunnels" + +#: i2p2www/blog/2013/03/08/0.9.5-Release.rst:39 +msgid "Don't use multiple floodfills from the same /16 in a query" +msgstr "Jangan gunakan beberapa floodfills dari /16 yang sama di sebuah query" + +#: i2p2www/blog/2013/03/08/0.9.5-Release.rst:40 +msgid "Randomize delay before verifying floodfill store" +msgstr "Mengacak penundaan sebelum memverifikasi floodfill store" + +#: i2p2www/blog/2013/03/08/0.9.5-Release.rst:41 +msgid "Increase number of floodfills" +msgstr "Peningkatan jumlah floodfills" + +#: i2p2www/blog/2013/03/08/0.9.5-Release.rst:45 +msgid "Improve support for mobile browsers" +msgstr "Meningkatkan dukungan untuk peramban seluler" + +#: i2p2www/blog/2013/03/08/0.9.5-Release.rst:46 +msgid "Partial defenses for UCSB attacks" +msgstr "Pertahanan parsial untuk serangan UCSB" + +#: i2p2www/blog/2013/03/08/0.9.5-Release.rst:47 +msgid "Add announce list support to i2psnark" +msgstr "Menambahkan dukungan daftar pengumuman untuk i2psnark" + +#: i2p2www/blog/2013/03/08/0.9.5-Release.rst:48 +msgid "Jetty: upgrade Apache Tomcat to 6.0.36" +msgstr "Jetty: upgrade Apache Tomcat ke 6.0.36" + +#: i2p2www/blog/2013/03/08/0.9.5-Release.rst:49 +msgid "Split router info files into multiple subdirectories" +msgstr "Memisahkan file router info ke dalam beberapa subdirektori" + +#: i2p2www/blog/2013/03/08/0.9.5-Release.rst:50 +msgid "Add IP to hostname mapping option in SOCKS" +msgstr "Menambahkan IP ke opsi pemetaan hostname dalam SOCKS" + +#: i2p2www/blog/2013/03/08/0.9.5-Release.rst:51 +msgid "Improve PRNG seeding" +msgstr "Meningkatkan seeding PRNG" + +#: i2p2www/blog/2013/03/08/0.9.5-Release.rst:52 +msgid "" +"Translation updates: French, German, Hungarian, Italian, Norwegian, " +"Polish, Portuguese, Russian, Swedish" +msgstr "" +"Pembaruan terjemahan: Perancis, Jerman, Hungaria, Italia, Norwegia, " +"Polandia, Portugis, Rusia, Swedia" + +#: i2p2www/blog/2013/03/08/0.9.5-Release.rst:54 +msgid "Update wrapper to 3.5.17 (new installs and PPA only)" +msgstr "Update wrapper ke 3.5.17 (hanya untuk install baru dan PPA)" + +#: i2p2www/blog/2013/05/28/0.9.6-Release.rst:2 +msgid "0.9.6 Release" +msgstr "0.9.6 Rilis" + +#: i2p2www/blog/2013/05/28/0.9.6-Release.rst:7 +#: i2p2www/blog/2013/05/28/0.9.6-Release.rst:9 +msgid "" +"0.9.6 includes bug fixes and an update from Jetty 6.1.26 (2010-11-10) to " +"Jetty 7.6.10 (2013-03-12). See below for important information on the " +"Jetty update. The Jetty 7 series is actively maintained and we plan to " +"stay current with it in future I2P releases." +msgstr "" +"0.9.6 mencakup perbaikan bug dan update dari Jetty 6.1.26 (2010-11-10) ke" +" Jetty 7.6.10 (2013-03-12). Lihat di bawah untuk informasi penting pada " +"Jetty update. Seri Jetty 7 dijaga secara aktif dan kami berencana untuk " +"tetap menggunakannya di rilis I2P di masa depan." + +#: i2p2www/blog/2013/05/28/0.9.6-Release.rst:13 +msgid "" +"Most users will update via HTTP. Those running development builds will " +"attempt to update via the\n" +"experimental in-network bittorrent with i2psnark. We've fixed some bugs " +"that will enable more users\n" +"to update via torrent in the 0.9.7 update cycle." +msgstr "" +"Kebanyakan pengguna akan memperbarui melalui HTTP. Orang-orang yang " +"menjalankan development build akan berusaha memperbarui melalui " +"bittorrent di jaringan eksperimental dengan i2psnark. Kami telah " +"memperbaiki beberapa bug yang akan memungkinkan lebih banyak pengguna " +"untuk memperbarui via torrent di siklus update versi 0.9.7." + +#: i2p2www/blog/2013/05/28/0.9.6-Release.rst:25 +msgid "Important fix for Windows Eepsites, first install 0.9.5 only" +msgstr "Perbaikan penting untuk Eepsites Windows, pertama-tama Instal hanya 0.9.5" + +#: i2p2www/blog/2013/05/28/0.9.6-Release.rst:27 +msgid "" +"If you first installed I2P with version 0.9.5, on Windows only, we " +"recommend that you follow the\n" +"following instructions to fix your eepsite location **before** you update" +" to 0.9.6.\n" +"Only original installations of 0.9.5-0 on Windows are affected by this " +"issue. If your router version\n" +"is 0.9.5-0-win1, you already have the fix and need not take any action." +msgstr "" +"Jika Anda pertama kali menginstal I2P dengan versi 0.9.5, di Windows " +"hanya, kami menyarankan Anda untuk mengikuti petunjuk berikut untuk " +"memperbaiki lokasi eepsite ** sebelum ** Anda memperbarui ke 0.9.6.\n" +"Hanya instalasi asli 0.9.5-0 pada Windows yang terpengaruh oleh masalah " +"ini. Jika versi router Anda 0.9.5-0-win1, Anda sudah memiliki perbaikan " +"ini dan tidak perlu mengambil tindakan apapun." + +#: i2p2www/blog/2013/05/28/0.9.6-Release.rst:34 +msgid "See `this page`_ for instructions." +msgstr "Lihat 'this page'_ untuk petunjuk." + +#: i2p2www/blog/2013/05/28/0.9.6-Release.rst:38 +msgid "`this page`" +msgstr "`this page` " + +#: i2p2www/blog/2013/05/28/0.9.6-Release.rst:40 +msgid "Jetty 7 Migration Details" +msgstr "RIncian Migrasi Jetty 7" + +#: i2p2www/blog/2013/05/28/0.9.6-Release.rst:42 +msgid "" +"For most people, the update should just work. If you have multiple Jetty " +"eepsites,\n" +"OR have made changes to jetty.xml or other Jetty configuration files, " +"including changing the port\n" +"from 7658, you MUST take manual action AFTER updating." +msgstr "" +"Bagi kebanyakan orang, update ini seharusnya berhasil. Jika Anda memiliki" +" beberapa eepsite Jetty, ATAU telah membuat perubahan jetty.xml atau file" +" konfigurasi Jetty lainnya, yang termasuk mengubah port dari 7658, Anda " +"HARUS mengambil tindakan manual SETELAH melakukan pembaruan." + +#: i2p2www/blog/2013/05/28/0.9.6-Release.rst:48 +msgid "" +"After update, the router will migrate your jetty.xml files to the new " +"Jetty 7 format." +msgstr "" +"Setelah melakukan pembaruan, router akan memigrasi file jetty.xml Anda ke" +" format Jetty 7 baru." + +#: i2p2www/blog/2013/05/28/0.9.6-Release.rst:50 +msgid "" +"The migration resets the port to 7658. If you have more than one Jetty " +"eepsite, OR your eepsite\n" +" is NOT on port 7658, OR you have made other modifications to jetty.xml " +"(for example changing the\n" +" listen address from 127.0.0.1 to 0.0.0.0), you MUST edit the jetty.xml " +"file for each eepsite to fix them up\n" +" after updating, and restart again." +msgstr "" +"Migrasi me-reset port ke 7658. Jika Anda memiliki lebih dari satu eepsite" +" Jetty, ATAU eepsite Anda\n" +" bukan pada port 7658, atau Anda telah membuat modifikasi lain untuk " +"jetty.xml (misalnya mengubah\n" +" alamat dengar dari 127.0.0.1 ke 0.0.0.0), Anda harus mengedit file " +"jetty.xml untuk setiap eepsite untuk memperbaiki mereka\n" +" setelah memperbarui, dan restart lagi." + +#: i2p2www/blog/2013/05/28/0.9.6-Release.rst:55 +msgid "" +"**The following files will be backed up with a ".jetty6" suffix" +" and then migrated.**\n" +"If you have made local changes, you may have to edit them manually and " +"restart.\n" +"See http://wiki.eclipse.org/Jetty for assistance in configuring Jetty 7." +msgstr "" +"** File-file berikut akan di-backup dengan akhiran \".jetty6\" dan " +"kemudian migrated.** jika Anda telah membuat perubahan lokal, Anda " +"mungkin harus mengedit mereka secara manual lalu melakukan restart.\n" +"Lihat http://wiki.eclipse.org/Jetty untuk bantuan dalam konfigurasi Jetty" +" 7." + +#: i2p2www/blog/2013/05/28/0.9.6-Release.rst:69 +msgid "Plugins" +msgstr "Plugin" + +#: i2p2www/blog/2013/05/28/0.9.6-Release.rst:71 +msgid "Most plugins should work fine with Jetty 7." +msgstr "Kebanyakan plugin seharusnya berfungsi dengan baik dengan Jetty 7." + +#: i2p2www/blog/2013/05/28/0.9.6-Release.rst:75 +msgid "" +"The I2PControl and zzzot plugins must be updated. Your router should " +"download and install the new versions shortly after starting 0.9.6." +msgstr "" +"Plugin I2PControl dan zzzot harus diperbarui. Router Anda seharus " +"nyamengunduh dan menginstal versi baru segera setelah memulai 0.9.6." + +#: i2p2www/blog/2013/05/28/0.9.6-Release.rst:77 +msgid "If a plugin does not work, please contact the maintainer for that plugin." +msgstr "Jika plugin tidak berfungsi, hubungi pengelola plugin itu." + +#: i2p2www/blog/2013/05/28/0.9.6-Release.rst:83 +msgid "Several bugs with Windows installation (see above)" +msgstr "Beberapa bug di instalasi Windows (lihat di atas)" + +#: i2p2www/blog/2013/05/28/0.9.6-Release.rst:84 +msgid "Fix default form action in i2ptunnel" +msgstr "Memperbaiki form action default di i2ptunnel" + +#: i2p2www/blog/2013/05/28/0.9.6-Release.rst:85 +msgid "Fix links on iframed console pages" +msgstr "Memperbaiki tautan di halaman konsol iframed" + +#: i2p2www/blog/2013/05/28/0.9.6-Release.rst:86 +msgid "Better detection of 64-bit Windows to prevent crashes by systray" +msgstr "Deteksi Windows 64-bit yang lebih baik untuk mencegah crash oleh systray" + +#: i2p2www/blog/2013/05/28/0.9.6-Release.rst:87 +msgid "Fix bug preventing router update via torrent" +msgstr "Memperbaiki bug yang mencegah update router via torrent" + +#: i2p2www/blog/2013/05/28/0.9.6-Release.rst:88 +msgid "Several SSU fixes for NATs that change UDP ports" +msgstr "Beberapa perbaikan SSU untuk NAT yang mengubah port UDP" + +#: i2p2www/blog/2013/05/28/0.9.6-Release.rst:89 +msgid "" +"Ignore unsupported IPs in RouterInfos when selecting an address (prep for" +" IPv6)" +msgstr "" +"Mengabaikan IP yang tidak didukung di RouterInfos saat memilih alamat " +"(persiapan untuk IPv6)" + +#: i2p2www/blog/2013/05/28/0.9.6-Release.rst:90 +msgid "" +"Ignore unused option bits in Database Lookup Message (prep for requesting" +" encrypted response)" +msgstr "" +"Mengabaikan opsi bit yang tidak terpakai di Database Lookup Message " +"(persiapan untuk meminta tanggapan terenkripsi)" + +#: i2p2www/blog/2013/05/28/0.9.6-Release.rst:91 +msgid "Fix HTTP proxy error response for malformed URIs" +msgstr "Memperbaiki respons kesalahan proxy HTTP untuk URI yang salah" + +#: i2p2www/blog/2013/05/28/0.9.6-Release.rst:92 +msgid "Recognize UPnP devices without port forwarding capability" +msgstr "Mengenali perangkat UPnP yang tidak memiliki kemampuan port forwarding" + +#: i2p2www/blog/2013/05/28/0.9.6-Release.rst:96 +msgid "Jetty 7.6.10 (see above for migration information)" +msgstr "Jetty 7.6.10 (lihat di atas untuk informasi migrasi)" + +#: i2p2www/blog/2013/05/28/0.9.6-Release.rst:97 +msgid "Limit page size in i2psnark" +msgstr "Membatasi ukuran halaman di i2psnark" + +#: i2p2www/blog/2013/05/28/0.9.6-Release.rst:98 +msgid "Add data directory and page size configuration to i2psnark" +msgstr "Menambahkan direktori data dan konfigurasi ukuran halaman ke i2psnark" + +#: i2p2www/blog/2013/05/28/0.9.6-Release.rst:99 +msgid "Support multiple i2psnark instances" +msgstr "Mendukung beberapa instance dari i2psnark" + +#: i2p2www/blog/2013/05/28/0.9.6-Release.rst:100 +msgid "Piece size adjustments in i2psnark" +msgstr "Penyesuaian ukuran potongan di i2psnark" + +#: i2p2www/blog/2013/05/28/0.9.6-Release.rst:101 +msgid "Add more graphing support for combined bandwidth graph" +msgstr "Menambahkan lebih banyak dukungan untuk grafik bandwith gabungan" + +#: i2p2www/blog/2013/05/28/0.9.6-Release.rst:102 +msgid "Block b32.i2p supercookies" +msgstr "Blokir b32.i2p supercookies" + +#: i2p2www/blog/2013/05/28/0.9.6-Release.rst:103 +msgid "Allow stopping clients on /configclients" +msgstr "Perbolehkan menghentikan klien di /configclients" + +#: i2p2www/blog/2013/05/28/0.9.6-Release.rst:104 +msgid "Check for nonce count replays in HTTP client" +msgstr "Memeriksa replay nonce count di klien HTTP" + +#: i2p2www/blog/2013/05/28/0.9.6-Release.rst:105 +msgid "Support SASL authentication in IRC proxy" +msgstr "Mendukung otentikasi SASL di proxy IRC" + +#: i2p2www/blog/2013/05/28/0.9.6-Release.rst:106 +msgid "Several cleanups and minor fixes in the update manager" +msgstr "Beberapa hal dibereskan dan perbaikan kecil di update manager" + +#: i2p2www/blog/2013/05/28/0.9.6-Release.rst:107 +msgid "Translation updates: German, Portuguese, Russian, Spanish, and Swedish" +msgstr "Pembaruan terjemahan: Jerman, Portugis, Rusia, Spanyol dan Swedia" + +#: i2p2www/blog/2013/07/15/0.9.7-Release.rst:2 +msgid "0.9.7 Release" +msgstr "0.9.7 Rilis" + +#: i2p2www/blog/2013/07/15/0.9.7-Release.rst:7 +#: i2p2www/blog/2013/07/15/0.9.7-Release.rst:9 +msgid "0.9.7 includes significant bug fixes and improvements." +msgstr "0.9.7 termasuk perbaikan bug signifikan dan peningkatan kinerja." + +#: i2p2www/blog/2013/07/15/0.9.7-Release.rst:11 +msgid "" +"For the first time, class 'N' routers (those with a minimumum of 128 " +"KBytes/sec of shared bandwidth)\n" +"will automatically become floodfill (previously it was only 'O' routers " +"with 256 KBps). This will\n" +"increase the floodfill population for additional resistance to certain " +"attacks (see below). Floodfill routers\n" +"don't consume much additional bandwidth, but they do tend to use " +"additional memory and concurrent\n" +"connections. If you do not wish your router to become floodfill, set the " +"advanced configuration\n" +"router.floodfillParticipant=false ." +msgstr "" +"Untuk pertama kalinya, router kelas 'N' (yang memiliki minimum 128 " +"KByte/sec shared bandwidth) secara otomatis akan menjadi floodfill " +"(sebelumnya itu hanya router kelas 'O' dengan 256 KBps). Ini akan " +"meningkatkan populasi floodfill untuk tambahan perlawanan terhadap " +"serangan tertentu (lihat bawah). Router floodfill tidak menggunakan " +"bandwidth tambahan, tetapi mereka cenderung untuk menggunakan memori dan " +"sambungan tambahan. Jika Anda tidak ingin router Anda menjadi floodfill, " +"setel pengaturan lebih lanjut menjadi router.floodfillParticipant=false ." + +#: i2p2www/blog/2013/07/15/0.9.7-Release.rst:20 +#, python-format +msgid "" +"As we think the last release fixed the experimental update-via-torrent " +"bugs, 3%(pc)s of routers should\n" +"update over in-network bittorrent this cycle." +msgstr "" +"Karena rilis terakhir memperbaiki bug update eksperimental melalui " +"torrent, 3%(pc)s dari router seharusnya memperbarui atas melalui jaringan" +" bittorrent di siklus ini." + +#: i2p2www/blog/2013/07/15/0.9.7-Release.rst:25 +msgid "" +"Plugin update checks, possibly broken for several releases, are fixed. " +"Your plugins should once again\n" +"auto-update after updating the router." +msgstr "" +"Pemeriksaan update plugin, yang mungkin rusak di beberapa rilis, sudah " +"diperbaiki. Plugin Anda seharusnya kembali melakukan auto-update setelah " +"memperbarui router." + +#: i2p2www/blog/2013/07/15/0.9.7-Release.rst:30 +msgid "" +"We fixed a major streaming timer bug that contributed to frequent IRC " +"disconnects." +msgstr "" +"Kami memperbaiki bug besar di streaming timer yang berkontribusi sering " +"terputusnya IRC." + +#: i2p2www/blog/2013/07/15/0.9.7-Release.rst:34 +msgid "" +"This release contains additional mitigations for the `\"practical " +"attacks\" paper`_.\n" +"However, we have a lot more work to do to resist Sybil attacks on the " +"floodfills, and resist\n" +"traffic analysis at the gateways and endpoints of exploratory tunnels.\n" +"It's a good reminder for everybody that our network is still relatively " +"small and vulnerable.\n" +"We don't currently recommend any uses that would put anybody in serious " +"jeopardy.\n" +"We'll keep working to improve it... please keep working to spread the " +"word. A bigger network is a better network." +msgstr "" +"Rilis ini berisi mitigasi tambahan untuk 'makalah 'serangan praktis \"'_." +"\n" +"Namun, ada banyak pekerjaan yang harus dilakukan untuk menangkal serangan" +" Sybil terhadap floodfill, dan menangkal analisis lalu lintas di gateway " +"dan endpoint dari exploratory tunnel.\n" +"Ini adalah pengingat yang baik kepada semuanya bahwa jaringan kira masih " +"relatif kecil dan rentan.\n" +"Kami tidak menyarankan penggunaan yang akan membuat seseorang mendapat " +"bahaya yang serius.\n" +"Kami akan terus berusaha untuk meningkatkannya... silahkan terus berusaha" +" untuk menyebarkan berita ini. Sebuah jaringan yang lebih besar adalah " +"jaringan yang lebih baik." + +#: i2p2www/blog/2013/07/15/0.9.7-Release.rst:43 +msgid "`\"practical attacks\" paper`" +msgstr "'makalah \"serangan praktis\"'" + +#: i2p2www/blog/2013/07/15/0.9.7-Release.rst:47 +#: i2p2www/blog/2013/08/10/0.9.7.1-Release.rst:15 +#: i2p2www/blog/2013/09/30/0.9.8-Release.rst:107 +#: i2p2www/blog/2013/12/07/0.9.9-Release.rst:28 +#: i2p2www/blog/2014/01/22/0.9.10-Release.rst:36 +#: i2p2www/blog/2014/02/08/0.9.11-Release.rst:37 +#: i2p2www/blog/2014/03/31/0.9.12-Release.rst:67 +msgid "Anonymity Improvements" +msgstr "Peningkatan Anonimitas" + +#: i2p2www/blog/2013/07/15/0.9.7-Release.rst:49 +msgid "End-to-end encryption of responses to leaseset lookups" +msgstr "Respons enkripsi end-to-end untuk pencarian leaseset" + +#: i2p2www/blog/2013/07/15/0.9.7-Release.rst:50 +msgid "Expand floodfill pool by enabling class 'N' floodfills" +msgstr "Memperluas floodfill dengan mengaktifkan floodfills kelas 'N'" + +#: i2p2www/blog/2013/07/15/0.9.7-Release.rst:51 +msgid "Randomize padding inside encrypted SSU packets" +msgstr "Mengacak padding di dalam paket SSU terenkripsi" + +#: i2p2www/blog/2013/07/15/0.9.7-Release.rst:52 +msgid "Preparation for better SSU protocol obfuscation" +msgstr "Persiapan untuk yang SSU protocol obfuscation lebih baik" + +#: i2p2www/blog/2013/07/15/0.9.7-Release.rst:56 +msgid "Fix newer lease sets not getting stored or published" +msgstr "Memperbaiki leaseset baru yang tidak dapat didisimpan atau diterbitkan" + +#: i2p2www/blog/2013/07/15/0.9.7-Release.rst:57 +msgid "" +"Fix classpath bug when used with 4-year-old installations, causing the " +"console not to start" +msgstr "" +"Memperbaiki bug classpath ketika digunakan instalasi berumur 4 tahun, " +"yang menyebabkan console tidak dapat dijalankan" + +#: i2p2www/blog/2013/07/15/0.9.7-Release.rst:58 +msgid "Fix addressbook database bug preventing update of the reverse index" +msgstr "Memperbaiki bug database addressbook yang mencegah pembaruan reverse index" + +#: i2p2www/blog/2013/07/15/0.9.7-Release.rst:59 +msgid "" +"Fix i2psnark bug that changed the infohash of torrents created by Robert " +"and fetched via magnet link" +msgstr "" +"Memperbaiki bug i2psnark yang mengubah infohash torrents yang diciptakan " +"oleh Robert dan diambil melalui magnet link" + +#: i2p2www/blog/2013/07/15/0.9.7-Release.rst:60 +msgid "Fix version checking for plugins" +msgstr "Memperbaiki versi memeriksa plugin" + +#: i2p2www/blog/2013/07/15/0.9.7-Release.rst:61 +msgid "" +"Fix a streaming timer bug causing frequent IRC disconnects (also affects " +"other close-on-idle tunnels)" +msgstr "" +"Memperbaiki bug timer streaming yang menyebabkan IRC sering terputus " +"(juga mempengaruhi tunnel tutup-saat-menganggur)" + +#: i2p2www/blog/2013/07/15/0.9.7-Release.rst:65 +msgid "Don't install as a service on Windows by default" +msgstr "Jangan Instal sebagai service pada Windows secara default" + +#: i2p2www/blog/2013/07/15/0.9.7-Release.rst:66 +msgid "Reduce transport idle timeouts" +msgstr "Mengurangi timeout transportast idle" + +#: i2p2www/blog/2013/07/15/0.9.7-Release.rst:67 +msgid "Reduce tunnels on idle in i2psnark" +msgstr "Mengurangi tunnel on idle dalam i2psnark" + +#: i2p2www/blog/2013/07/15/0.9.7-Release.rst:68 +msgid "Change default in i2ptunnel GUI to 3 hops" +msgstr "Mengubah GUI default di i2ptunnel untuk 3 hop" + +#: i2p2www/blog/2013/07/15/0.9.7-Release.rst:69 +msgid "IE 10 support" +msgstr "Dukungan IE 10" + +#: i2p2www/blog/2013/07/15/0.9.7-Release.rst:70 +msgid "" +"Individual expiration times in leases, for efficiency on destinations " +"with a high number of tunnels" +msgstr "" +"Waktu kedaluwarsa per individu di lease, untuk efisiensi pada destinasi " +"dengan jumlah tunnel yang tinggi" + +#: i2p2www/blog/2013/07/15/0.9.7-Release.rst:71 +msgid "Low-level encryption and XOR speedups" +msgstr "Enkripsi tingkat rendah dan XOR speedups" + +#: i2p2www/blog/2013/07/15/0.9.7-Release.rst:72 +msgid "Jetty 7.6.11" +msgstr "Jetty 7.6.11 " + +#: i2p2www/blog/2013/07/15/0.9.7-Release.rst:73 +msgid "Tomcat 6.0.37" +msgstr "Tomcat 6.0.37 " + +#: i2p2www/blog/2013/07/15/0.9.7-Release.rst:74 +msgid "Translation updates: Chinese, French, German, Portuguese, Russian, Spanish" +msgstr "Pembaruan terjemahan: Mandarin, Perancis, Jerman, Portugis, Rusia, Spanyol" + +#: i2p2www/blog/2013/07/15/0.9.7-Release.rst:75 +msgid "New Turkish translation" +msgstr "Terjemahan baru untuk bahasa Turki" + +#: i2p2www/blog/2013/07/15/0.9.7-Release.rst:76 +msgid "Wrapper 3.5.19 (new installs and PPA only)" +msgstr "Wrapper 3.5.19 (hanya untuk instalasi baru dan PPA)" + +#: i2p2www/blog/2013/08/10/0.9.7.1-Release.rst:2 +msgid "0.9.7.1 Release" +msgstr "0.9.7.1 Rilis" + +#: i2p2www/blog/2013/08/10/0.9.7.1-Release.rst:7 +#: i2p2www/blog/2013/08/10/0.9.7.1-Release.rst:9 +msgid "" +"This unscheduled release disables the RouterInfo verification messages " +"that were used in the attack published in the UCSB paper, which should " +"make correlating a LeaseSet and a Router much more difficult. We have " +"also included a limited number of other fixes listed below. Our 0.9.8 " +"release, which will include IPv6 support, is still on-schedule for late " +"September." +msgstr "" +"Rilis tidak terjadwal ini menonaktifkan pesan verifikasi RouterInfo yang " +"digunakan dalam serangan yang diterbitkan di makalah UCSB, yang " +"seharusnya membuat korelasi LeaseSet dan Router jauh lebih sulit. Kami " +"juga telah menyertakan sejumlah perbaikan yang tercantum di bawah ini. " +"Rilis 0.9.8, yang akan menyertakan dukungan IPv6, masih terjadwal untuk " +"akhir September." + +#: i2p2www/blog/2013/08/10/0.9.7.1-Release.rst:11 +msgid "As usual, we recommend that all users update to this release." +msgstr "" +"Seperti biasa, kami merekomendasikan bahwa semua pengguna memperbarui ke " +"rilis ini." + +#: i2p2www/blog/2013/08/10/0.9.7.1-Release.rst:17 +msgid "Disable RouterInfo verification messages" +msgstr "Menonaktifkan pesan verifikasi RouterInfo" + +#: i2p2www/blog/2013/08/10/0.9.7.1-Release.rst:21 +msgid "Extend inbound tunnel expiration" +msgstr "Memperpanjang kadaluarsa tunnel inbound" + +#: i2p2www/blog/2013/08/10/0.9.7.1-Release.rst:22 +msgid "i2prouter: bashism fix" +msgstr "i2prouter: memperbaiki bashism" + +#: i2p2www/blog/2013/08/10/0.9.7.1-Release.rst:23 +msgid "i2psnark: increase max piece size, mime type updates" +msgstr "i2psnark: meningkatkan ukuran maks potongan, pembaruan tipe mime" + +#: i2p2www/blog/2013/08/10/0.9.7.1-Release.rst:24 +msgid "New reseed host" +msgstr "Host reseed baru" + +#: i2p2www/blog/2013/08/10/0.9.7.1-Release.rst:25 +msgid "New update hosts, thanks Meeh and dg" +msgstr "Host update baru, terima kasih kepada Meeh dan dg" + +#: i2p2www/blog/2013/08/10/0.9.7.1-Release.rst:26 +msgid "Streaming: RTO changes" +msgstr "Streaming: perubahan RTO" + +#: i2p2www/blog/2013/08/10/0.9.7.1-Release.rst:27 +msgid "Updater: Increase update-via-torrent to 30 percent" +msgstr "Updater: Meningkatkan pembaruan melalui torrent menjadi 30 persen" + +#: i2p2www/blog/2013/08/10/0.9.7.1-Release.rst:28 +msgid "UPnP fix for some hardware" +msgstr "Perbaikan UPnP untuk beberapa hardware" + +#: i2p2www/blog/2013/09/30/0.9.8-Release.rst:2 +msgid "0.9.8 Release" +msgstr "0.9.8 Rilis" + +#: i2p2www/blog/2013/09/30/0.9.8-Release.rst:7 +#: i2p2www/blog/2013/09/30/0.9.8-Release.rst:9 +msgid "" +"0.9.8 includes the long-awaited support for IPv6. It's enabled by " +"default, but of course you need a public IPv6 address to use it. " +"Configuration is on the 'network' configuration tab in your console. We " +"also have anonymity improvements including padding of SSU packets and " +"longer router private keys." +msgstr "" +"0.9.8 termasuk dukungan untuk IPv6 yang lama ditunggu-tunggu. Diaktifkan " +"secara default, tapi tentu saja Anda perlu alamat IPv6 publik untuk " +"menggunakannya. Konfigurasi ada pada tab konfigurasi 'jaringan' di " +"console Anda. Kami juga memiliki perbaikan anonimitas termasuk padding " +"SSU paket dan private key router yang lebih panjang." + +#: i2p2www/blog/2013/09/30/0.9.8-Release.rst:11 +#, python-format +msgid "30%(pc)s of you will update via in-network torrent in this update cycle." +msgstr "" +"30%(pc)s dari anda akan melakukan pembaruan dengan torrent dalam jaringan" +" di siklus pembaruan ini." + +#: i2p2www/blog/2013/09/30/0.9.8-Release.rst:13 +msgid "IPv6 Details" +msgstr "Detail IPv6 " + +#: i2p2www/blog/2013/09/30/0.9.8-Release.rst:15 +msgid "" +"IPv6 is enabled and preferred by default. If you have a public IPv6 " +"address \n" +"and you are connecting to another router with a published IPv6 address, " +"it will \n" +"connect via IPv6. There is a new IPv6 configuration section on /confignet" +" in \n" +"the router console. If IPv6 is causing problems you may disable it there." +msgstr "" +"IPv6 diaktifkan dan dipilih secara default. Jika Anda memiliki alamat " +"IPv6 publik dan Anda berhubungan denganrouter lain dengan alamat IPv6 " +"diterbitkan, ini akan terhubung melalui IPv6. Ada bagian konfigurasi IPv6" +" baru di /confignet di router console. Jika IPv6 menyebabkan masalah, " +"Anda dapat menonaktifkannya di sana." + +#: i2p2www/blog/2013/09/30/0.9.8-Release.rst:22 +msgid "" +"As a part of the IPv6 development effort, I2P now supports multiple \n" +"published IP addresses. If you have multiple public IP addresses (IPv4, " +"IPv6, \n" +"or both), you may enable or disable them individually on /confignet. The" +" \n" +"default is to use the first IPv4 and IPv6 addresses it discovers. If you " +"have \n" +"multiple addresses you should review the configuration on /confignet and " +"adjust \n" +"it if necessary.\n" +"Note that while you may enable multiple IPv4 and IPv6 addresses on " +"/confignet,\n" +"we recommend that you use only one IPv4 and one IPv6 address. There are\n" +"bugs still to be fixed with multiple addresses of each type." +msgstr "" +"Sebagai bagian dari usaha pengembangan IPv6, I2P sekarang mendukung " +"beberapa alamat IP yang diterbitkan. Jika Anda memiliki beberapa alamat " +"IP publik (IPv4, IPv6, atau keduanya), Anda dapat mengaktifkan atau " +"menonaktifkan semuanya secara individual di /confignet. Secara default, " +"alamat IPv4 dan IPv6 yang digunakan adalah alamat pertama yang ditemukan." +" Jika Anda memiliki beberapa alamat, Anda harus meninjau konfigurasi pada" +" /confignet dan menyesuaikannya jika diperlukan.\n" +"Perhatikan bahwa walau Anda dapat mengaktifkan beberapa alamat IPv4 dan " +"IPv6 di /confignet, kami menyarankan agar Anda menggunakan satu IPv4 dan " +"satu alamat IPv6. Masih ada bug yang harus diperbaiki di beberapa alamat " +"di setiap jenis." + +#: i2p2www/blog/2013/09/30/0.9.8-Release.rst:34 +msgid "" +"While IPv6 support was designed and developed over several years, it has" +" \n" +"only been tested by a limited number of users and is still beta. If you " +"do have \n" +"a public IPv6 address, please monitor your router and the logs for " +"problems, \n" +"and disable it necessary. Please report any bugs on \n" +"http://trac.i2p2.i2p." +msgstr "" +"Walau dukungan IPv6 dirancang dan sudah dikembangkan selama beberapa " +"tahun, ini hanya telah diuji oleh sejumlah pengguna dan masih beta. Jika " +"Anda memiliki alamat IPv6 publik, mohon pantau router dan log Anda untuk " +"jika ada masalah, dan menonaktifkannya jika diperlukan. Laporkan bug pada" +" http://trac.i2p2.i2p." + +#: i2p2www/blog/2013/09/30/0.9.8-Release.rst:42 +msgid "Rekeying Details" +msgstr "Detail melakukan rekey" + +#: i2p2www/blog/2013/09/30/0.9.8-Release.rst:44 +msgid "" +"For those of you running I2P on faster hardware (generally, 64-bit x86) " +"the \n" +"router will generate a new identity using longer keys. This will " +"substantially \n" +"reduce your participating traffic for 48 hours or more, while your router" +" \n" +"re-integrates into the network. Due to the new keys, the large number of" +" \n" +"torrent updates, and the recent network growth, we expect substantial \n" +"disruption to the network for a week or more after the update is " +"released. \n" +"Please be patient and things should start to improve after a few days." +msgstr "" +"Bagi Anda yang menjalankan I2P pada hardware yang lebih cepat (umumnya, " +"64-bit x86) router akan menghasilkan identitas baru menggunakan key yang " +"lebih panjang. Ini secara substansial akan mengurangi participating " +"traffic anda selama 48 jam atau lebih, sementara router Anda kembali " +"terintegrasi ke dalam jaringan. Karena key baru, sejumlah besar pembaruan" +" torrent, dan pertumbuhan jaringan saat ini, kami mengharapkan gangguan " +"substansial ke jaringan selama seminggu atau lebih setelah update " +"dirilis. \n" +"Harap bersabar dan hal-hal seharusnya mulai membaik setelah beberapa hari." + +#: i2p2www/blog/2013/09/30/0.9.8-Release.rst:54 +msgid "" +"These changes may result in higher CPU usage for some of you. We're doing" +" \n" +"our best to increase efficiency, but stronger security generally requires" +" more \n" +"computation. Performance may also be poor during the first week\n" +"due to the network churn.\n" +"We will evaluate the network performace before deciding whether to\n" +"change the key length on slower hardware in a future release." +msgstr "" +"Perubahan ini dapat mengakibatkan penggunaan CPU yang lebih tinggi untuk " +"beberapa orang. Kami sedang melakukan hal yang terbaik untuk meningkatkan" +" efisiensi, tetapi keamanan lebih kuat biasanya membutuhkan lebih banyak " +"komputasi. Kinerja juga mungkin akan menurun selama minggu pertama karena" +" churn jaringan.\n" +"Kami akan mengevaluasi kinerja jaringan sebelum memutuskan apakah akan " +"mengubah panjangnya key pada hardware yang lebih lambat di masa " +"mendatang." + +#: i2p2www/blog/2013/09/30/0.9.8-Release.rst:63 +msgid "" +"We are experiencing rapid network growth in the last few weeks, which is" +" \n" +"causing a bit of a bumpy ride for some, especially on weekends. However, " +"the \n" +"network is still performing fairly well, so keep spreading the word." +msgstr "" +"Kita mengalami pertumbuhan jaringan yang cepat dalam beberapa minggu " +"terakhir, yang menyebabkan sedikit gangguan untuk beberapa orang, " +"terutama pada akhir pekan. Namun, Jaringan adalah masih cukup baik, " +"sehingga terus sebarluaskan I2P." + +#: i2p2www/blog/2013/09/30/0.9.8-Release.rst:69 +msgid "More Changes Coming" +msgstr "Perubahan lebih banyak akan datang" + +#: i2p2www/blog/2013/09/30/0.9.8-Release.rst:71 +msgid "" +"We're in the initial stages of desiging major changes to strengthen our \n" +"crypto. Stronger crypto will use more CPU and it may possibly \n" +"require a Java 7 JRE at a minimum. We understand your desire to run I2P " +"on low-power \n" +"and/or older hardware. We're working hard to minimize the impacts, but " +"some \n" +"loss of performance is inevitable. In addition, Java 5 and 6 are no " +"longer \n" +"supported by Oracle. Now is a good time to upgrade to Java 7. Any change " +"in \n" +"minimum requirements will be announced well in advance." +msgstr "" +"Kita berada di tahap awal dari mendesain perubahan besar dalam memperkuat" +" kripto kami. Kripto kuat akan menggunakan CPU lebih banyak dan mungkin " +"mungkin memerlukan minimal Java 7 JRE. Kami memahami keinginan Anda untuk" +" menjalankan I2P pada hardware berdaya rendah dan/atau lebih tua. Kami " +"sedang bekerja keras untuk meminimalkan dampak ini, tetapi beberapa " +"penurunan kinerja tidak dapat dihindari. Selain itu, Java 5 dan 6 tidak " +"didukung lagi oleh Oracle. Sekarang adalah waktu yang baik untuk meng-" +"upgrade ke Java 7. Perubahan persyaratan minimum akan diumumkan jauh-jauh" +" hari." + +#: i2p2www/blog/2013/09/30/0.9.8-Release.rst:81 +msgid "New Website" +msgstr "Website baru" + +#: i2p2www/blog/2013/09/30/0.9.8-Release.rst:83 +msgid "" +"After a heroic effort by str4d, the new website preview is available at \n" +"http://i2hq.srv.i2p2.de. We hope to see it go live at \n" +"https://geti2p.net and http://www.i2p2.i2p soon. Please \n" +"contribute to the new website translations on Transifex, especially the \n" +"website_priority resource." +msgstr "" +"Setelah usaha heroik oleh str4d, pratinjau situs web baru tersedia di " +"http://i2hq.srv.i2p2.de. Kami berharap untuk melihatnya tampil di " +"https://geti2p.net dan http://www.i2p2.i2p segera. Silakan " +"mengkontribusi terjemahan situs baru di Transifex, terutama di sumber " +"daya website_priority." + +#: i2p2www/blog/2013/09/30/0.9.8-Release.rst:91 +msgid "Community Participation" +msgstr "Partisipasi komunitas" + +#: i2p2www/blog/2013/09/30/0.9.8-Release.rst:93 +msgid "" +"In early August, hottuna and zzz attended DEFCON 21 in Las Vegas.\n" +"Last weekend, echelon attended the CTS IV conference in Berlin and\n" +"psi attended the Tahoe-LAFS hackfest at GNU 30 in Cambridge, Mass.\n" +"Several of us will be at 30C3 in Hamburg late this year.\n" +"It's great to see people participating at these events and representing " +"I2P." +msgstr "" +"Di awal Agustus, hottuna and zzz menghadiri DEFCON 21 di Las Vegas.\n" +"Akhir pekan lalu, echelon menghadiri konferensi CTS IV di Berlin dan psi " +"menghadiri hackfest Tahoe-LAFS di GNU 30 di Cambridge, Massachusetts\n" +"Beberapa dari kami akan hadir di 30C 3 di Hamburg akhir tahun ini.\n" +"Senang sekali melihat orang-orang berpartisipasi di acara ini dan " +"mewakili I2P." + +#: i2p2www/blog/2013/09/30/0.9.8-Release.rst:105 +msgid "IPv6 support for both NTCP and SSU" +msgstr "Dukungan IPv6 untuk NTCP dan SSU" + +#: i2p2www/blog/2013/09/30/0.9.8-Release.rst:109 +msgid "SSU protocol obfuscation by adding random padding" +msgstr "SSU protocol obfuscation dengan menambahkan padding acak" + +#: i2p2www/blog/2013/09/30/0.9.8-Release.rst:110 +msgid "Longer encryption and DH private keys for users on faster platforms" +msgstr "" +"Enkripsi lebih panjang dan DH private key untuk pengguna pada platform " +"yang lebih cepat" + +#: i2p2www/blog/2013/09/30/0.9.8-Release.rst:114 +msgid "Fix I2PTunnel / I2CP locking and duplicates (partial)" +msgstr "Memperbaiki I2PTunnel / I2CP mengunci dan duplikat (sebagian)" + +#: i2p2www/blog/2013/09/30/0.9.8-Release.rst:115 +msgid "Fix translation of HTTP proxy error pages" +msgstr "Memperbaiki terjemahan dari halaman error HTTP proxy" + +#: i2p2www/blog/2013/09/30/0.9.8-Release.rst:116 +msgid "Fix occasional runtime exception in NTCP" +msgstr "Perbaiki runtime occasional runtime exception di NTCP" + +#: i2p2www/blog/2013/09/30/0.9.8-Release.rst:120 +msgid "Big rework of transport code to accommodate multiple addresses and IPv6" +msgstr "" +"Perubahan besar di transport code untuk mengakomodasi beberapa alamat dan" +" IPv6" + +#: i2p2www/blog/2013/09/30/0.9.8-Release.rst:121 +msgid "Streaming: Improved recovery from lost acks, other fixes" +msgstr "Streaming: Meningkatkan pemulihan dari acks hilang, dan perbaikan lain" + +#: i2p2www/blog/2013/09/30/0.9.8-Release.rst:122 +msgid "Use Transifex for translation of initial news and HTTP proxy error pages" +msgstr "" +"Gunakan Transifex untuk terjemahan berita awal dan halaman error untuk " +"HTTP proxy" + +#: i2p2www/blog/2013/09/30/0.9.8-Release.rst:123 +msgid "" +"Translation updates: Chinese, French, German, Portuguese, Russian, " +"Swedish, Turkish" +msgstr "" +"Pembaruan terjemahan: Mandarin, Perancis, Jerman, Portugis, Rusia, " +"Swedia, Turki" + +#: i2p2www/blog/2013/09/30/0.9.8-Release.rst:124 +msgid "New Romanian translation" +msgstr "Terjemahan baru bahasa Rumania" + +#: i2p2www/blog/2013/09/30/0.9.8-Release.rst:126 +msgid "Wrapper 3.5.20 (new installs and PPA only)" +msgstr "Wrapper 3.5.20 (hanya untuk instalasi baru dan PPA)" + +#: i2p2www/blog/2013/10/02/0.9.8.1-Release.rst:2 +msgid "0.9.8.1 Release" +msgstr "0.9.8.1 Rilis" + +#: i2p2www/blog/2013/10/02/0.9.8.1-Release.rst:7 +#: i2p2www/blog/2013/10/02/0.9.8.1-Release.rst:9 +msgid "" +"0.9.8.1 fixes a problem with updating to 0.9.8 on Windows for some " +"people. New installs and non-Windows platforms are not affected, however " +"all platforms will automatically update even if running 0.9.8." +msgstr "" +"0.9.8.1 memperbaiki masalah dengan pembaruan ke 0.9.8 pada Windows untuk " +"beberapa orang. Instalasi baru dan platform non-Windows tidak " +"terpengaruh, namun semua platform akan secara otomatis memperbarui bahkan" +" jika menjalankan 0.9.8." + +#: i2p2www/blog/2013/10/02/0.9.8.1-Release.rst:11 +msgid "" +"See the `Trac ticket`_ for details and workarounds. See\n" +"`the 0.9.8 release notes`_ for information on IPv6 and other changes." +msgstr "" +"Lihat _ 'Tiket Trac' untuk rincian dan penanganannya. Lihat '0.9.8 " +"catatan rilis'_ untuk informasi tentang IPv6 dan perubahan lainnya." + +#: i2p2www/blog/2013/10/02/0.9.8.1-Release.rst:16 +msgid "" +"Due to recent attacks, logins are disabled on `Trac`_ and new " +"registrations are\n" +"disabled on `zzz.i2p`_. Until those services are restored, please report " +"all\n" +"bugs on IRC freenode or IRC2P #i2p-dev." +msgstr "" +"Karena serangan baru-baru ini, login dinonaktifkan pada 'Trac'_ dan " +"pendaftaran baru dinonaktifkan pada 'zzz.i2p'_. Sampai layanan tersebut " +"dipulihkan, tolong laporkan semua bug di IRC freenode atau IRC2P #i2p-" +"dev." + +#: i2p2www/blog/2013/10/02/0.9.8.1-Release.rst:22 +msgid "`Trac ticket`" +msgstr "`Trac ticket` " + +#: i2p2www/blog/2013/10/02/0.9.8.1-Release.rst:23 +msgid "`the 0.9.8 release notes`" +msgstr "`catatan rilis 0.9.8`" + +#: i2p2www/blog/2013/12/07/0.9.9-Release.rst:2 +msgid "0.9.9 Release" +msgstr "0.9.9 Rilis" + +#: i2p2www/blog/2013/12/07/0.9.9-Release.rst:7 +#: i2p2www/blog/2013/12/07/0.9.9-Release.rst:9 +msgid "" +"0.9.9 fixes a number of bugs in the netdb, streaming, and i2ptunnel, and " +"starts work on a year-long plan to increase the strength of the " +"cryptographic signing algorithms used in the router, and support multiple" +" algorithms and key lengths simultaneously. Automatic update files will " +"now be signed with 4096-bit RSA keys." +msgstr "" +"0.9.9 perbaikan beberapa bug di netdb, streaming, dan i2ptunnel, dan " +"mulai membuat rencana setahun untuk meningkatkan kekuatan algoritma " +"penandatanganan kriptografi yang digunakan dalam router, dan mendukung " +"berbagai algoritma dan panjang kunci secara bersamaan. File pembaruan " +"otomatis sekarang akan ditandatangani dengan kunci 4096-bit RSA" + +#: i2p2www/blog/2013/12/07/0.9.9-Release.rst:11 +msgid "" +"We now support SSL between your router and your servers for security.\n" +"See `this development thread`_ for more information." +msgstr "" +"Kami sekarang mendukung SSL antara router Anda dan server Anda untuk " +"keamanan.\n" +"Lihat `this development thread`_ untuk informasi lebih lanjut." + +#: i2p2www/blog/2013/12/07/0.9.9-Release.rst:16 +msgid "`this development thread`" +msgstr "`thread pengembangan ini` " + +#: i2p2www/blog/2013/12/07/0.9.9-Release.rst:18 +msgid "" +"As usual, we recommend that you update to this release.\n" +"The best way to maintain security and help the network is to run the " +"latest release.\n" +"Several members of the I2P team will be at 30C3 in Hamburg this year.\n" +"Come say hello and ask for an I2P sticker.\n" +"Thanks to everyone for their support this year." +msgstr "" +"Seperti biasa, kami merekomendasikan Anda untuk memperbaharui ke rilis " +"ini.\n" +"Cara terbaik mempertahankan keamanan dan membantu jaringan adalah " +"menjalankan rilis terbaru.\n" +"Beberapa anggota dari tim I2P akan hadir di 30C 3 di Hamburg tahun ini.\n" +"Datanglah dan minta stiker I2P.\n" +"Terima kasih kepada semua orang untuk dukungan mereka di tahun ini." + +#: i2p2www/blog/2013/12/07/0.9.9-Release.rst:30 +msgid "Don't build client tunnels through zero-hop exploratory tunnels" +msgstr "Jangan membangun tunnel klien melalui zero-hop exploratory tunnel" + +#: i2p2www/blog/2013/12/07/0.9.9-Release.rst:31 +msgid "New \"su3\" file support using stronger keys" +msgstr "Dukungan baru untuk file \"su3\" dengan menggunakan kunci yang lebih kuat" + +#: i2p2www/blog/2013/12/07/0.9.9-Release.rst:32 +msgid "Use su3 for updates" +msgstr "Gunakan su3 untuk pembaruan" + +#: i2p2www/blog/2013/12/07/0.9.9-Release.rst:36 +msgid "Issues with losing data when closing streams" +msgstr "Masalah data hilang ketika menutup stream" + +#: i2p2www/blog/2013/12/07/0.9.9-Release.rst:37 +msgid "Fix various streaming connection limit issues" +msgstr "Memperbaiki beberapa masalah dalam batasan koneksi streaming" + +#: i2p2www/blog/2013/12/07/0.9.9-Release.rst:38 +msgid "Issues with resource usage of closed connections" +msgstr "Masalah dengan pemakaian sumber daya koneksi tertutup" + +#: i2p2www/blog/2013/12/07/0.9.9-Release.rst:39 +msgid "Clean up timer threads in close-on-idle tunnels" +msgstr "Membersihkan timer thread di close-on-idle tunnels" + +#: i2p2www/blog/2013/12/07/0.9.9-Release.rst:40 +msgid "Several other streaming fixes" +msgstr "Beberapa perbaikan streaming" + +#: i2p2www/blog/2013/12/07/0.9.9-Release.rst:41 +msgid "Reject more non-public IPv6 addresses" +msgstr "Menolak lebih banyak alamat IPv6 non-publik" + +#: i2p2www/blog/2013/12/07/0.9.9-Release.rst:42 +msgid "Fix IPv6 GeoIP" +msgstr "Memperbaiki IPv6 GeoIP" + +#: i2p2www/blog/2013/12/07/0.9.9-Release.rst:43 +msgid "Fix peer selection in first minutes after startup" +msgstr "Memperbaiki pemilihan peer di beberapa menit pertama setelah startup" + +#: i2p2www/blog/2013/12/07/0.9.9-Release.rst:44 +msgid "Several I2PTunnel bug fixes" +msgstr "Beberapa perbaikan bug I2PTunnel" + +#: i2p2www/blog/2013/12/07/0.9.9-Release.rst:45 +msgid "Fix major i2psnark DHT bug that prevented magnets from working well" +msgstr "" +"Memperbaiki bug besar di DHT i2psnark yang mencegah magnet untuk bekerja " +"dengan baik" + +#: i2p2www/blog/2013/12/07/0.9.9-Release.rst:46 +msgid "" +"Fix client tunnels that fail due to name resolution failure at startup, " +"particularly with b32 hostnames" +msgstr "" +"Memperbaiki tunnel klien yang gagal karena kegagalan resolusi nama saat " +"startup, terutama dengan hostname b32" + +#: i2p2www/blog/2013/12/07/0.9.9-Release.rst:47 +msgid "Fix changing client i2ptunnel target list" +msgstr "Memperbaiki pengubahan daftar target klien i2ptunnel" + +#: i2p2www/blog/2013/12/07/0.9.9-Release.rst:48 +msgid "" +"Fix major bugs preventing reception of encrypted responses to leaseset " +"lookups and verifies" +msgstr "" +"Memperbaiki bug besar yang mencegah penerimaan respon terenkripsi " +"terhadap pencarian leaseset dan verifikasi" + +#: i2p2www/blog/2013/12/07/0.9.9-Release.rst:49 +msgid "Fix bad links on some i2psnark buttons in Opera and text-mode browsers" +msgstr "" +"Memperbaiki link buruk pada beberapa tombol i2psnark di Opera dan browser" +" modus teks" + +#: i2p2www/blog/2013/12/07/0.9.9-Release.rst:50 +msgid "Fix NPE in Susimail" +msgstr "Memperbaiki NPE di Susimail" + +#: i2p2www/blog/2013/12/07/0.9.9-Release.rst:54 +msgid "Start work on supporting stronger signing keys in the router" +msgstr "Mulai mengerjakan dukungan signing key yang kuat di router" + +#: i2p2www/blog/2013/12/07/0.9.9-Release.rst:55 +msgid "Reduce thread usage for HTTP Server tunnels" +msgstr "Mengurangi penggunaan thread di server tunnel HTTP" + +#: i2p2www/blog/2013/12/07/0.9.9-Release.rst:56 +msgid "Auto-stop update torrent after some time" +msgstr "Auto-stop update torrent setelah beberapa waktu" + +#: i2p2www/blog/2013/12/07/0.9.9-Release.rst:57 +msgid "Add ability to stop webapp via console" +msgstr "Menambahkan kemampuan untuk menghentikan webapp melalui console" + +#: i2p2www/blog/2013/12/07/0.9.9-Release.rst:58 +msgid "New POST throttler in HTTP server tunnel" +msgstr "Pengurangan POST baru di server tunnel HTTP" + +#: i2p2www/blog/2013/12/07/0.9.9-Release.rst:59 +msgid "Improve connection throttling" +msgstr "Memperbaiki koneksi throttling" + +#: i2p2www/blog/2013/12/07/0.9.9-Release.rst:60 +msgid "More work to reduce number of connections" +msgstr "Lebih banyak pekerjaan untuk mengurangi jumlah koneksi" + +#: i2p2www/blog/2013/12/07/0.9.9-Release.rst:61 +msgid "Re-enable router info expiration job" +msgstr "Mengaktifkan ulang router info pekerjaan kadaluarsa" + +#: i2p2www/blog/2013/12/07/0.9.9-Release.rst:62 +msgid "" +"Extend router info expiration and other changes to reduce load on " +"floodfills" +msgstr "" +"Memperpanjang kadaluarsa router info dan perubahan lain untuk mengurangi " +"beban pada floodfills" + +#: i2p2www/blog/2013/12/07/0.9.9-Release.rst:63 +msgid "Support multiple servers through a single server tunnel" +msgstr "Mendukung beberapa server melalui sebuah tunnel server tunggal" + +#: i2p2www/blog/2013/12/07/0.9.9-Release.rst:64 +msgid "Support specification of server port in i2ptunnel clients" +msgstr "Dukungan spesifikasi port server di klien i2ptunnel" + +#: i2p2www/blog/2013/12/07/0.9.9-Release.rst:65 +msgid "Add support for SSL connections from i2ptunnel to external server" +msgstr "Menambahkan dukungan untuk koneksi SSL dari i2ptunnel ke server eksternal" + +#: i2p2www/blog/2013/12/07/0.9.9-Release.rst:66 +msgid "SSL and crypto code refactoring" +msgstr "refactoring SSL dan kode kripto" + +#: i2p2www/blog/2013/12/07/0.9.9-Release.rst:67 +msgid "i2psnark storage code refactoring" +msgstr "refactoring kode penyimpanan i2psnark" + +#: i2p2www/blog/2013/12/07/0.9.9-Release.rst:68 +msgid "New destination cache" +msgstr "Cache destinasi baru" + +#: i2p2www/blog/2013/12/07/0.9.9-Release.rst:69 +msgid "Lots of code cleanup and resolution of findbugs warnings" +msgstr "Banyak pembersihan kode dan penyelesaian peringatan di findbugs" + +#: i2p2www/blog/2013/12/07/0.9.9-Release.rst:70 +msgid "New Japanese translation (partial)" +msgstr "Terjemahan baru bahasa Jepang (sebagian)" + +#: i2p2www/blog/2013/12/07/0.9.9-Release.rst:71 +msgid "" +"Translation updates: French, German, Italian, Romanian, Russian, Spanish," +" Swedish, and others" +msgstr "" +"Pembaruan terjemahan: Perancis, Jerman, Italia, Rumania, Rusia, Spanyol, " +"Swedia, dan lainnya." + +#: i2p2www/blog/2013/12/07/0.9.9-Release.rst:73 +msgid "Wrapper 3.5.22 (new installs and PPA only)" +msgstr "Wrapper 3.5.22 (hanya untuk instalasi baru dan PPA)" + +#: i2p2www/blog/2014/01/21/Syndie-1.105b-Release.rst:1 +msgid "" +"=====================\n" +"Syndie 1.105b Release\n" +"=====================" +msgstr "" +"=====================\n" +"Rilis Syndie 1.105b\n" +"=====================" + +#: i2p2www/blog/2014/01/21/Syndie-1.105b-Release.rst:9 +msgid "Update to HSQLDB 2.3.1" +msgstr "Pembaruan ke HSQLDB 2.3.1" + +#: i2p2www/blog/2014/01/21/Syndie-1.105b-Release.rst:11 +msgid "" +"This is the first stable release since February 2013.\n" +"It is essentially the same as 1.104b-7-rc, with some translation updates." +msgstr "" +"Ini adalah rilis stable sejak Februari 2013\n" +"Hal ini pada dasarnya sama dengan 1.104b-7-rc, dengan beberapa update " +"terjemahan." + +#: i2p2www/blog/2014/01/21/Syndie-1.105b-Release.rst:16 +msgid "" +"All binaries and source packages are at `syndie.de`_ and `syndie.i2p`_.\n" +"Plugins are available at `plugins.i2p`_ and `stats.i2p`_." +msgstr "" +"Semua paket binari dan sumber kode ada di `syndie.de`_ dan `syndie.i2p`_." +"\n" +"Plugins tersedia di `plugins.i2p`_ dan `stats.i2p`_." + +#: i2p2www/blog/2014/01/21/Syndie-1.105b-Release.rst:21 +msgid "" +"For those of you upgrading from 1.103b, you will find syndie startup and " +"shutdown much faster due to the new version of HSQLDB." +msgstr "" +"Bagi Anda yang memperbarui dari 1.103b, Anda akan menemukan syndie " +"startup dan shutdown yang jauh lebih cepat karena versi baru dari HSQLDB." + +#: i2p2www/blog/2014/01/21/Syndie-1.105b-Release.rst:25 +msgid "" +"If you have a large database or an identity you wish to preserve,\n" +"you may wish to back up your entire ~/.syndie directory before you start." +"\n" +"The upgrade process does make its own backup, however you may find it " +"easier to use your own backup if the upgrade fails." +msgstr "" +"Jika Anda memiliki database besar atau ada identitas yang ingin disimpan," +" Anda mungkin ingin mencadangankan seluruh direktori ~/.syndie Anda " +"sebelum Anda mulai.\n" +"Proses pembaruan membuat cadangan sendiri, namun Anda mungkin akan lebih " +"mudah untuk menggunakan cadangan Anda sendiri jika pembaruan gagal." + +#: i2p2www/blog/2014/01/21/Syndie-1.105b-Release.rst:31 +msgid "" +"Upgrades from 1.103b may fail for some people due to database corruption " +"due to bugs in the old HSQLDB.\n" +"Unfortunately, we don't know how to fix it.\n" +"Your alternatives are to start over with a clean database, or stay with " +"1.103b forever.\n" +"Sorry about that." +msgstr "" +"Pembaruan dari 1.103b mungkin gagal untuk beberapa orang karena korupsi " +"database karena bug di HSQLDB lama.\n" +"Sayangnya, kita tidak tahu bagaimana memperbaikinya.\n" +"Alternatifnya adalah untuk memulai lagi dengan database bersih, atau " +"tetap dengan 1.103b selamanya.\n" +"Maaf tentang itu." + +#: i2p2www/blog/2014/01/21/Syndie-1.105b-Release.rst:43 +#: i2p2www/blog/2014/01/22/0.9.10-Release.rst:29 +msgid "" +"As usual, we recommend that you update to this release.\n" +"The best way to maintain security and help the network is to run the " +"latest release." +msgstr "" +"Seperti biasa, kami merekomendasikan Anda untuk memperbaharui ke rilis " +"ini.\n" +"Cara terbaik mempertahankan keamanan dan membantu jaringan adalah " +"menjalankan rilis terbaru." + +#: i2p2www/blog/2014/01/21/Syndie-1.105b-Release.rst:56 +msgid "GUI Improvements and Fixes" +msgstr "Perbaikan GUI dan perbaikan" + +#: i2p2www/blog/2014/01/21/Syndie-1.105b-Release.rst:72 +msgid "Syndication" +msgstr "Sindikasi" + +#: i2p2www/blog/2014/01/21/Syndie-1.105b-Release.rst:83 +msgid "Database" +msgstr "Database " + +#: i2p2www/blog/2014/01/21/Syndie-1.105b-Release.rst:104 +msgid "New translations" +msgstr "Terjemahan baru" + +#: i2p2www/blog/2014/01/21/Syndie-1.105b-Release.rst:105 +#: i2p2www/blog/2014/01/22/0.9.10-Release.rst:60 +#: i2p2www/blog/2014/02/08/0.9.11-Release.rst:56 +#: i2p2www/blog/2014/03/31/0.9.12-Release.rst:99 +#: i2p2www/blog/2014/05/22/0.9.13-Release.rst:57 +#: i2p2www/blog/2014/07/26/0.9.14-Release.rst:69 +#: i2p2www/blog/2014/09/20/0.9.15-Release.rst:72 +#: i2p2www/blog/2014/11/01/0.9.16-Release.rst:82 +#: i2p2www/blog/2014/11/30/0.9.17-Release.rst:77 +#: i2p2www/blog/2015/02/22/0.9.18-Release.rst:57 +#: i2p2www/blog/2015/04/12/0.9.19-Release.rst:65 +#: i2p2www/blog/2015/06/02/0.9.20-Release.rst:95 +#: i2p2www/blog/2015/07/31/0.9.21-Release.rst:71 +#: i2p2www/blog/2015/09/12/0.9.22-Release.rst:52 +#: i2p2www/blog/2015/11/19/0.9.23-Release.rst:111 +#: i2p2www/blog/2016/01/27/0.9.24-Release.rst:96 +#: i2p2www/blog/2016/03/22/0.9.25-Release.rst:67 +#: i2p2www/blog/2016/06/07/0.9.26-Release.rst:87 +#: i2p2www/blog/2016/10/17/0.9.27-Release.rst:64 +#: i2p2www/blog/2016/12/12/0.9.28-Release.rst:94 +#: i2p2www/blog/2017/02/27/0.9.29-Release.rst:68 +#: i2p2www/blog/2017/05/03/0.9.30-Release.rst:93 +#: i2p2www/blog/2017/08/07/0.9.31-Release.rst:59 +msgid "Translation updates" +msgstr "Pembaruan terjemahan" + +#: i2p2www/blog/2014/01/22/0.9.10-Release.rst:1 +msgid "" +"==============\n" +"0.9.10 Release\n" +"==============" +msgstr "" +"==============\n" +"Rilis 0.9.10\n" +"==============" + +#: i2p2www/blog/2014/01/22/0.9.10-Release.rst:9 +msgid "" +"0.9.10 changes the mechanism for doing LeaseSet lookups, making it more " +"difficult for an attacker to correlate a Destination with a Router." +msgstr "" +"0.9.10 mengubah mekanisme untuk melakukan pencarian LeaseSet, membuatnya " +"lebih sulit bagi penyerang untuk mengkorelasikan Destinasi dengan Router." + +#: i2p2www/blog/2014/01/22/0.9.10-Release.rst:11 +msgid "" +"0.9.10 changes the mechanism for doing LeaseSet lookups, making it more " +"difficult for an attacker\n" +"to correlate a Destination with a Router. It also fixes character " +"encoding bugs in susimail,\n" +"and includes lots of other bug fixes and translation updates.\n" +"Most of you will update via torrent, using the new \"su3\" update format " +"with stronger keys." +msgstr "" +"0.9.10 mengubah mekanisme untuk melakukan pencarian LeaseSet, membuatnya " +"lebih sulit bagi penyerang untuk mengkorelasikan Destinasi dengan Router." +" Juga perbaikan bug encoding karakter di susimail, dan mencakup banyak " +"perbaikan bug dan pembaruan terjemahan lainnya.\n" +"Sebagian besar dari Anda akan memperbarui melalui torrent, menggunakan " +"format update \"su3\" yang baru dengan key yang kuat." + +#: i2p2www/blog/2014/01/22/0.9.10-Release.rst:18 +msgid "" +"We recently attended `30C3`_ and `Real World Crypto`_, making several new" +"\n" +"connections and formulating `big plans`_ for 2014. Thanks to those who\n" +"supported our attendance with their `donations`_!" +msgstr "" +"Kami baru saja menghadiri ' 30C3' _ dan 'Real World Crypto' _, membuat " +"beberapa koneksi baru dan merumuskan 'rencana besar'_ untuk 2014. Terima " +"kasih kepada mereka yang mendukung kehadiran kami dengan 'sumbangan'_ " +"mereka!" + +#: i2p2www/blog/2014/01/22/0.9.10-Release.rst:26 +msgid "`big plans`" +msgstr "'rencana besar'" + +#: i2p2www/blog/2014/01/22/0.9.10-Release.rst:27 +msgid "`donations`" +msgstr "'sumbangan'" + +#: i2p2www/blog/2014/01/22/0.9.10-Release.rst:38 +msgid "Use client tunnels for LeaseSet lookups" +msgstr "Menggunakan client tunnel untuk pencarian LeaseSet" + +#: i2p2www/blog/2014/01/22/0.9.10-Release.rst:42 +msgid "" +"Flood netdb stores to new location before midnight to prevent lookup " +"fails after midnight" +msgstr "" +"Flood netdb menyimpan ke lokasi baru sebelum tengah malam untuk mencegah " +"lookup gagal setelah tengah malam" + +#: i2p2www/blog/2014/01/22/0.9.10-Release.rst:43 +msgid "Fix setting I2CP host/port in BOB" +msgstr "Memperbaiki pengaturan I2CP host/port di BOB" + +#: i2p2www/blog/2014/01/22/0.9.10-Release.rst:44 +msgid "Fix several character encoding issues in susimail" +msgstr "Memperbaiki beberapa masalah character encoding di susimail" + +#: i2p2www/blog/2014/01/22/0.9.10-Release.rst:45 +msgid "Fix StandardServerSocket.close()" +msgstr "Memperbaiki StandardServerSocket.close()" + +#: i2p2www/blog/2014/01/22/0.9.10-Release.rst:46 +msgid "Fix exception in PrivateKeyFile" +msgstr "Memperbaiki exeption di PrivateKeyFile" + +#: i2p2www/blog/2014/01/22/0.9.10-Release.rst:47 +msgid "Fixes in RouterInfo expiration task" +msgstr "Perbaikan dalam RouterInfo expiration task" + +#: i2p2www/blog/2014/01/22/0.9.10-Release.rst:51 +msgid "Tweaks to reduce number of peer connections" +msgstr "Perbaikan untuk mengurangi jumlah koneksi peer" + +#: i2p2www/blog/2014/01/22/0.9.10-Release.rst:52 +msgid "Several threading fixes to reduce blocking in the timer queues" +msgstr "Beberapa perbaikan threading untuk mengurangi blocking di antrian timer" + +#: i2p2www/blog/2014/01/22/0.9.10-Release.rst:53 +msgid "Disable streaming ping handling for clients" +msgstr "Menonaktifkan penanganan ping streaming untuk klien" + +#: i2p2www/blog/2014/01/22/0.9.10-Release.rst:54 +msgid "Use i2psnark's Kademlia library for the router netdb also" +msgstr "Menggunakan library i2psnark's Kademlia untuk router netdb juga" + +#: i2p2www/blog/2014/01/22/0.9.10-Release.rst:55 +msgid "" +"Increase outbound exploratory default to 2 + 0-1 hops, part of gradual " +"increase to 3 hops in/out" +msgstr "" +"Meningkatkan default untuk outbound exploratory ke 2 + 0-1 hop, sebagian " +"dari peningkatan bertahap 3 hop masuk/keluar" + +#: i2p2www/blog/2014/01/22/0.9.10-Release.rst:56 +msgid "More findbugs fixes" +msgstr "Tambahan perbaikan findbugs" + +#: i2p2www/blog/2014/01/22/0.9.10-Release.rst:57 +msgid "Streaming library refactoring" +msgstr "Streaming library refactoring " + +#: i2p2www/blog/2014/01/22/0.9.10-Release.rst:58 +msgid "Support country-specific translations" +msgstr "Dukungan terjemahan negara spesifik" + +#: i2p2www/blog/2014/01/22/0.9.10-Release.rst:59 +msgid "New Brazilian Portuguese translation" +msgstr "Terjemahan baru untuk Portugis Brasil " + +#: i2p2www/blog/2014/02/08/0.9.11-Release.rst:1 +msgid "" +"==============\n" +"0.9.11 Release\n" +"==============" +msgstr "" +"==============\n" +"Rilis 0.9.11\n" +"==============" + +#: i2p2www/blog/2014/02/08/0.9.11-Release.rst:9 +msgid "" +"0.9.11 adds support for outproxy plugins, improves lease set lookup " +"security, and reduces memory usage." +msgstr "" +"0.9.11 menambahkan dukungan untuk plugin outproxy, meningkatkan keamanan " +"lease set lookup, dan mengurangi penggunaan memori." + +#: i2p2www/blog/2014/02/08/0.9.11-Release.rst:11 +#, python-format +msgid "" +"0.9.11 continues improving LeaseSet lookup and storage to prevent an " +"attacker\n" +"from correlating a Destination with a Router. It adds support for the\n" +"%(orchid)s outproxy plugin which is available at %(url)s. There is a\n" +"reduction in memory usage due to fixes in the transports. We have some " +"I2CP\n" +"protocol improvements that will provide better lookup facilities and\n" +"authorization protection for external clients. Of course, there's also " +"the\n" +"usual collection of bug fixes. All users should update." +msgstr "" +"0.9.11 terus meningkatkan LeaseSet lookup dan penyimpanan untuk mencegah " +"penyerang melakukan korelasi Destinasi dengan Router. Menambahkan " +"dukungan untuk plugin outproxy %(orchid)s yang tersedia di %(url)s. Ada " +"penurunan dalam penggunaan memori karena perbaikan di transport. Kami " +"melakukan beberapa perbaikan protokol I2CP yang akan memberikan fasilitas" +" lookup yang lebih baik dan perlindungan otorisasi untuk klien eksternal." +" Tentu saja, ada juga beberapa perbaikan bug rutin. Semua pengguna harus " +"memperbarui." + +#: i2p2www/blog/2014/02/08/0.9.11-Release.rst:21 +msgid "" +"This may be the last release that works with Java 5, which is very old " +"and\n" +"unsupported. If you are using a Java 5 or 6 runtime, we strongly " +"recommend that\n" +"you upgrade to Java 7." +msgstr "" +"Ini mungkin rilis terakhir yang menggunakan Java 5, yang sudah sangat tua" +" dan tidak didukung. Jika Anda menggunakan runtime Java 5 atau 6, kami " +"sangat menyarankan Anda memperbarui ke Java 7." + +#: i2p2www/blog/2014/02/08/0.9.11-Release.rst:30 +#: i2p2www/blog/2014/03/31/0.9.12-Release.rst:30 +#: i2p2www/blog/2014/05/22/0.9.13-Release.rst:17 +#: i2p2www/blog/2014/09/20/0.9.15-Release.rst:32 +#: i2p2www/blog/2014/11/01/0.9.16-Release.rst:30 +#: i2p2www/blog/2014/11/30/0.9.17-Release.rst:37 +#: i2p2www/blog/2015/02/22/0.9.18-Release.rst:21 +#: i2p2www/blog/2015/04/12/0.9.19-Release.rst:24 +#: i2p2www/blog/2015/06/02/0.9.20-Release.rst:29 +#: i2p2www/blog/2015/07/31/0.9.21-Release.rst:25 +#: i2p2www/blog/2015/09/12/0.9.22-Release.rst:24 +#: i2p2www/blog/2015/11/19/0.9.23-Release.rst:67 +#: i2p2www/blog/2016/01/27/0.9.24-Release.rst:47 +#: i2p2www/blog/2016/03/22/0.9.25-Release.rst:29 +#: i2p2www/blog/2016/06/07/0.9.26-Release.rst:48 +#: i2p2www/blog/2016/10/17/0.9.27-Release.rst:27 +#: i2p2www/blog/2016/12/12/0.9.28-Release.rst:29 +#: i2p2www/blog/2017/02/27/0.9.29-Release.rst:26 +#: i2p2www/blog/2017/05/03/0.9.30-Release.rst:50 +#: i2p2www/blog/2017/08/07/0.9.31-Release.rst:26 +msgid "" +"As usual, we recommend that you update to this release. The best way to\n" +"maintain security and help the network is to run the latest release." +msgstr "" +"Seperti biasa, kami merekomendasikan Anda untuk memperbaharui ke rilis " +"ini. Cara terbaik untuk menjaga keamanan dan membantu jaringan adalah " +"dengan menjalankan rilis terbaru." + +#: i2p2www/blog/2014/02/08/0.9.11-Release.rst:39 +msgid "More leaseset handling improvements" +msgstr "Lebih banyak perbaikan penanganan leaseset" + +#: i2p2www/blog/2014/02/08/0.9.11-Release.rst:43 +msgid "Fix NPE after client shutdown" +msgstr "Memperbaiki NPE setelah shutdown klien" + +#: i2p2www/blog/2014/02/08/0.9.11-Release.rst:44 +msgid "Fix wrapper log encoding on logs page" +msgstr "Memperbaiki pengkodean log wrapper pada halaman log" + +#: i2p2www/blog/2014/02/08/0.9.11-Release.rst:45 +msgid "Streaming ping and I2Ping fixes" +msgstr "Perbaikan streaming ping dan I2Ping " + +#: i2p2www/blog/2014/02/08/0.9.11-Release.rst:49 +msgid "Add support for Orchid plugin" +msgstr "Menambahkan dukungan untuk plugin Orchid" + +#: i2p2www/blog/2014/02/08/0.9.11-Release.rst:50 +msgid "Add HTTPS support to HTTP client proxy" +msgstr "Menambahkan dukungan proxy klien HTTP" + +#: i2p2www/blog/2014/02/08/0.9.11-Release.rst:51 +msgid "New I2CP support for hostname lookups by external clients" +msgstr "Dukungan I2CP baru untuk pencarian nama host oleh klien eksternal" + +#: i2p2www/blog/2014/02/08/0.9.11-Release.rst:52 +msgid "" +"Stricter I2CP authorization enforcement of external clients (incompatible" +" change)" +msgstr "" +"penegakan otorisasi I2CP lebih ketat dari klien eksternal (perubahan " +"tidak kompatibel)" + +#: i2p2www/blog/2014/02/08/0.9.11-Release.rst:53 +msgid "Increase default inbound exploratory tunnel length variance" +msgstr "Meningkatkan varians dari panjangnya default inbound exploratory tunnel" + +#: i2p2www/blog/2014/02/08/0.9.11-Release.rst:54 +msgid "Big reduction in memory usage by transports" +msgstr "Pengurangan besar di penggunaan memori oleh Transport" + +#: i2p2www/blog/2014/02/08/0.9.11-Release.rst:55 +msgid "All in-net updates via torrent" +msgstr "Semua pembaruan via jaringan melalui torrent" + +#: i2p2www/blog/2014/02/16/i2pbrowser-malware.rst:1 +msgid "" +"=========================\n" +"Malware at i2pbrowser.net\n" +"=========================" +msgstr "" +"=========================\n" +"Malware di i2pbrowser.net\n" +"=========================" + +#: i2p2www/blog/2014/02/16/i2pbrowser-malware.rst:8 +msgid "" +"The site i2pbrowser.net is a fake I2P website mirror serving up malware " +"for Windows." +msgstr "" +"Situs I2pbrowser.net adalah situs palsu I2P situs yang menyebarkan " +"malware untuk Windows." + +#: i2p2www/blog/2014/02/16/i2pbrowser-malware.rst:10 +msgid "" +"We have recently been made aware of the existence of i2pbrowser.net. This" +"\n" +"website copies our homepage and download page, and attempts to trick " +"users into\n" +"downloading Windows malware." +msgstr "" +"Kami baru-baru baru tahu keberadaan i2pbrowser.net. Situs ini menyalin " +"halaman homepage dan download kami, serta berusaha untuk menipu pengguna " +"untuk mengunduh Windows malware." + +#: i2p2www/blog/2014/02/16/i2pbrowser-malware.rst:16 +msgid "" +"There are several indicators that point to i2pbrowser.net being a malware" +" site:" +msgstr "" +"Ada beberapa indikasi yang mengarah ke i2pbrowser.net adalah sebuah situs" +" malware:" + +#: i2p2www/blog/2014/02/16/i2pbrowser-malware.rst:20 +msgid "The domain was registered on February 10th, 2014." +msgstr "Domain ini terdaftar pada tanggal 10 Februari tahun 2014." + +#: i2p2www/blog/2014/02/16/i2pbrowser-malware.rst:21 +msgid "" +"The download URLs for Windows, Mac OSX, Linux, Android etc. all link to " +"the same .exe file." +msgstr "" +"Semua URL unduh untuk Windows, Mac OSX, Linux, Android, dll mentaut ke " +"file .exe yang sama." + +#: i2p2www/blog/2014/02/16/i2pbrowser-malware.rst:22 +msgid "The .exe is only 741 KB; the official Windows installer for I2P is 13 MB." +msgstr "" +"FIle .exe hanya sebesar 741 KB; Windows installer resmi untuk I2P adalah " +"sebesar 13 MB." + +#: i2p2www/blog/2014/02/16/i2pbrowser-malware.rst:24 +msgid "" +"We have not examined the malware ourselves, but it does not appear to be " +"very\n" +"sophisticated; it is not integrated into or bundled with the I2P " +"software.\n" +"Information security expert `Lance James`_ posted `a tweet`_ labelling it" +" as\n" +"\"a standard dark comet rat\"." +msgstr "" +"Kita belum meneliti malware ini, tetapi ini terlihat tidak begitu " +"canggih; tidak terintegrasi ke dalam atau dibundel dengan perangkat lunak" +" I2P.\n" +"Ahli keamanan informasi 'Lance James' _ membuat 'tweet' _ yang " +"menyebutnya sebagai \"a standard dark comet rat\"." + +#: i2p2www/blog/2014/02/16/i2pbrowser-malware.rst:31 +msgid "" +"Spread the word. The only official download locations for I2P are linked " +"on our\n" +"`download page`_. All I2P download packages are GPG-signed by the\n" +"`release signing key`_." +msgstr "" +"Sebarkan berita ini. Lokasi resmi download untuk I2P hanya terhubung pada" +" 'halaman download' _ kami. Semua paket download I2P ditandatangani " +"dengan GPG oleh `release signing key`_." + +#: i2p2www/blog/2014/02/16/i2pbrowser-malware.rst:38 +msgid "`a tweet`" +msgstr "`sebuah tweet`" + +#: i2p2www/blog/2014/02/16/i2pbrowser-malware.rst:40 +msgid "`release signing key`" +msgstr "`release signing key` " + +#: i2p2www/blog/2014/03/12/press-release-ddg-donation.rst:1 +msgid "" +"================================================================\n" +"Search Engine DuckDuckGo Awards Invisible Internet Project $5000\n" +"================================================================" +msgstr "" +"================================================================\n" +"Search Engine DuckDuckGo Awards Invisible Internet Project $5000\n" +"================================================================ " + +#: i2p2www/blog/2014/03/12/press-release-ddg-donation.rst:10 +msgid "" +"Search engine `DuckDuckGo`_ `donates`_ $5000 to the `Invisible Internet " +"Project`_ (I2P) in their open source donation program." +msgstr "" +"Mesin pencari 'DuckDuckGo' _ 'menyumbangkan' _ $5000 untuk `Invisible " +"Internet Project`_ (I2P) dalam program donasi open source mereka." + +#: i2p2www/blog/2014/03/12/press-release-ddg-donation.rst:12 +msgid "" +"**Somewhere, NH** -- Internet search company `DuckDuckGo`_ `donates`_\n" +"$5000 to the `Invisible Internet Project`_ (I2P) as part of their yearly " +"open-source\n" +"donation program. The award was granted on the basis of `nominations`_ by" +" members of the public\n" +"on the DuckDuckGo community portal. With an emphasis on privacy, " +"DuckDuckGo provides a search\n" +"engine which does not track its users or store personal data. I2P is an " +"anonymous network intended to\n" +"protect individuals from dragnet surveillance regularly performed by ISPs" +" and governments." +msgstr "" +"**Suatu tempat, NH **--Perusahaan Pencarian Internet 'DuckDuckGo' _ " +"'menyumbangkan' _ $5000 untuk `Invisible Internet Project`_ (I2P) sebagai" +" bagian dari program sumbangan tahunan open source mereka. Penghargaan " +"diberikan berdasarkan 'nominasi'_ oleh anggota umum pada portal komunitas" +" DuckDuckGo. Dengan penekanan pada privasi, DuckDuckGo menyediakan sebuah" +" mesin pencari yang tidak melacak penggunanya atau menyimpan data " +"pribadi. I2p adalah jaringan anonim dimaksudkan untuk melindungi individu" +" dari pengawasan dragnet tersebut yang secara teratur dilakukan oleh ISP " +"dan pemerintah." + +#: i2p2www/blog/2014/03/12/press-release-ddg-donation.rst:21 +#: i2p2www/blog/2014/03/31/0.9.12-Release.rst:42 +msgid "" +"This marks the single largest donation ever received by I2P and reflects " +"a growing interest in\n" +"privacy and security by the Internet community. The funding will help I2P" +" to reach more users, expand\n" +"development, and audit the code. It will also enable I2P developers to " +"attend conferences, such\n" +"as the `Real-World Cryptography`_ conference in New York City, where the " +"developers met and\n" +"collaborated with cryptography experts pursuant to I2P's goals of " +"providing anonymity to the\n" +"public." +msgstr "" +"Ini menandai satu sumbangan terbesar yang pernah diterima oleh I2P dan " +"mencerminkan berkembangnya ketertarikan privasi dan keamanan oleh " +"komunitas Internet. Pendanaan akan membantu I2P untuk mencapai lebih " +"banyak pengguna, memperluas pengembangan, dan audit kode. Ini juga akan " +"memungkinkan pengembang I2P untuk menghadiri konferensi, seperti " +"konferensi `Real-World Cryptography`_ di New York City, di mana para " +"pengembang bertemu dan berkolaborasi dengan ahli kriptografi, sesuai " +"dengan tujuan I2P itu memberikan anonimitas kepada publik." + +#: i2p2www/blog/2014/03/12/press-release-ddg-donation.rst:30 +#: i2p2www/blog/2014/03/31/0.9.12-Release.rst:51 +msgid "" +"I2P thanks Gabriel Weinberg and DuckDuckGo for the generous donation,\n" +"and the I2P community for its support in the `nominations`_." +msgstr "" +"I2p berterima kasih kepada Gabriel Weinberg dan DuckDuckGo atas sumbangan" +" yang dermawan ini, dan masyarakat I2P untuk dukungan dalam 'nominasi'_." + +#: i2p2www/blog/2014/03/12/press-release-ddg-donation.rst:35 +msgid "" +"For more information about I2P, visit `our web site`_ or follow us `on " +"Twitter`_." +msgstr "" +"Untuk informasi lebih lanjut tentang I2P, kunjungi 'situs web kami' _ " +"atau ikuti kami 'di Twitter' _." + +#: i2p2www/blog/2014/03/12/press-release-ddg-donation.rst:39 +msgid "`donates`" +msgstr "'donasi'" + +#: i2p2www/blog/2014/03/12/press-release-ddg-donation.rst:42 +msgid "`our web site`" +msgstr "'situs web kami'" + +#: i2p2www/blog/2014/03/12/press-release-ddg-donation.rst:43 +#: i2p2www/blog/2014/03/31/0.9.12-Release.rst:59 +msgid "`nominations`" +msgstr "'nominasi'" + +#: i2p2www/blog/2014/03/12/press-release-ddg-donation.rst:45 +msgid "`on Twitter`" +msgstr "'di Twitter'" + +#: i2p2www/blog/2014/03/31/0.9.12-Release.rst:1 +msgid "" +"==============\n" +"0.9.12 Release\n" +"==============" +msgstr "" +"==============\n" +"Rilis 0.9.12\n" +"==============" + +#: i2p2www/blog/2014/03/31/0.9.12-Release.rst:10 +msgid "0.9.12 adds support for ECDSA and updates to Jetty 8" +msgstr "0.9.12 menambahkan dukungan untuk ECDSA dan update ke Jetty 8" + +#: i2p2www/blog/2014/03/31/0.9.12-Release.rst:12 +msgid "" +"I2P now requires Java 6 or higher.\n" +"We strongly recommend that you upgrade to Java 7.\n" +"If you are still using Java 5, you must upgrade your Java before " +"installing I2P 0.9.12." +msgstr "" +"I2p sekarang memerlukan Java 6 atau lebih tinggi.\n" +"Kami sangat menyarankan Anda memperbarui ke Java 7.\n" +"Jika Anda masih menggunakan Java 5, Anda harus memperbarui Java Anda " +"sebelum menginstal I2P 0.9.12." + +#: i2p2www/blog/2014/03/31/0.9.12-Release.rst:18 +msgid "" +"0.9.12 adds preliminary support for ECDSA-signed Destinations.\n" +"It contains several fixes for the handling of Delivery Status Messages " +"(acknowledgements)\n" +"and those messages are now end-to-end encrypted for increased security." +msgstr "" +"0.9.12 menambahkan dukungan awal untuk destinasi ECDSA-signed.\n" +"Ini berisi beberapa perbaikan untuk penanganan Pesan Status Pengiriman " +"(acknowledgements) dan pesan tersebut sekarang dienkripsi end-to-end " +"untuk peningkatan keamanan." + +#: i2p2www/blog/2014/03/31/0.9.12-Release.rst:24 +msgid "" +"We have upgraded to Jetty 8.\n" +"Jetty 8 is almost identical to Jetty 7, so there are no complex " +"configuration file conversions as there have been in past Jetty upgrades." +"\n" +"No manual changes should be necessary." +msgstr "" +"Kami telah memperbarui ke Jetty 8.\n" +"Jetty 8 hampir identik dengan Jetty 7, sehingga ada tidak ada konversi " +"file konfigurasi yang rumit seperti yang ada di pembaruian Jetty masa " +"lalu.\n" +"Tidak ada perubahan manual yang diperlukan." + +#: i2p2www/blog/2014/03/31/0.9.12-Release.rst:35 +msgid "" +"In early March, Internet search company `DuckDuckGo`_ `donated`_\n" +"$5000 to the `Invisible Internet Project` (I2P) as part of their yearly " +"open-source\n" +"donation program. The award was granted on the basis of `nominations`_ by" +" members of the public\n" +"on the DuckDuckGo community portal." +msgstr "" +"Pada awal Maret, perusahaan mesin pencari 'DuckDuckGo' _ 'menyumbangkan' " +"_ $5000 untuk `Invisible Internet Project`_ (I2P) dalam program donasi " +"open source mereka. Penghargaan diberikan berdasarkan 'nominasi'_ oleh " +"anggota umum pada portal komunitas DuckDuckGo." + +#: i2p2www/blog/2014/03/31/0.9.12-Release.rst:56 +msgid "`donated`" +msgstr "'menyumbangkan'" + +#: i2p2www/blog/2014/03/31/0.9.12-Release.rst:69 +msgid "Encrypt Delivery Status Messages" +msgstr "Mengenkripsi Pesan Status Pengiriman" + +#: i2p2www/blog/2014/03/31/0.9.12-Release.rst:70 +msgid "Add preliminary support for ECDSA-signed Destinations" +msgstr "Menambahkan dukungan awal untuk destinasi ECDSA-signed." + +#: i2p2www/blog/2014/03/31/0.9.12-Release.rst:71 +msgid "Add check for replayed NTCP session requests" +msgstr "Menambah pemeriksaan untuk permintaan replayed NTCP session" + +#: i2p2www/blog/2014/03/31/0.9.12-Release.rst:72 +msgid "Add throttling and blocking checks to streaming ping processing" +msgstr "" +"Menambah pemeriksaan throttling dan blocking ke dalam proses streaming " +"ping" + +#: i2p2www/blog/2014/03/31/0.9.12-Release.rst:78 +msgid "Fix RouterInfo exchange in NTCP" +msgstr "Memperbaiki RouterInfo exchange di NTCP" + +#: i2p2www/blog/2014/03/31/0.9.12-Release.rst:79 +msgid "Extend timeout for Delivery Status Messages" +msgstr "Memperpanjang timeout untuk Delivery Status Messages" + +#: i2p2www/blog/2014/03/31/0.9.12-Release.rst:80 +msgid "Drop streaming messages from recently closed connections" +msgstr "Menghapus streaming messages dari koneksi yang terakhir ditutup" + +#: i2p2www/blog/2014/03/31/0.9.12-Release.rst:81 +msgid "Fix restarts on Raspberry Pi" +msgstr "Memperbaiki masalah restart di Raspberry Pi" + +#: i2p2www/blog/2014/03/31/0.9.12-Release.rst:82 +msgid "Restore profileOrganizer.sameCountryBonus advanced config" +msgstr "Mengembalikan profileOrganizer.sameCountryBonus advanced config" + +#: i2p2www/blog/2014/03/31/0.9.12-Release.rst:83 +msgid "Fix for jwebcache and i2phex" +msgstr "Perbaikan untuk jwebcache dan i2phex" + +#: i2p2www/blog/2014/03/31/0.9.12-Release.rst:89 +msgid "Jetty 8.1.14.v20131031; Java 6 now required" +msgstr "Jetty 8.1.14.v20131031; Java 6 sekarang diperlukan" + +#: i2p2www/blog/2014/03/31/0.9.12-Release.rst:90 +msgid "Reduce target connection count again to reduce tunnel reject rate further" +msgstr "" +"Mengurangi lagi jumlah target koneksi untuk lebih banyak mengurangi " +"jumlah penolakan tunnel" + +#: i2p2www/blog/2014/03/31/0.9.12-Release.rst:91 +msgid "Add rate limit for outbound connections at tunnel endpoints" +msgstr "Menambah batasan jumlah untuk outbound connections di tunnel endpoints" + +#: i2p2www/blog/2014/03/31/0.9.12-Release.rst:92 +msgid "Add optional inproxy blocking in i2ptunnel" +msgstr "Menambah halangan opsional inproxy di i2ptunnel" + +#: i2p2www/blog/2014/03/31/0.9.12-Release.rst:93 +msgid "Use SSU session key for relay request/response when available" +msgstr "Menggunakan SSU session key untuk relay permintaan/respon bila tersedia" + +#: i2p2www/blog/2014/03/31/0.9.12-Release.rst:94 +msgid "Include HTTP POST data in SYN packet" +msgstr "Menambah data HTTP POST ke dalam paket SYN" + +#: i2p2www/blog/2014/03/31/0.9.12-Release.rst:95 +msgid "Add getopt library for better argument processing" +msgstr "Menambah getopt library untuk argument processing lebih baik" + +#: i2p2www/blog/2014/03/31/0.9.12-Release.rst:96 +msgid "More removal of Jetty dependencies" +msgstr "Penghapusan lebih banyak di dependensi Jetty " + +#: i2p2www/blog/2014/03/31/0.9.12-Release.rst:97 +msgid "Remove MD5 code, use Java libraries instead" +msgstr "Menghapus kode MD5, dan menggunakan Java libraries untuk seterusnya" + +#: i2p2www/blog/2014/03/31/0.9.12-Release.rst:98 +msgid "Change the default addressbook subscription URL" +msgstr "Mengubah URL default addressbook subscription" + +#: i2p2www/blog/2014/05/22/0.9.13-Release.rst:1 +msgid "" +"==============\n" +"0.9.13 Release\n" +"==============" +msgstr "" +"==============\n" +"Rilis 0.9.13\n" +"==============" + +#: i2p2www/blog/2014/05/22/0.9.13-Release.rst:10 +msgid "0.9.13 with SusiMail improvements and fixes for firewalled routers" +msgstr "0.9.13 dengan perbaikan SusiMail dan router dengan firewall" + +#: i2p2www/blog/2014/05/22/0.9.13-Release.rst:12 +msgid "" +"0.9.13 includes fixes for firewalled routers, netdb lookup improvements, " +"and a big SusiMail update.\n" +"Of course, there's also the usual collection of bug fixes and translation" +" updates." +msgstr "" +"0.9.13 memasukkan perbaikan untuk router dengan firewalled, peningkatan " +"netdb lookup, dan pembaruan besar di SusiMail.\n" +"Tentu saha, ada pembaruan rutin dari perbaikan bug dan pembaruan " +"terjemahan." + +#: i2p2www/blog/2014/05/22/0.9.13-Release.rst:22 +msgid "" +"zzz has updated his GPG keys, and the release files are signed with his\n" +"new keys. His new key fingerprint is:" +msgstr "" +"zzz memperbarui GPG keys miliknya, dan file rilis ditandatangani dengan " +"keys baru tersebut. Key fingerprint yang baru adalah:" + +#: i2p2www/blog/2014/05/22/0.9.13-Release.rst:31 +msgid "SusiMail" +msgstr "SusiMail " + +#: i2p2www/blog/2014/05/22/0.9.13-Release.rst:33 +msgid "Many UI improvements" +msgstr "Banyak peningkatan UI" + +#: i2p2www/blog/2014/05/22/0.9.13-Release.rst:34 +msgid "Implement local storage of messages" +msgstr "Penerapan penyimpanan lokal untuk pesan-pesan" + +#: i2p2www/blog/2014/05/22/0.9.13-Release.rst:35 +msgid "Add offline mode" +msgstr "Menambah modus offline" + +#: i2p2www/blog/2014/05/22/0.9.13-Release.rst:36 +msgid "Messages now deleted on server after download" +msgstr "Pesan sekarang dihapus di server setelah diunduh" + +#: i2p2www/blog/2014/05/22/0.9.13-Release.rst:37 +msgid "Several backend POP3 and SMTP speedups and fixes" +msgstr "Beberapa peningkatan kecepatan dan perbaikan di backend POP3 dan SMTP" + +#: i2p2www/blog/2014/05/22/0.9.13-Release.rst:41 +msgid "NetDB lookup fixes" +msgstr "perbaikan NetDB lookup" + +#: i2p2www/blog/2014/05/22/0.9.13-Release.rst:42 +msgid "Fix transition from not-firewalled to firewalled" +msgstr "Memperbaiki transisi dari tidak-firewall menjadi firewall" + +#: i2p2www/blog/2014/05/22/0.9.13-Release.rst:43 +msgid "Fix plugin uninstall on Windows" +msgstr "Memperbaiki plugin uninstall di Windows" + +#: i2p2www/blog/2014/05/22/0.9.13-Release.rst:44 +msgid "SSU locking fixes" +msgstr "perbaikan penguncian SSU" + +#: i2p2www/blog/2014/05/22/0.9.13-Release.rst:45 +msgid "Fix rapid republishing of SSU addresses" +msgstr "Memperbaiki cepat republishing alamat SSU" + +#: i2p2www/blog/2014/05/22/0.9.13-Release.rst:46 +msgid "IRC client exception fixes" +msgstr "Memperbaiki IRC client exeptions" + +#: i2p2www/blog/2014/05/22/0.9.13-Release.rst:47 +msgid "Fix changing HTTP outproxy configuration without restarting tunnel" +msgstr "" +"Memperbaiki pengubahan konfigurasi HTTP outproxy tanpa melakukan restart " +"tunnel" + +#: i2p2www/blog/2014/05/22/0.9.13-Release.rst:51 +msgid "New i2ptunnel server option for unique local address per-client" +msgstr "Opsi i2ptunnel server baru untuk alamat lokal yang unik per klien" + +#: i2p2www/blog/2014/05/22/0.9.13-Release.rst:52 +msgid "Warn in i2ptunnel on duplicate client ports" +msgstr "Peringatan di i2ptunnel pada client port yang duplikat" + +#: i2p2www/blog/2014/05/22/0.9.13-Release.rst:53 +msgid "Update HTTP User-Agent to match TBB" +msgstr "Memperbarui HTTP User-Agent untuk cocok dengan TBB" + +#: i2p2www/blog/2014/05/22/0.9.13-Release.rst:54 +msgid "Extend SSU establishment retransmission timer" +msgstr "Memperpanjang timer dari SSU establishment retransmission" + +#: i2p2www/blog/2014/05/22/0.9.13-Release.rst:55 +msgid "Use constant-time method for HMAC verification" +msgstr "Menggunakan metode konstan-waktu untuk verifikasi HMAC" + +#: i2p2www/blog/2014/05/22/0.9.13-Release.rst:56 +msgid "New translation: Slovak" +msgstr "Terjemahan baru: Slovak" + +#: i2p2www/blog/2014/07/26/0.9.14-Release.rst:1 +msgid "" +"==============\n" +"0.9.14 Release\n" +"==============" +msgstr "" +"==============\n" +"Rilis 0.9.14\n" +"==============" + +#: i2p2www/blog/2014/07/26/0.9.14-Release.rst:10 +msgid "0.9.14 includes critical security fixes" +msgstr "0.9.14 mencakup perbaikan kritis untuk keamanan" + +#: i2p2www/blog/2014/07/26/0.9.14-Release.rst:12 +msgid "" +"0.9.14 includes critical fixes for XSS and remote execution " +"vulnerabilities reported by Exodus Intelligence.\n" +"As an added precaution, we have disabled several advanced configuration " +"features in the router console,\n" +"including installation of new plugins.\n" +"We plan to re-enable these in a future release after additional review." +msgstr "" +"0.9.14 mencakup perbaikan kritis untuk XSS dan kerentanan remote " +"execution yang dilaporkan oleh Exodus Intelligence.\n" +"Sebagai tindakan pencegahan tambahan, kami telah menonaktifkan beberapa " +"fitur konfigurasi lanjutan di console router, termasuk instalasi plugin " +"baru.\n" +"Kami berencana untuk kembali mengaktifkan ini dalam rilis masa depan " +"setelah tambahan review." + +#: i2p2www/blog/2014/07/26/0.9.14-Release.rst:19 +msgid "" +"Due to I2P library changes, I2P-Bote users must upgrade their plugin to " +"version 0.2.10 to work with I2P 0.9.14.\n" +"Your router should update the plugin automatically after the router " +"restarts." +msgstr "" +"Karena perubahan library I2P, pengguna I2P-Bote harus memperbarui plugin " +"mereka ke versi 0.2.10 untuk berfungsi di I2P 0.9.14.\n" +"Router Anda seharusnya memperbarui plugin secara otomatis setelah restart" +" router." + +#: i2p2www/blog/2014/07/26/0.9.14-Release.rst:24 +msgid "" +"The release also contains several bug fixes in i2ptunnel, i2psnark, and " +"other areas,\n" +"and updates to the latest Jetty, Tomcat, and Wrapper.\n" +"We've also implemented a faster and more secure method for reseeding.\n" +"Of course, there's also the usual collection of minor bug fixes and " +"translation updates." +msgstr "" +"Rilis ini juga berisi beberapa perbaikan bug di i2ptunnel, i2psnark, dan " +"tempat lain, dan pembaruan terbaru Jetty, Tomcat, dan Wrapper.\n" +"Kami juga telah menerapkan metode yang lebih cepat dan lebih aman untuk " +"reseeding.\n" +"Tentu saja, ada juga koleksi biasa di perbaikan bug minor dan pembaruan " +"terjemahan." + +#: i2p2www/blog/2014/07/26/0.9.14-Release.rst:31 +msgid "" +"You must update to this release immediately. The best way to\n" +"maintain security and help the network is to run the latest release." +msgstr "" +"Anda harus segera memperbarui ke rilis ini. Cara terbaik untuk menjaga " +"keamanan dan membantu jaringan adalah dengan menjalankan rilis terbaru." + +#: i2p2www/blog/2014/07/26/0.9.14-Release.rst:39 +msgid "Security Fixes" +msgstr "Perbaikan Keamanan" + +#: i2p2www/blog/2014/07/26/0.9.14-Release.rst:41 +msgid "Fix several XSS issues" +msgstr "Memperbaiki beberapa masalah XSS" + +#: i2p2www/blog/2014/07/26/0.9.14-Release.rst:42 +msgid "Disable changing news feed URL from UI" +msgstr "Menonaktifkan perubahan URL feed berita dari UI" + +#: i2p2www/blog/2014/07/26/0.9.14-Release.rst:43 +msgid "Disable plugin install" +msgstr "Menonaktifkan instalasi plugin" + +#: i2p2www/blog/2014/07/26/0.9.14-Release.rst:44 +msgid "Disable setting unsigned update URL from UI" +msgstr "Nonaktifkan pengaturan unsigned update URL dari UI" + +#: i2p2www/blog/2014/07/26/0.9.14-Release.rst:45 +msgid "Disable clients.config editing from the UI" +msgstr "Menonaktifkan edit clients.config dari UI" + +#: i2p2www/blog/2014/07/26/0.9.14-Release.rst:46 +msgid "Add Content-Security-Policy and X-XSS-Protection headers" +msgstr "Tambahkan header Content-Security-Policy dan X-XSS-Protection" + +#: i2p2www/blog/2014/07/26/0.9.14-Release.rst:47 +msgid "Disable unused ExecNamingService (thx joernchen of Phenoelit)" +msgstr "" +"Menonaktifkan ExecNamingService yang tidak terpakai (terima kasih untuk " +"joernchen of Phenoelit)" + +#: i2p2www/blog/2014/07/26/0.9.14-Release.rst:52 +msgid "Fix tunnel building so it doesn't get \"stuck\" on a single pool" +msgstr "" +"Memperbaiki pembangunan tunnel sehingga itu tidak \"terjebak\" pada satu " +"pool" + +#: i2p2www/blog/2014/07/26/0.9.14-Release.rst:53 +msgid "Reject participating tunnels when hidden" +msgstr "Menolak participating tunnels ketika hidden" + +#: i2p2www/blog/2014/07/26/0.9.14-Release.rst:54 +msgid "" +"Several i2psnark improvements and fixes (GUI and DHT), including changes " +"for better compatibility with Vuze" +msgstr "" +"Beberapa peningkatan dan perbaikan i2psnark (GUI dan DHT), termasuk " +"perubahan untuk kompatibilitas yang lebih baik dengan Vuze" + +#: i2p2www/blog/2014/07/26/0.9.14-Release.rst:59 +msgid "" +"Reseeding now fetches a signed zip file containing router infos for " +"security and speed" +msgstr "" +"Reseeding sekarang mengambil file zip ditandatangani yang mengandung " +"router infos untuk keamanan dan kecepatan" + +#: i2p2www/blog/2014/07/26/0.9.14-Release.rst:60 +msgid "Use JVM's AES implementation if it is faster" +msgstr "Menggunakan implementasi JVM's AES jika itu lebih cepat" + +#: i2p2www/blog/2014/07/26/0.9.14-Release.rst:61 +msgid "More advanced options shown in the i2ptunnel edit pages" +msgstr "Opsi lanjutan ditunjukkan di dalam halaman edit i2ptunnel" + +#: i2p2www/blog/2014/07/26/0.9.14-Release.rst:62 +msgid "" +"Per-message reliabilitiy settings in I2CP and error propagation back from" +" router to client" +msgstr "" +"Penaturan reliabilitas per-pesan di dalam I2CP dan error propagation " +"kembali dari router ke klien" + +#: i2p2www/blog/2014/07/26/0.9.14-Release.rst:63 +msgid "Lots of findbugs fixes and cleanups" +msgstr "Banyak perbaikan dan pembersihan findbugs" + +#: i2p2www/blog/2014/07/26/0.9.14-Release.rst:64 +msgid "Support signature types in SAM, bump rev to 3.1" +msgstr "Mendukung jenis signature di SAM, meningkatkan rev menjadi 3.1" + +#: i2p2www/blog/2014/07/26/0.9.14-Release.rst:65 +msgid "New event log page in console" +msgstr "Halaman log event baru di console" + +#: i2p2www/blog/2014/07/26/0.9.14-Release.rst:68 +msgid "Wrapper 3.5.25 (new installs and PPA only)" +msgstr "Wrapper 3.5.25 (hanya untuk instalasi baru dan PPA)" + +#: i2p2www/blog/2014/08/09/0.9.14.1-Release.rst:1 +msgid "" +"================\n" +"0.9.14.1 Release\n" +"================" +msgstr "" +"==============\n" +"Rilis 0.9.14.1\n" +"==============" + +#: i2p2www/blog/2014/08/09/0.9.14.1-Release.rst:10 +msgid "0.9.14.1 includes i2psnark and console fixes" +msgstr "0.9.14.1 mencakup perbaikan i2psnark dan console" + +#: i2p2www/blog/2014/08/09/0.9.14.1-Release.rst:12 +msgid "" +"0.9.14.1 includes fixes for the \"Add Torrent\" form in i2psnark and some" +" other web forms.\n" +"We've restored the ability to install plugins via the console, but you " +"must first edit your router.config file\n" +"(in ~/.i2p/ or /var/lib/i2p/i2p-config/ or %APPDATA%\\I2P\\) to add the " +"line routerconsole.enablePluginInstall=true.\n" +"Other rarely-used advanced features that were removed in 0.9.14 may be " +"restored by adding the line routerconsole.advanced=true." +msgstr "" +"0.9.14.1 mencakup perbaikan untuk formulir \"Add Torrent\" di i2psnark " +"dan beberapa formulir web lainnya.\n" +"Kami telah memulihkan kemampuan untuk menginstal plugin melalui console, " +"namun Anda harus terlebih dahulu mengedit file router.config Anda (di " +"~/.i2p/ atau /var/lib/i2p/i2p-config/ atau %APPDATA%\\I2P\\) lalu " +"tambahkan baris routerconsole.enablePluginInstall=true.\n" +"Fitur canggih lain yang jarang digunakan yang telah dihapus di 0.9.14 " +"dapat dipulihkan dengan menambahkan perintah routerconsole.advanced=true." + +#: i2p2www/blog/2014/08/09/0.9.14.1-Release.rst:19 +msgid "" +"As usual, if configured with the default \"Download and Verify\", the " +"router will automatically download the update and display a button to " +"restart.\n" +"However, due to a bug in 0.9.14, if your update is configured for " +"\"Notify only\", the download button will not be displayed.\n" +"You must change your configuration to \"Download and Verify\" or " +"\"Download, Verify, and Restart\" to update." +msgstr "" +"Seperti biasa, jika dikonfigurasi dengan default \"Download and Verify\"," +" router akan mendownload update secara otomatis dan menampilkan tombol " +"untuk restart.\n" +"Namun, karena bug di 0.9.14, jika pembaruan Anda dikonfigurasi untuk " +"\"Hanya pemberitahuan\", tombol unduhan tidak akan ditampilkan.\n" +"Anda harus mengubah konfigurasi Anda menjadi \"Download and Verify\" atau" +" \"Download, Verify, and Restart\" untuk memperbarui." + +#: i2p2www/blog/2014/08/09/0.9.14.1-Release.rst:25 +msgid "" +"If you are still running 0.9.13 or older, we recommend that you update to" +" this release as soon as possible.\n" +"If you don't often check your router console, please consider changing " +"your configuration to \"Download, Verify, and Restart\"\n" +"to ensure you are always running the latest release." +msgstr "" +"Jika Anda masih menjalankan 0.9.13 atau lebih tua, sebaiknya perbarui " +"rilis ini sesegera mungkin.\n" +"Jika Anda tidak sering memeriksa router console Anda, pertimbangkan untuk" +" mengubah konfigurasi Anda menjadi \"Download, Verifikasi, dan Mulai " +"Ulang\" untuk memastikan Anda selalu menjalankan rilis terbaru." + +#: i2p2www/blog/2014/08/09/0.9.14.1-Release.rst:37 +msgid "Fix i2psnark add torrent form" +msgstr "Memperbaiki formulir tambahkan torrent di i2psnark" + +#: i2p2www/blog/2014/08/09/0.9.14.1-Release.rst:38 +msgid "Fix iptunnel custom options form" +msgstr "Memperbaiki formulir opsi pilihan di iptunnel" + +#: i2p2www/blog/2014/08/09/0.9.14.1-Release.rst:39 +msgid "Fix update download buttons" +msgstr "Memperbaiki tombol update download" + +#: i2p2www/blog/2014/08/09/0.9.14.1-Release.rst:44 +msgid "Restore all console features if routerconsole.advanced=true" +msgstr "Mengembalikan semua fitur console jika routerconsole.advanced=true" + +#: i2p2www/blog/2014/08/09/0.9.14.1-Release.rst:45 +msgid "Restore plugin install if routerconsole.enablePluginInstall=true" +msgstr "Mengembalikan plugin install jika routerconsole.enablePluginInstall=true" + +#: i2p2www/blog/2014/08/09/0.9.14.1-Release.rst:46 +msgid "Restpre client adds/changes if routerconsole.enableClientChange=true" +msgstr "Klien Restpre tambah/berubah jika routerconsole.enableClientChange=true" + +#: i2p2www/blog/2014/08/09/0.9.14.1-Release.rst:47 +msgid "" +"Plugin signing keys are now whitelisted unless " +"routerconsole.allowUntrustedPlugins=true" +msgstr "" +"Signing key plugin sekarang masuk daftar putih kecuali jika " +"routerconsole.allowUntrustedPlugins=true" + +#: i2p2www/blog/2014/08/09/0.9.14.1-Release.rst:48 +#: i2p2www/blog/2014/09/20/0.9.15-Release.rst:71 +msgid "More escaping and cleanups in forms and messages" +msgstr "Lebih banyak escaping dan pembersihan dalam formulir dan pesan" + +#: i2p2www/blog/2014/08/15/The-privacy-solutions-project.rst:1 +msgid "" +"==============================\n" +"The birth of Privacy Solutions\n" +"==============================" +msgstr "" +"==============================\n" +"Lahirnya organisasi Privacy Solutions\n" +"==============================" + +#: i2p2www/blog/2014/08/15/The-privacy-solutions-project.rst:10 +msgid "Organization launch" +msgstr "Peluncuran organisasi" + +#: i2p2www/blog/2014/08/15/The-privacy-solutions-project.rst:14 +msgid "" +"Hello all!\n" +"\n" +"Today we announce the Privacy Solutions project, a new organization that " +"develops and maintains I2P software. Privacy Solutions includes several " +"new development efforts designed to enhance the privacy, security, and " +"anonymity for users, based on I2P protocols and technology.\n" +"\n" +"These efforts include\n" +"\n" +"1) The Abscond browser bundle.\n" +"2) The i2pd C++ router project.\n" +"3) The \"BigBrother\" I2P network monitoring project.\n" +"4) The Anoncoin crypto-coin project.\n" +"5) The Monero crypto-coin project.\n" +"\n" +"Privacy Solutions' initial funding was provided by the supporters of the " +"Anoncoin and Monero projects. Privacy Solutions is a Norway-based non-" +"profit type of organization registered within the Norwegian government " +"registers. ( Kind of like US 501(c)3. )\n" +"\n" +"Privacy Solutions plans to apply for funding from the Norwegian goverment" +" for network research, because of BigBrother (We'll get back to what that" +" is) and the coins that are planned to use low-latency networks as " +"primary transport layer. Our research will support advances in software " +"technology for anonymity, security, and privacy.\n" +"\n" +"\n" +"First a little bit about the Abscond Browser Bundle. This was first a " +"one-man project by Meeh, but later on friends started sending patches, " +"the project is now trying to create the same easy access to I2P as Tor " +"has with their browser bundle. Our first release isn't far away, it's " +"just some gitian script tasks left, including setup of the Apple " +"toolchain. But again we will add monitoring with PROCESS_INFORMATION (A C" +" struct keeping vital proces information about an process) from the Java " +"instance to check on I2P before we declare it stable. I2pd will also " +"switch with the Java version once it's ready, and there is no point in " +"shipping a JRE in the bundle anymore. You can read more about the Abscond" +" Browser Bundle at https://hideme.today/dev" +msgstr "" +"Halo semua!\n" +"\n" +"Hari ini kami mengumumkan proyek Privacy Solutions, sebuah organisasi " +"baru yang mengembangkan dan memelihara perangkat lunak I2P. Privacy " +"Solutions mencakup beberapa upaya pengembangan baru yang dirancang untuk " +"meningkatkan privasi, keamanan, dan anonimitas pengguna, berdasarkan " +"protokol dan teknologi I2P.\n" +"\n" +"Upaya ini meliputi 1) bundel browser Abscond.\n" +"2) proyek router i2pd C++.\n" +"3) Proyek pemantauan jaringan IBP \"BigBrother\".\n" +"4) Proyek koin kripto Anoncoin.\n" +"5) Proyek koin kripto Monero.\n" +"\n" +"Pembiayaan awal Privacy Solutions disediakan oleh para pendukung proyek " +"Anoncoin dan Monero. Privacy Solutions adalah jenis organisasi nirlaba " +"berbasis di Norwegia yang terdaftar di dalam register pemerintah " +"Norwegia. (Sejenis US 501 (c) 3. ) Privacy Solutions berencana mengajukan" +" dana kepada pemerintah Norwegia untuk penelitian jaringan, karena " +"BigBrother (kami akan menjelaskannya nanti) dan koin yang direncanakan " +"untuk menggunakan jaringan laten rendah sebagai lapisanan transport " +"utama. Penelitian kami akan mendukung kemajuan teknologi perangkat lunak " +"untuk anonimitas, keamanan, dan privasi.\n" +"\n" +"\n" +"Pertama-tama, ini sedikit penjelasan tentang Abscond Browser Bundle. Ini " +"awalnya proyek satu orang yang dilakukan oleh Meeh, namun kemudian teman-" +"teman mulai mengirimkan pathc, proyek tersebut sekarang berusaha " +"menciptakan akses mudah yang sama dengan I2P seperti yang dimiliki Tor " +"dengan bundel browser mereka. Rilis pertama kami tidak lama, hanya " +"beberapa tugas skrip gitian yang tersisa, termasuk penyiapan toolchain " +"Apple. Tapi sekali lagi kita akan menambahkan pemantauan dengan " +"PROCESS_INFORMATION (A C struct menjaga informasi proses vital tentang " +"suatu proses) dari sebuah instance di Java untuk memeriksa I2P sebelum " +"kita menyatakannya stabil. I2pd juga akan beralih menggunakan versi Java " +"begitu sudah siap, dan tidak ada gunanya mengirim JRE di dalam bundel " +"lagi. Anda dapat membaca lebih banyak tentang Bundel Browser Abscond di " +"https://hideme.today/dev" + +#: i2p2www/blog/2014/08/15/The-privacy-solutions-project.rst:36 +msgid "" +"We would also like to inform of the current status of i2pd. I2pd supports" +" bi-directional streaming now, that allows to use not only HTTP but long-" +"lived communication channels. Instant IRC support has been added. I2pd " +"users are able to use it same way as Java I2P for access to I2P IRC " +"network. I2PTunnel is one of key features of I2P network, allowing non-" +"I2P applications communicate transparently. That's why it's vital feature" +" for i2pd and one of key milestones." +msgstr "" +"Kami juga ingin menginformasikan status i2pd saat ini. I2pd sekarang " +"mendukung streaming dua arah, yang memungkinkan untuk tidak hanya " +"menggunakan HTTP tapi juga saluran komunikasi yang long-lived. Dukungan " +"IRC instan telah ditambahkan. Pengguna I2pd dapat menggunakannya dengan " +"cara yang sama seperti Java I2P untuk akses ke jaringan I2P IRC. " +"I2PTunnel adalah salah satu fitur utama jaringan I2P, yang memungkinkan " +"aplikasi non-I2P berkomunikasi secara transparan. Itulah mengapa ini " +"adalah fitur vital untuk i2pd dan salah satu tonggak utama." + +#: i2p2www/blog/2014/08/15/The-privacy-solutions-project.rst:40 +msgid "" +"At last, if you are familiar with I2P you probably know about " +"Bigbrother.i2p, which is a metrics system Meeh made over a year back. " +"Recently we noticed that Meeh actually have 100Gb of non-duplicated data " +"from nodes reporting in since initial launch. This will also be moved to " +"Privacy Solutions and be rewritten with a NSPOF backend. With this we " +"will aslo start using the Graphite ( http://graphite.wikidot.com/screen-" +"shots ). This will give us a great overview over the network without " +"privacy issues for our end users. The clients filter all data except " +"country, router hash and success rate on tunnel buildings. The name of " +"this service is as always a little joke from Meeh." +msgstr "" +"Akhirnya, jika Anda mengenal I2P, Anda mungkin tahu tentang " +"Bigbrother.i2p, yang merupakan sistem metrik yang dibuat Meeh lebih dari " +"satu tahun yang lalu. Baru-baru ini kami menyadari bahwa Meeh memiliki " +"100Gb data non-duplikat dari nodus yang dilaporkan sejak peluncuran awal." +" Ini juga akan dipindahkan ke Privacy Solutions dan ditulis ulang dengan " +"backend NSPOF. Dengan ini, kami juga akan mulai menggunakan Graphite ( " +"http://graphite.wikidot.com/screen-shots ). Ini akan memberi kita " +"gambaran besar tentang jaringan tanpa masalah privasi bagi pengguna akhir" +" kami. Klien-klien akan menyaring semua data kecuali negara, router hash," +" dan tingkat kesuksesan pembangunan tunnel. Nama servis ini adalah " +"lelucon dari Meeh." + +#: i2p2www/blog/2014/08/15/The-privacy-solutions-project.rst:47 +msgid "" +"We have shorted down a bit of the news here, if you're interested in more" +" information please visit https://blog.privacysolutions.no/\n" +"We're still under construction and more content will come!\n" +"\n" +"\n" +"\n" +"For further information contact: press@privacysolutions.no\n" +"\n" +"\n" +"\n" +"\n" +"Best regards,\n" +"\n" +"Mikal \"Meeh\" Villa" +msgstr "" +"Kami telah merapihkan beberapa berita di sini, jika Anda tertarik dengan " +"info lebih lanjut, silakan kunjungi https://blog.privacysolutions.no/\n" +"Situs ini masih dalam pengembangan dan konten lebih banyak akan muncul!\n" +"\n" +"\n" +"\n" +"Untuk info lebih lanjut silakan kontak: press@privacysolutions.no\n" +"\n" +"\n" +"\n" +"\n" +"Salam,\n" +"\n" +"Mikal \"Meeh\" Villa" + +#: i2p2www/blog/2014/08/23/Android-test-release-on-Google-Play-in-Norway.rst:1 +msgid "" +"=============================================\n" +"Android test release on Google Play in Norway\n" +"=============================================" +msgstr "" +"=============================================\n" +"Rilis tes Android di Google Play di Norwegia\n" +"=============================================" + +#: i2p2www/blog/2014/08/23/Android-test-release-on-Google-Play-in-Norway.rst:10 +msgid "" +"I2P Android and Bote have been released on Google Play in Norway, as a " +"test run for a future worldwide release." +msgstr "" +"I2p Android dan Bote telah dirilis di Google Play di Norwegia, sebagai " +"uji coba untuk masa mendatang di seluruh dunia." + +#: i2p2www/blog/2014/08/23/Android-test-release-on-Google-Play-in-Norway.rst:12 +msgid "" +"I2P Android has existed for over three years. In that time, it has " +"evolved from\n" +"a simple test project into a usable, useful Android port of the I2P " +"router. Our\n" +"eventual goal has been to release I2P Android on Google Play, to make it " +"easier\n" +"for users to discover, install and use I2P on their Android devices. " +"After much\n" +"work improving the user interface, fixing bugs and testing, we think that" +" I2P\n" +"Android is finally ready to go where the users are." +msgstr "" +"I2p Android telah ada selama lebih dari tiga tahun. Dalam tiga tahun, ini" +" berevolusi dari proyek tes sederhana menjadi porting I2P router Android " +"yang berfungsi. Tujuan akhir kami adalah merilis I2P Android di Google " +"Play sehingga memudahkan pengguna untuk menemukan, install, dan " +"menggunakan I2P di ponsel Android Setelah banyak meningkatkan antar muka," +" memperbaiki bug, dan menguji, kami pikir I2P Android akhirnya siap untuk" +" digunakan secara luas." + +#: i2p2www/blog/2014/08/23/Android-test-release-on-Google-Play-in-Norway.rst:21 +msgid "" +"Initially, we are only releasing to Android users in Norway, as a test " +"run. I2P\n" +"Android will have far more exposure on Google Play than it has ever had " +"before,\n" +"and there will be bugs and usability issues that we need to fix. It will " +"be much\n" +"easier (and less stressful!) to respond to feedback if we only need to " +"deal with\n" +"reports from hundreds of users instead of thousands (already orders of " +"magnitude\n" +"more feedback than we have ever had)." +msgstr "" +"Awalnya kami hanya merilis ini ke pengguna Android di Norwegia sebagai " +"tempat pengujian. I2p Android akan memiliki jauh lebih banyak eksposur di" +" Google Play dari sebelumnya, dan akan ada bug dan masalah penggunaan " +"yang butuh diperbaiki. Ini akan menjadi jauh lebih mudah (dan kurang " +"membuat stres!) untuk menanggapi umpan balik jika kita hanya perlu " +"berurusan dengan laporan dari ratusan pengguna, bukan ribuan (sudah " +"berlipat lebih banyak umpan balik dari yang kita pernah miliki)." + +#: i2p2www/blog/2014/08/23/Android-test-release-on-Google-Play-in-Norway.rst:30 +msgid "" +"Simultaneously we are making the first public release of Bote, an Android" +" port\n" +"of `I2P-Bote`_. Bote is private, distributed, secure email, made easy. It" +" runs\n" +"on top of the I2P network, and while it works as a standalone app, it " +"will use\n" +"the I2P Android app by default if installed. As with I2P Android, we are\n" +"initially only releasing Bote to Android users in Norway." +msgstr "" +"Secara bersamaan kami membuat rilis publik Bote pertama, porting dari " +"'I2P-Bote' _ Android. Bote adalah email pribadi, terdistribusi, aman, " +"mudah. Ini berjalan di atas jaringan I2P, dan walau bekerja sebagai " +"aplikasi yang berdiri sendiri, ini akan menggunakan aplikasi I2P Android " +"secara default jika diinstall. Untuk I2P Android, kami awalnya merilis " +"Bote kepada pengguna Android di Norwegia." + +#: i2p2www/blog/2014/08/23/Android-test-release-on-Google-Play-in-Norway.rst:38 +msgid "" +"The apps are being released on Google Play by `The Privacy Solutions " +"Project`_.\n" +"See their `blog post`_ for further information, and links to the Google " +"Play\n" +"page for Norway users." +msgstr "" +"Aplikasi ini dirilis di Google Play oleh `The Privacy Solutions " +"Project`_.\n" +"Silakan baca `blog post`_ mereka untuk info lebih lanjut, dan tautan ke " +"halaman Google Play\n" +"untuk pengguna di Norwegia." + +#: i2p2www/blog/2014/08/23/Android-test-release-on-Google-Play-in-Norway.rst:44 +msgid "" +"As lead developer for I2P Android and Bote, I look forward to your " +"comments. You\n" +"are the people who will be using them, and your perspectives will help me" +" craft\n" +"simple, intuitive apps that make privacy accessible to everyone." +msgstr "" +"Sebagai pengembang utama I2P Android and Bote, saya mengharapkan komentar" +" Anda. Anda\n" +"adalah orang yang akan menggunakannya, dan sudut pandang anda akan " +"membantu saya membuat aplikasi yang\n" +"sederhana, intuitif yang membuat privasi dapat didapat semua orang." + +#: i2p2www/blog/2014/08/23/Android-test-release-on-Google-Play-in-Norway.rst:51 +msgid "`The Privacy Solutions Project`" +msgstr "`The Privacy Solutions Project` " + +#: i2p2www/blog/2014/08/23/Android-test-release-on-Google-Play-in-Norway.rst:52 +msgid "`blog post`" +msgstr "`blog post` " + +#: i2p2www/blog/2014/08/23/Android-test-release-on-Google-Play-in-Norway.rst:54 +msgid "Website release details" +msgstr "Detail rilis situs" + +#: i2p2www/blog/2014/08/23/Android-test-release-on-Google-Play-in-Norway.rst:56 +msgid "" +"We have also updated I2P Android on the website to match the release " +"candidate\n" +"deployed in Norway. This version will be updated with changes as we " +"respond to\n" +"feedback from Norwegian users, heading towards our next stable release." +msgstr "" +"Kami telah memperbarui I2P Android di situs untuk menyamakan kandidat " +"rilis yang disebarkan di Norway. Versi ini akan diperbarui dengan " +"perubahan sejalan dengan respon terhadap\n" +"umpan balik dari pengguna di Norwegia, mengarah ke rilis stabil " +"berikutnya." + +#: i2p2www/blog/2014/08/23/Android-test-release-on-Google-Play-in-Norway.rst:62 +msgid "" +"Please note that we have upgraded the Android API to 9. This means that " +"Froyo\n" +"Android 2.2 will not be supported anymore; the minimum requirement is now" +"\n" +"Gingerbread Android 2.3." +msgstr "" +"Harap dicatat bahwa kami telah memperbarui Android API ke 9. Ini artinya " +"Froyo\n" +"Android 2.2 sudah tidak didukung; syarat minimum sekarang adalah\n" +"Gingerbread Android 2.3." + +#: i2p2www/blog/2014/08/23/Android-test-release-on-Google-Play-in-Norway.rst:68 +msgid "" +"Also note that if you have an earlier version of I2P Android, you will " +"need to\n" +"uninstall and reinstall because we have changed the release keys. Further" +"\n" +"information about this will be provided in a subsequent blog post." +msgstr "" +"Juga perhatikan bahwa jika anda menggunakan versi lama I2P Android, Anda " +"perlu\n" +"uninstall dan reinstall karena kami telah mengubah release keys. Info\n" +"lebih lanjut akan diberikan di posting blog." + +#: i2p2www/blog/2014/09/20/0.9.15-Release.rst:1 +msgid "" +"==============\n" +"0.9.15 Release\n" +"==============" +msgstr "" +"==============\n" +"Rilis 0.9.15\n" +"==============" + +#: i2p2www/blog/2014/09/20/0.9.15-Release.rst:10 +msgid "0.9.15 includes Ed25519 crypto and many fixes" +msgstr "0.9.15 mencakup kripto Ed25519 dan banyak perbaikan" + +#: i2p2www/blog/2014/09/20/0.9.15-Release.rst:12 +msgid "" +"0.9.15 adds preliminary support for Ed25519 EdDSA signatures.\n" +"It includes a new persistent configuration backend for i2psnark and fixes" +" several issues with i2psnark's handling of file names.\n" +"There are several improvements to speed up SAM.\n" +"Plugins now support stronger signatures in the su3 file format.\n" +"Plugin installation via the console, which was disabled in 0.9.14, is re-" +"enabled." +msgstr "" +"0.9.15 menambahkan dukungan awal untuk tanda tangan Ed25519 EdDSA.\n" +"Ini mencakup konfigurasi backend baru yang persistent untuk i2psnark dan " +"memperbaiki beberapa masalah dengan penanganan nama file di i2psnark.\n" +"Ada beberapa perbaikan untuk mempercepat SAM. Plugin sekarang mendukung " +"tanda tangan yang lebih kuat dalam format file su3.\n" +"Pemasangan plugin melalui console, yang dinonaktifkan pada 0.9.14, " +"diaktifkan kembali." + +#: i2p2www/blog/2014/09/20/0.9.15-Release.rst:20 +msgid "" +"We have supported ECDSA signatures since 0.9.12, and we would like to " +"start using ECDSA by default.\n" +"Unfortunately, some of you are still running older I2P versions, and for " +"others,\n" +"their distribution or Java runtime does not support ECDSA. Red Hat\n" +"(RHEL, Fedora) distributions are reported to be missing ECDSA.\n" +"Some have fixed the Java issues by upgrading from Java 6 to Java 7;\n" +"others have had success with installing the \"unlimited strength policy " +"files\".\n" +"We've added information about missing crypto to the log file and the " +"/logs page in the console.\n" +"After you update to 0.9.15, please check if you are missing ECDSA " +"support, and attempt to fix it if necessary.\n" +"This is particularly important for those that run popular eepsites and " +"services." +msgstr "" +"Kami telah mendukung tanda tangan ECDSA sejak versi 0.9.12, dan kami " +"ingin mulai menggunakan ECDSA secara default.\n" +"Sayangnya, beberapa dari Anda masih menjalankan versi I2P yang lama, dan " +"untuk yang lain, distribusi atau Java runtime mereka tidak mendukung " +"ECDSA. Distribusi Red Hat (RHEL, Fedora) dilaporkan tidak mempunyai " +"ECDSA.\n" +"Beberapa telah memperbaiki masalah Java dengan mengupgrade dari Java 6 ke" +" Java 7; yang lain telah berhasil dengan menginstal \"unlimited strength " +"policy files\".\n" +"Kami telah menambahkan informasi tentang kripto yang hilang ke file log " +"dan halaman /log di console.\n" +"Setelah Anda memperbarui ke 0.9.15, periksa apakah Anda kehilangan " +"dukungan ECDSA, dan coba perbaiki jika perlu.\n" +"Hal ini sangat penting bagi mereka yang menjalankan eepsites dan layanan " +"populer." + +#: i2p2www/blog/2014/09/20/0.9.15-Release.rst:41 +#: i2p2www/blog/2014/11/01/0.9.16-Release.rst:39 +#: i2p2www/blog/2014/11/30/0.9.17-Release.rst:46 +#: i2p2www/blog/2015/04/12/0.9.19-Release.rst:32 +#: i2p2www/blog/2015/06/02/0.9.20-Release.rst:46 +#: i2p2www/blog/2015/07/31/0.9.21-Release.rst:38 +#: i2p2www/blog/2015/09/12/0.9.22-Release.rst:36 +#: i2p2www/blog/2015/11/19/0.9.23-Release.rst:75 +#: i2p2www/blog/2016/01/27/0.9.24-Release.rst:55 +#: i2p2www/blog/2016/03/22/0.9.25-Release.rst:37 +#: i2p2www/blog/2016/06/07/0.9.26-Release.rst:56 +#: i2p2www/blog/2016/10/17/0.9.27-Release.rst:35 +#: i2p2www/blog/2016/12/12/0.9.28-Release.rst:37 +#: i2p2www/blog/2017/02/27/0.9.29-Release.rst:34 +#: i2p2www/blog/2017/05/03/0.9.30-Release.rst:58 +#: i2p2www/blog/2017/08/07/0.9.31-Release.rst:34 +msgid "Changes" +msgstr "Beberapa perubahan" + +#: i2p2www/blog/2014/09/20/0.9.15-Release.rst:43 +msgid "Add support for Ed25519 signatures" +msgstr "Menambah dukungan untuk tanda tangan Ed25519" + +#: i2p2www/blog/2014/09/20/0.9.15-Release.rst:44 +msgid "" +"i2psnark move to separate config file for each torrent to better support " +"per-torrent settings" +msgstr "" +"i2psnark pindah ke file konfigurasi terpisah untuk setiap torrent untuk " +"mendukung pengaturan per-torrent yang lebih baik" + +#: i2p2www/blog/2014/09/20/0.9.15-Release.rst:45 +msgid "Add i2psnark support for data outside the i2psnark/ directory" +msgstr "Menambah dukungan i2psnark untuk data di luar direktori i2psnark/" + +#: i2p2www/blog/2014/09/20/0.9.15-Release.rst:46 +msgid "Enable stronger signatures (su3 format) for plugins" +msgstr "Mengaktifkan tanda tangan yang lebih kuat (format su3) untuk plugin" + +#: i2p2www/blog/2014/09/20/0.9.15-Release.rst:47 +msgid "Speed up SSU introductions by responding to hole punch messages" +msgstr "Mempercepat SSU introduction dengan menanggapi hole punch" + +#: i2p2www/blog/2014/09/20/0.9.15-Release.rst:48 +msgid "Several improvements in SAM efficiency" +msgstr "Beberapa perbaikan dalam efisiensi SAM" + +#: i2p2www/blog/2014/09/20/0.9.15-Release.rst:53 +msgid "Form submission fixes in the console and i2psnark" +msgstr "Perbaikan formulir penyerahan di console dan i2psnark" + +#: i2p2www/blog/2014/09/20/0.9.15-Release.rst:54 +msgid "Streaming fixes for long signatures" +msgstr "Perbaikan streaming untuk tanda tangan yang panjang" + +#: i2p2www/blog/2014/09/20/0.9.15-Release.rst:55 +msgid "i2psnark fixes for file name character mapping when seeding" +msgstr "Perbaikan i2psnark untuk pemetaan karakter nama file saat seeding" + +#: i2p2www/blog/2014/09/20/0.9.15-Release.rst:56 +msgid "I2PTunnel fixes stopping client tunnels" +msgstr "Perbaikan I2PTunnel dalam menghentikan client tunnel" + +#: i2p2www/blog/2014/09/20/0.9.15-Release.rst:57 +msgid "I2PTunnel fix updating options on a running delay-open client tunnel" +msgstr "" +"Perbaikan I2PTunnel dalam opsi pembaruan pada delay-open client tunnel " +"yang terus berjalan" + +#: i2p2www/blog/2014/09/20/0.9.15-Release.rst:62 +msgid "Re-enable plugin installation via the console, removed in 0.9.14" +msgstr "" +"Mengaktifkan kembali pemasangan plugin melalui console, yang dihapus di " +"0.9.14" + +#: i2p2www/blog/2014/09/20/0.9.15-Release.rst:63 +msgid "i2psnark now remembers uploaded count across restarts" +msgstr "i2psnark sekarang mengingat jumlah upload saat me-restart" + +#: i2p2www/blog/2014/09/20/0.9.15-Release.rst:64 +msgid "i2psnark increase max piece size to 8 MB" +msgstr "i2psnark meningkatkan ukuran potongan maksimal menjadi 8 MB" + +#: i2p2www/blog/2014/09/20/0.9.15-Release.rst:65 +msgid "i2psnark several UI fixes" +msgstr "Beberapa perbaikan UI di i2psnark " + +#: i2p2www/blog/2014/09/20/0.9.15-Release.rst:66 +msgid "Prohibit SSU peer test requests unless a connection is established" +msgstr "Melarang uji coba SSU peer kecuali jika koneksi dibuat" + +#: i2p2www/blog/2014/09/20/0.9.15-Release.rst:67 +msgid "" +"i2ptunnel add support for local SSL connections for standard and IRC " +"client tunnels" +msgstr "" +"i2ptunnel menambahkan dukungan untuk koneksi SSL lokal untuk client " +"tunnel standar dan IRC" + +#: i2p2www/blog/2014/09/20/0.9.15-Release.rst:68 +msgid "Console and log warnings for unavailable crypto" +msgstr "Console dan peringatan log untuk kripto yang tidak tersedia" + +#: i2p2www/blog/2014/09/20/0.9.15-Release.rst:69 +msgid "" +"More consistent routing for Delivery Status Messages to reduce network " +"connections" +msgstr "" +"Routing yang lebih konsisten untuk Pesan Status Pengiriman untuk " +"mengurangi koneksi jaringan" + +#: i2p2www/blog/2014/09/20/0.9.15-Release.rst:70 +msgid "Disable external entities in UPnP XML parser" +msgstr "Menonaktifkan entitas eksternal di parser XML UPnP" + +#: i2p2www/blog/2014/09/20/0.9.15-Release.rst:73 +msgid "Update GeoIP data (in both new installs and updates)" +msgstr "Perbarui data GeoIP (untuk instalasi baru dan pembaruan)" + +#: i2p2www/blog/2014/11/01/0.9.16-Release.rst:1 +msgid "" +"==============\n" +"0.9.16 Release\n" +"==============" +msgstr "" +"==============\n" +"Rilis 0.9.16\n" +"==============" + +#: i2p2www/blog/2014/11/01/0.9.16-Release.rst:10 +msgid "0.9.16 includes crypto migration and many fixes" +msgstr "0.9.16 mencakup migrasi kripto dan banyak perbaikan" + +#: i2p2www/blog/2014/11/01/0.9.16-Release.rst:12 +msgid "" +"0.9.16 is a significant step forward in our plan to migrate\n" +"from DSA to ECDSA and then EdDSA cryptographic signatures,\n" +"and makes several other changes to increase your anonymity and security.\n" +"Client tunnels for standard, IRC, and SOCKS IRC will use ECDSA signatures" +" by default.\n" +"In addition, we've fixed a large number of serious bugs, including " +"console lockups." +msgstr "" +"0.9.16 merupakan langkah maju yang signifikan dalam rencana kami untuk " +"bermigrasi dari DSA ke ECDSA dan kemudian tanda tangan kriptografi EdDSA," +" dan membuat beberapa perubahan lain untuk meningkatkan anonimitas dan " +"keamanan Anda.\n" +"Terowongan klien untuk IRC standar, IRC, dan SOCKS akan menggunakan tanda" +" tangan ECDSA secara default.\n" +"Selain itu, kami telah memperbaiki sejumlah besar bug serius, termasuk " +"console lockups." + +#: i2p2www/blog/2014/11/01/0.9.16-Release.rst:20 +msgid "" +"Changes in router data structures will require i2pcontrol plugin users to" +" update to version 0.0.9." +msgstr "" +"Perubahan pada struktur data router memerlukan pengguna plugin i2pcontrol" +" untuk mengupdate ke versi 0.0.9." + +#: i2p2www/blog/2014/11/01/0.9.16-Release.rst:24 +msgid "" +"If you run an eepsite or a service and you are not running a recent " +"release,\n" +"or your Java or OS does not support ECDSA (as noted in the logs and on " +"the /logs page in the console),\n" +"please fix the issue as soon as possible or your users will soon be " +"unable to connect." +msgstr "" +"Jika Anda menjalankan eepsite atau service dan Anda tidak menjalankan " +"rilis terbaru, atau Java atau OS Anda tidak mendukung ECDSA (seperti yang" +" tercatat di log dan di halaman /log di console), tolong perbaiki masalah" +" ini segera setelah mungkin atau pengguna Anda akan segera tidak dapat " +"terhubung." + +#: i2p2www/blog/2014/11/01/0.9.16-Release.rst:41 +msgid "Add support for stronger Router Info signatures" +msgstr "Tambahkan dukungan untuk tanda tangan Router Info yang lebih kuat" + +#: i2p2www/blog/2014/11/01/0.9.16-Release.rst:42 +msgid "Encrypt RI lookups and responses on faster boxes" +msgstr "Enkripsi pencarian dan tanggapan RI pada kotak yang lebih cepat" + +#: i2p2www/blog/2014/11/01/0.9.16-Release.rst:43 +msgid "" +"Require I2CP authorization for all messages when enabled (requires 0.9.11" +" or higher client)" +msgstr "" +"Mengharuskan otorisasi I2CP untuk semua pesan bila diaktifkan (memerlukan" +" klien 0,9.11 atau lebih tinggi)" + +#: i2p2www/blog/2014/11/01/0.9.16-Release.rst:44 +msgid "Disable SSLv3 and older ciphers for reseeding and other uses of SSL" +msgstr "" +"Menonaktifkan SSLv3 dan ciphers yang lebih lama untuk reseeding dan " +"penggunaan SSL lainnya" + +#: i2p2www/blog/2014/11/01/0.9.16-Release.rst:45 +msgid "" +"Use ECDSA by default for i2ptunnel IRC, SOCKS-IRC, and standard client " +"tunnels" +msgstr "" +"Gunakan ECDSA secara default untuk i2ptunnel IRC, SOCKS-IRC, dan client " +"tunnel standar" + +#: i2p2www/blog/2014/11/01/0.9.16-Release.rst:46 +msgid "Don't prefer floodfills in some countries" +msgstr "Menambah preferensi tidak menggunakan floodfill di beberapa negara" + +#: i2p2www/blog/2014/11/01/0.9.16-Release.rst:47 +msgid "" +"New column sorting, set-all priority buttons, and upload ratio display in" +" i2psnark" +msgstr "" +"Pemilahan kolom baru, tombol set-all priority, dan tampilan rasio upload " +"di i2psnark" + +#: i2p2www/blog/2014/11/01/0.9.16-Release.rst:48 +msgid "Increase i2psnark tunnel default to 3 hops" +msgstr "Meningkatkan tunnel i2psnark menjadi 3 hop" + +#: i2p2www/blog/2014/11/01/0.9.16-Release.rst:49 +msgid "" +"Implement bundling of multiple fragments in a single SSU message for " +"efficiency" +msgstr "" +"Menerapkan bundling beberapa fragmen dalam pesan SSU tunggal untuk " +"efisiensi" + +#: i2p2www/blog/2014/11/01/0.9.16-Release.rst:50 +msgid "New add-to-addressbook links on netdb leaseset page" +msgstr "Menambah tautan add-to-addressbook di halaman netdb leasinget" + +#: i2p2www/blog/2014/11/01/0.9.16-Release.rst:51 +msgid "" +"Implement I2NP DatabaseLookupMessage search type field to improve lookup " +"efficiency" +msgstr "" +"Menerapkan formulir pencarian DatabaseLookupMessage I2NP untuk " +"meningkatkan efisiensi pencarian" + +#: i2p2www/blog/2014/11/01/0.9.16-Release.rst:58 +msgid "CPUID fixes and updates for recent processors" +msgstr "Perbaikan CPUID dan update untuk prosesor terbaru" + +#: i2p2www/blog/2014/11/01/0.9.16-Release.rst:59 +#, python-format +msgid "i2psnark fix magnet links with %(pc)s-encoding" +msgstr "i2psnark memperbaiki magnet link dengan %(pc)s-encoding" + +#: i2p2www/blog/2014/11/01/0.9.16-Release.rst:60 +#, python-format +msgid "" +"Improve handling of SSU socket closing out from under us (hopefully fix " +"100%(pc)s CPU)" +msgstr "" +"Meningkatkan penanganan soket SSU dari bawah kita (mudah-mudahan " +"memperbaiki 100%(pc)s CPU)" + +#: i2p2www/blog/2014/11/01/0.9.16-Release.rst:61 +msgid "SSU bitfield handling fixes" +msgstr "Perbaikan penanganan bitfield SSU" + +#: i2p2www/blog/2014/11/01/0.9.16-Release.rst:62 +msgid "Fix HTTP header issues in i2psnark" +msgstr "Perbaikan masalah header HTTP di i2psnark" + +#: i2p2www/blog/2014/11/01/0.9.16-Release.rst:63 +msgid "Fix rare NPE when building garlic message" +msgstr "Perbaikan NPE langka saat membangun garlic message" + +#: i2p2www/blog/2014/11/01/0.9.16-Release.rst:64 +msgid "Fix console lockups (hopefully)" +msgstr "Perbaikan console lockups (mudah-mudahan)" + +#: i2p2www/blog/2014/11/01/0.9.16-Release.rst:65 +msgid "Fix i2ptunnel js confirm-delete" +msgstr "Perbaikan i2ptunnel js confirm-delete" + +#: i2p2www/blog/2014/11/01/0.9.16-Release.rst:70 +msgid "" +"Move router data structures from i2p.jar to router.jar (breaks i2pcontrol" +" plugin)" +msgstr "" +"Memindahkan struktur data router dari i2p.jar ke router.jar (menghentikan" +" i2pcontrol plugin)" + +#: i2p2www/blog/2014/11/01/0.9.16-Release.rst:71 +msgid "" +"New router keys now stored in router.keys.dat (eepPriv.dat format) " +"instead of router.keys" +msgstr "" +"Kunci router baru sekarang tersimpan di router.keys.dat (format " +"eepPriv.dat), bukan router.keys" + +#: i2p2www/blog/2014/11/01/0.9.16-Release.rst:72 +msgid "Improve handling of unsupported encryption throughout" +msgstr "Peningkatan penanganan enkripsi throughout yang tidak didukung" + +#: i2p2www/blog/2014/11/01/0.9.16-Release.rst:73 +msgid "More error checking of client I2CP messages by the router" +msgstr "Lebih banyak pengecekan kesalahan pada pesan I2CP klien oleh router" + +#: i2p2www/blog/2014/11/01/0.9.16-Release.rst:74 +msgid "Initial work on hooks for pluggable transports" +msgstr "Pekerjaan awal pada hooks untuk pluggable transport" + +#: i2p2www/blog/2014/11/01/0.9.16-Release.rst:75 +msgid "Enforce request timestamp in tunnel build messages" +msgstr "Menerapkan stempel waktu permintaan dalam pesan pembangunan tunnel" + +#: i2p2www/blog/2014/11/01/0.9.16-Release.rst:76 +msgid "" +"Re-enable message status in streaming, but treat no leaseset as a soft " +"failure for now" +msgstr "" +"Mengaktifkan kembali status pesan dalam streaming, tapi tidak " +"memperlakukan leasinget sebagai kegagalan lunak, untuk saat ini" + +#: i2p2www/blog/2014/11/01/0.9.16-Release.rst:77 +msgid "Return unused DH keypairs to the pool for efficiency" +msgstr "Mengembalikan keypairs DH yang tidak terpakai ke pool untuk efisiensi" + +#: i2p2www/blog/2014/11/01/0.9.16-Release.rst:78 +msgid "Raise failsafe tagset limit and improve deletion strategy when hit" +msgstr "" +"Menaikkan batas tagset failsafe dan memperbaiki strategi penghapusan saat" +" hit terjadi" + +#: i2p2www/blog/2014/11/01/0.9.16-Release.rst:79 +msgid "" +"Change eepsite Jetty threadpool and queue configuration (new installs " +"only)" +msgstr "" +"Mengubah konfigurasi eepsite Jetty threadpool dan konfigurasi antrian " +"(hanya untuk pemasangan baru)" + +#: i2p2www/blog/2014/11/01/0.9.16-Release.rst:80 +msgid "NTCP establishment refactoring in prep for NTCP2 and PT" +msgstr "Penetapan ulang NTCP dalam persiapan untuk NTCP2 dan PT" + +#: i2p2www/blog/2014/11/30/0.9.17-Release.rst:1 +msgid "" +"==============\n" +"0.9.17 Release\n" +"==============" +msgstr "" +"==============\n" +"Rilis 0.9.17\n" +"==============" + +#: i2p2www/blog/2014/11/30/0.9.17-Release.rst:10 +msgid "0.9.17 with more crypto migration and many fixes" +msgstr "0.9.17 dengan lebih banyak lagi migrasi kripto dan banyak perbaikan" + +#: i2p2www/blog/2014/11/30/0.9.17-Release.rst:12 +msgid "" +"0.9.17 is primarily a bugfix release, but it also continues our migration" +" to stronger cryptographic signatures." +msgstr "" +"0.9.17 terutama merupakan rilis bugfix, namun juga meneruskan migrasi ke " +"tanda tangan kriptografi yang lebih kuat." + +#: i2p2www/blog/2014/11/30/0.9.17-Release.rst:16 +msgid "" +"We have moved the news feed system used for the news on your console and " +"the latest router version indication\n" +"to a signed format using RSA 4096-bit keys for enhanced security." +msgstr "" +"Kami telah memindahkan sistem news feed yang digunakan untuk berita di " +"console Anda dan indikasi versi router terbaru ke format yang " +"ditandatangani menggunakan kunci RSA 4096-bit untuk keamanan yang " +"ditingkatkan." + +#: i2p2www/blog/2014/11/30/0.9.17-Release.rst:21 +msgid "" +"New eepsites and servers will be ECDSA-signed by default, if ECDSA is " +"available.\n" +"There is now a warning in the console sidebar if ECDSA is not available.\n" +"For RedHat users, we have reports of successful installs of the " +"BouncyCastle Provider (bcprov) jar to add ECDSA support." +msgstr "" +"Eepsites dan server baru akan ditandatangani oleh ECDSA secara default, " +"jika ECDSA tersedia.\n" +"Sekarang ada peringatan di console sidebar jika ECDSA tidak tersedia.\n" +"Untuk pengguna RedHat, kami mendapat laporan tentang pemasangan yang " +"berhasil dari BouncyCastle Provider (bcprov) jar untuk menambahkan " +"dukungan ECDSA." + +#: i2p2www/blog/2014/11/30/0.9.17-Release.rst:27 +msgid "" +"We've fixed several serious bugs, including an SSU packet corruption " +"problem,\n" +"and a SAM bug affecting i2p-messenger and other SAM applications.\n" +"There are several fixes for the preliminary ECDSA router signatures added" +" in the last release but not yet enabled." +msgstr "" +"Kami telah memperbaiki beberapa bug serius, termasuk masalah korupsi " +"paket SSU, dan bug SAM yang mempengaruhi i2p-messenger dan aplikasi SAM " +"lainnya.\n" +"Ada beberapa perbaikan untuk tanda tangan router awal ECDSA yang " +"ditambahkan pada rilis terakhir namun belum diaktifkan." + +#: i2p2www/blog/2014/11/30/0.9.17-Release.rst:33 +msgid "" +"Many of us will be attending 31C3 in Hamburg in December. Stop by our " +"table and say hi!" +msgstr "" +"Banyak dari kami akan menghadiri 31C3 di Hamburg pada bulan Desember. " +"Mapir ke meja kami dan sapa!" + +#: i2p2www/blog/2014/11/30/0.9.17-Release.rst:48 +msgid "Signed news" +msgstr "Berita penting" + +#: i2p2www/blog/2014/11/30/0.9.17-Release.rst:49 +msgid "ECDSA default for new server tunnels" +msgstr "ECDSA secara default diterapkan untuk server tunnel baru" + +#: i2p2www/blog/2014/11/30/0.9.17-Release.rst:50 +msgid "Reseeding now SSL-only by default" +msgstr "Reseeding sekarang hanya menggunakan SSL secara default" + +#: i2p2www/blog/2014/11/30/0.9.17-Release.rst:55 +msgid "Fix SSU sending corrupt ack-only packets with partial bitfields" +msgstr "" +"Perbaikan SSU dalam mengirim paket ack-only yang korup dengan bitfields " +"parsial" + +#: i2p2www/blog/2014/11/30/0.9.17-Release.rst:56 +msgid "Fix SSU inbound connection fail from non-DSA router" +msgstr "Perbaikan koneksi inbound SSU gagal dari router non-DSA" + +#: i2p2www/blog/2014/11/30/0.9.17-Release.rst:57 +msgid "Don't select incompatible peers if we are a non-DSA router" +msgstr "TIdak memilih peer yang tidak kompatibel untuk router non-DSA" + +#: i2p2www/blog/2014/11/30/0.9.17-Release.rst:58 +msgid "Fix EdDSA signature verification bug" +msgstr "Perbaikan bug verifikasi tanda tangan EdDSA" + +#: i2p2www/blog/2014/11/30/0.9.17-Release.rst:59 +msgid "" +"Set I2NP lookup type flags in all cases, not just when a reply tunnel is " +"used" +msgstr "" +"Menetapkan I2NP lookup type flags dalam semua kasus, tidak hanya saat " +"reply tunnel digunakan" + +#: i2p2www/blog/2014/11/30/0.9.17-Release.rst:60 +msgid "Stop i2ptunnel server acceptor thread after close" +msgstr "Menghentikan i2ptunnel server acceptor thread setelah ditutup" + +#: i2p2www/blog/2014/11/30/0.9.17-Release.rst:61 +msgid "Fix bug preventing some plugins from stopping completely" +msgstr "Perbaikan bug yang mencegah beberapa plugin berhenti sepenuhnya" + +#: i2p2www/blog/2014/11/30/0.9.17-Release.rst:62 +msgid "Fix SAM v3 bug causing failures in incoming connections" +msgstr "Perbaikan bug SAM v3 yang menyebabkan kegagalan pada koneksi masuk" + +#: i2p2www/blog/2014/11/30/0.9.17-Release.rst:67 +msgid "Add a warning in the console sidebar if ECDSA not supported" +msgstr "Menambahkan peringatan di console sidebar jika ECDSA tidak didukung" + +#: i2p2www/blog/2014/11/30/0.9.17-Release.rst:68 +msgid "Log warnings for Java 6 that we will eventually require Java 7" +msgstr "Peringatan log untuk Java 6 yang pada akhirnya akan membutuhkan Java 7" + +#: i2p2www/blog/2014/11/30/0.9.17-Release.rst:69 +msgid "Don't let proxied routers auto-floodfill" +msgstr "Tidak membiarkan proxied router auto-floodfill" + +#: i2p2www/blog/2014/11/30/0.9.17-Release.rst:70 +msgid "Don't resend SSU acks that are too old" +msgstr "Tidak mengirim ulang SSU acks yang sudah terlalu tua" + +#: i2p2www/blog/2014/11/30/0.9.17-Release.rst:71 +msgid "Don't publish direct info in SSU address if introducers are required" +msgstr "Tidak mempublikasikan info langsung di alamat SSU jika diperlukan" + +#: i2p2www/blog/2014/11/30/0.9.17-Release.rst:72 +msgid "New default opentrackers in i2psnark" +msgstr "Opentrackers default baru di i2psnark" + +#: i2p2www/blog/2014/11/30/0.9.17-Release.rst:73 +msgid "Add support for specifiying data directory per-torrent in i2psnark" +msgstr "" +"Menambahkan dukungan untuk menentukan data directory per-torrent di " +"i2psnark" + +#: i2p2www/blog/2014/11/30/0.9.17-Release.rst:74 +msgid "Changes in streaming accept() error behavior" +msgstr "Perubahan dalam perilaku accept() error streaming" + +#: i2p2www/blog/2014/11/30/0.9.17-Release.rst:75 +msgid "Minor blockfile format changes" +msgstr "Perubahan kecil dalam format blockfile" + +#: i2p2www/blog/2014/11/30/0.9.17-Release.rst:76 +msgid "" +"New option for persistent random key to preserve peer ordering across " +"restarts" +msgstr "" +"Opsi baru untuk kunci acak persisten untuk melestarikan peer ordering di " +"restart" + +#: i2p2www/blog/2014/12/01/Android-app-releases.rst:1 +msgid "" +"====================\n" +"Android app releases\n" +"====================" +msgstr "" +"====================\n" +"Rilis Aplikasi Android\n" +"====================" + +#: i2p2www/blog/2014/12/01/Android-app-releases.rst:10 +msgid "" +"I2P Android 0.9.17 and Bote 0.3 have been released on the website, Google" +" Play and F-Droid." +msgstr "" +"I2P Android 0.9.17 dan Bote 0.3 telah dirilis di situs web, Google Play, " +"dan F-Droid." + +#: i2p2www/blog/2014/12/01/Android-app-releases.rst:12 +msgid "" +"It has been some time since I last posted updates about our Android " +"development,\n" +"and several I2P releases have gone by without any matching Android " +"releases.\n" +"At last, the wait is over!" +msgstr "" +"Sudah beberapa lama sejak saya terakhir memposting pembaruan tentang " +"pengembangan Android kami, dan beberapa rilis I2P telah berlalu tanpa " +"rilis Android yang sesuai.\n" +"Akhirnya, penantian sudah berakhir!" + +#: i2p2www/blog/2014/12/01/Android-app-releases.rst:18 +msgid "" +"New app versions\n" +"----------------" +msgstr "" +"Versi aplikasi baru\n" +"----------------" + +#: i2p2www/blog/2014/12/01/Android-app-releases.rst:23 +msgid "" +"New versions of I2P Android and Bote have been released! They can be " +"downloaded\n" +"from these URLs:" +msgstr "" +"Versi baru Android dan Bote I2P telah dirilis! Mereka dapat diunduh dari " +"URL berikut:" + +#: i2p2www/blog/2014/12/01/Android-app-releases.rst:31 +msgid "" +"The main change in these releases is the transition to Android's new " +"Material\n" +"design system. Material has made it much easier for app developers with, " +"shall\n" +"we say, \"minimalist\" design skills (like myself) to create apps that " +"are nicer\n" +"to use. I2P Android also updates its underlying I2P router to the just-" +"released\n" +"version 0.9.17. Bote brings in several new features along with many " +"smaller\n" +"improvements; for example, you can now add new email destinations via QR " +"codes." +msgstr "" +"Perubahan utama dalam rilis ini adalah transisi ke sistem perancangan " +"Material baru Android. Material telah membuat pengembang aplikasi menjadi" +" lebih mudah, dengan dapat dikatakan, keterampilan desain \"minimalis\" " +"(seperti saya) untuk membuat aplikasi yang lebih bagus. I2P Android juga " +"memperbarui router I2P yang mendasarinya ke versi 0.9.17 yang baru " +"dirilis. Bote menghadirkan beberapa fitur baru seiring dengan banyak " +"perbaikan yang lebih kecil; Sebagai contoh, Anda sekarang dapat " +"menambahkan tujuan email baru melalui kode QR." + +#: i2p2www/blog/2014/12/01/Android-app-releases.rst:40 +msgid "" +"As I mentioned in `my last update`_, the release key that signs the apps " +"has\n" +"changed. The reason for this was because we needed to change the package " +"name\n" +"of I2P Android. The old package name (``net.i2p.android.router``) had " +"already\n" +"been taken on Google Play (we still don't know who was using it), and we " +"wanted\n" +"to use the same package name and signing key for all distributions of I2P" +"\n" +"Android. Doing so means that a user could initially install the app from " +"the I2P\n" +"website, and then later if the website was blocked they could upgrade it " +"using\n" +"Google Play. Android OS considers an application to be completely " +"different when\n" +"its package name changes, so we took the opportunity to increase the " +"strength of\n" +"the signing key." +msgstr "" +"Seperti yang saya sebutkan di `pembaruan terakhir`_ saya, kunci rilis " +"yang menanda-tangan aplikasi telah berubah. Alasan untuk ini adalah " +"karena kami perlu mengganti nama paket I2P Android. Nama paket lama (`` " +"net.i2p.android.router``) telah diambil di Google Play (kami masih belum " +"tahu siapa yang menggunakannya), dan kami ingin menggunakan nama paket " +"dan kunci penandatanganan yang sama untuk semua distribusi Android I2P. " +"Dengan melakukannya berarti pengguna awalnya dapat menginstal aplikasi " +"dari situs web I2P, dan kemudian jika situs web diblokir, mereka dapat " +"memperbarui versi dengan Google Play. Android OS menganggap suatu " +"aplikasi benar-benar berbeda saat nama paketnya berubah, jadi kami " +"mengambil kesempatan untuk meningkatkan kekuatan kunci penandatangan." + +#: i2p2www/blog/2014/12/01/Android-app-releases.rst:53 +msgid "The fingerprint (SHA-256) of the new signing key is:" +msgstr "Sidik jari (SHA-256) dari kunci penanda-tangan yang baru adalah:" + +#: i2p2www/blog/2014/12/01/Android-app-releases.rst:63 +msgid "`my last update`" +msgstr "`pembaruan terakhir saya`" + +#: i2p2www/blog/2014/12/01/Android-app-releases.rst:65 +msgid "" +"Google Play\n" +"-----------" +msgstr "" +"Google Play\n" +"----------- " + +#: i2p2www/blog/2014/12/01/Android-app-releases.rst:70 +msgid "" +"A few months ago we `released`_ both I2P Android and Bote on Google Play " +"in\n" +"Norway, to test the release process there. We are pleased to announce " +"that both\n" +"apps are now being released globally by `Privacy Solutions`_. The apps " +"can be\n" +"found at these URLs:" +msgstr "" +"Beberapa bulan yang lalu kami `merilis` I2P ​​Android dan Bote di Google " +"Play di Norwegia, untuk menguji proses rilis di sana. Dengan senang kami " +"mengumumkan bahwa kedua aplikasi tersebut sekarang telah dirilis secara " +"global oleh `Privacy Solutions`_. Aplikasi-aplikasi tersebut dapat " +"ditemukan di URL ini:" + +#: i2p2www/blog/2014/12/01/Android-app-releases.rst:80 +msgid "" +"The global release is being done in several stages, starting with the " +"countries\n" +"for which we have translations. The notable exception to this is France; " +"due to\n" +"import regulations on cryptographic code, we are unable yet to distribute" +" these\n" +"apps on Google Play France. This is the same issue that has affected " +"other apps\n" +"like TextSecure and Orbot." +msgstr "" +"Rilis global dilaksanakan melalui beberapa tahap, dimulai dengan negara-" +"negara yang memiliki terjemahan proyek I2P. Pengecualian untuk ini adalah" +" Perancis; menurut peraturan impor pada kode kriptografi, kami belum " +"mampu mendistribusikan aplikasi ini di Google Play Perancis. Ini adalah " +"masalah yang sama yang telah mempengaruhi aplikasi lain seperti " +"TextSecure dan Orbot." + +#: i2p2www/blog/2014/12/01/Android-app-releases.rst:88 +msgid "`released`" +msgstr "'dirilis'" + +#: i2p2www/blog/2014/12/01/Android-app-releases.rst:90 +msgid "`I2P on Google Play`" +msgstr "'I2P di Google Play'" + +#: i2p2www/blog/2014/12/01/Android-app-releases.rst:91 +msgid "`Bote on Google Play`" +msgstr "'Bote di Google Play'" + +#: i2p2www/blog/2014/12/01/Android-app-releases.rst:93 +msgid "" +"F-Droid\n" +"-------" +msgstr "" +"F-Droid\n" +"------- " + +#: i2p2www/blog/2014/12/01/Android-app-releases.rst:98 +msgid "" +"Don't think we have forgotten about you, F-Droid users! In addition to " +"the two\n" +"locations above, we have set up our own F-Droid repository. If you are " +"reading\n" +"this post on your phone, `click here`_ to add it to F-Droid (this only " +"works in\n" +"some Android browsers). Or, you can manually add the URL below to your " +"F-Droid\n" +"repository list:" +msgstr "" +"Jangan berpikir kita telah melupakan tentang Anda, pengguna F-Droid! " +"Selain dua lokasi di atas, kami telah mengatur repositori F-Droid milik " +"kami sendiri. Jika anda membaca\n" +"posting di ponsel anda, `klik di sini`_ untuk menambahkannya ke F-Droid " +"(ini hanya berfungsi di peramban di Android). Atau anda dapat menambahkan" +" URL di bawah ini secara manual ke daftar repo F-Droit Anda:" + +#: i2p2www/blog/2014/12/01/Android-app-releases.rst:108 +msgid "" +"If you would like to manually verify the fingerprint (SHA-256) of the " +"repository\n" +"signing key, or type it in when adding the repository, here it is:" +msgstr "" +"Jika Anda ingin secara manual memverifikasi fingerprint (SHA-256) dari " +"repositori penandatanganan kunci, atau ketik di saat menambahkan " +"repositori, ini caranya:" + +#: i2p2www/blog/2014/12/01/Android-app-releases.rst:117 +msgid "" +"Unfortunately the I2P app in the main F-Droid repository has not been " +"updated\n" +"because our F-Droid maintainer has disappeared. We hope that by " +"maintaining this\n" +"binary repository, we can better support our F-Droid users and keep them\n" +"up-to-date. If you have already installed I2P from the main F-Droid " +"repository,\n" +"you will need to uninstall it if you want to upgrade, because the signing" +" key\n" +"will be different. The apps in our F-Droid repository are the same APKs " +"that are\n" +"provided on our website and on Google Play, so in future you will be able" +" to\n" +"upgrade using any of these sources." +msgstr "" +"Sayangnya aplikasi I2P di repository utama F-Droid belum diperbarui " +"karena adminnya menghilang. Kami berharap dengan mempertahankan " +"repositori biner ini, kita dapat lebih baik mendukung pengguna F-Droid " +"kami dan menjaga mereka untuk tetap up-to-date. Jika Anda telah memasang " +"I2P dari repositori utama F-Droid, Anda akan perlu mencopot I2P tersebut " +"jika Anda ingin memperbarui, karena kunci penandatanganan akan berbeda. " +"Aplikasi-aplikasi di repo F-Droid kami adalah file APK yang sama dengan " +"di situs kami dan di Google Play, sehingga di masa depan Anda akan dapat " +"memperbaruinya dengan menggunakan sumber-sumber tersebut." + +#: i2p2www/blog/2014/12/01/Android-app-releases.rst:128 +msgid "`click here`" +msgstr "`klik di sini`" + +#: i2p2www/blog/2015/01/20/31C3-trip-report.rst:1 +msgid "" +"================\n" +"31C3 trip report\n" +"================" +msgstr "" +"================\n" +"Laporan kunjungan 31C3\n" +"================" + +#: i2p2www/blog/2015/01/20/31C3-trip-report.rst:9 +msgid "" +"CCC has always been a productive time for us, and 31C3 was no exception. " +"Here is a summary of our various meetings and discussions." +msgstr "" +"CCC selalu menjadi waktu produktif untuk kami, dan tidak terkecuali 31C3." +" Ini adalah ringkasan dari berbagai pertemuan dan diskusi kami." + +#: i2p2www/blog/2015/01/20/31C3-trip-report.rst:20 +msgid "" +"We were, for the second year in a row, at a great location in the " +"Congress, in\n" +"`Noisy Square`_, right next to the EFF table. Being part of Noisy Square " +"has\n" +"really increased our visibility and helped many people find us. Thanks to" +" Noisy\n" +"Square and the 31C3 organizers for a great Congress." +msgstr "" +"Kami berada, untuk tahun kedua berturut-turut, di lokasi yang besar di " +"Congress, di dalam 'Noisy Square' _, tepat di sebelah meja EFF. Menjadi " +"bagian dari Noisy Square meningkatkan visibilitas kami dan membantu " +"banyak orang untuk menemukan kami. Terima kasih kepada Noisy\n" +"Square dan panitia 31C3 untuk telah melaksanakan Congress yang hebat." + +#: i2p2www/blog/2015/01/20/31C3-trip-report.rst:29 +msgid "" +"We also thank Gabriel Weinberg and his fabulous search engine " +"`DuckDuckGo`_ for\n" +"their support of open source anonymity tools and their `generous " +"contribution`_\n" +"to I2P in 2014. Funding from DuckDuckGo and others helped support our " +"attendance\n" +"at CCC. This is the primary annual meetup for I2P developers and it is " +"critical\n" +"to our success." +msgstr "" +"Kami juga berterima-kasih kepada Gabriel Weinberg dan hebatnya mesin " +"pencari 'DuckDuckGo'_ untuk dukungan mereka dalam alat anonimitas open " +"source dan mereka 'sumbangan besar'_ untuk I2P pada tahun 2014. Dana dari" +" DuckDuckGo dan lainnya membantu hadirnya kami di\n" +"CCC. Ini adalah pertemuan tahunan utama untuk pengembang I2P dan ini " +"sangat penting untuk kesuksesan kami." + +#: i2p2www/blog/2015/01/20/31C3-trip-report.rst:38 +msgid "`generous contribution`" +msgstr "`sumbangan besar`" + +#: i2p2www/blog/2015/01/20/31C3-trip-report.rst:40 +msgid "" +"Discussions with others\n" +"=======================" +msgstr "" +"Diskusi dengan yang lain\n" +"=======================" + +#: i2p2www/blog/2015/01/20/31C3-trip-report.rst:48 +msgid "" +"We spoke at length with Christian Grothoff of `GNUnet`_. He has moved " +"himself\n" +"and the project from TU Munich to `Inria`_ in France. He has a large " +"number of\n" +"`open positions`_. This is a great opportunity to get paid to work on " +"open\n" +"source anonymity tools, we encourage everybody to contact him about it." +msgstr "" +"Kami berdiskusi panjang lebar dengan Christian Grothoff dari 'GNUnet'_. " +"Dia telah pindah\n" +"dan proyeknya juga dari TU Munich ke `Inria`_ di Perancis. Dia memiliki " +"banyak 'lowongan'_. Ini adalah kesempatan besar untuk dibayar dalam " +"pengembangan alat anonimitas open source, dan kami mendorong siapa saja " +"untuk menghubunginya." + +#: i2p2www/blog/2015/01/20/31C3-trip-report.rst:57 +msgid "`open positions`" +msgstr "`lowongan`" + +#: i2p2www/blog/2015/01/20/31C3-trip-report.rst:59 +msgid "" +"The prospect of an invigorated GNUnet with a large amount of new funding " +"is\n" +"quite interesting. We discussed more ways to work together. In early " +"2014, we\n" +"worked hard to understand the GnuNet DNS replacement, but we were unable " +"to\n" +"figure out a good fit for it in I2P. One of his new ideas is a " +"distributed,\n" +"anonymous statistics gathering subsystem, for detecting problems or " +"attacks on\n" +"the network. We'd definitely be interested in that." +msgstr "" +"Prospek untuk membangunkan kembali GNUnet dengan pendanaan yang besar " +"memang sangat menarik. Kita membahas lebih banyak cara untuk bekerja " +"sama. Pada awal tahun 2014, kami bekerja keras untuk memahami penggantian" +" GnuNet DNS, tetapi kami tidak dapat mengetahui penerapan cocok untuk itu" +" di I2P. Salah satu gagasan baru adalah subsistem pengumpulan statistik " +"terdistribusi anonim, untuk mendeteksi masalah atau serangan pada " +"jaringan. Kami pasti akan tertarik." + +#: i2p2www/blog/2015/01/20/31C3-trip-report.rst:68 +msgid "" +"We also discussed the `Special-Use Domain Names of Peer-to-Peer Systems " +"draft`_.\n" +"A new, greatly simplified version 3 was posted in December. The prospects" +" for\n" +"approval remain unclear. The best way to monitor or participate in the\n" +"discussion is via the `IETF DNSOP WG mailing list`_. We will attempt to " +"do so\n" +"on our side, and also give Hellekin a new point-of-contact for this topic." +msgstr "" +"Kami juga mendiskusikan `Special-Use Domain Names of Peer-to-Peer Systems" +" draft`_.\n" +"Versi 3 yang baru dan sangat sederhana diposting pada bulan Desember. " +"Prospek untuk persetujuan tetap tidak jelas. Cara terbaik untuk memantau " +"atau berpartisipasi dalam diskusi adalah melalui `IETF DNSOP WG mailing " +"list`_. Kami akan berusaha melakukannya di pihak kami, dan juga memberi " +"Hellekin titik kontak baru untuk topik ini." + +#: i2p2www/blog/2015/01/20/31C3-trip-report.rst:76 +msgid "`Special-Use Domain Names of Peer-to-Peer Systems draft`" +msgstr "`Rumusan Nama Domain Penggunaan Khusus untuk Sistem Peer-to-Peer`" + +#: i2p2www/blog/2015/01/20/31C3-trip-report.rst:77 +msgid "`IETF DNSOP WG mailing list`" +msgstr "`IETF DNSOP WG mailing list` " + +#: i2p2www/blog/2015/01/20/31C3-trip-report.rst:79 +msgid "" +"We apologized to Christian for not being organized enough to have a talk " +"at his\n" +"`We Fix The Net assembly`_. One of our biggest failures as a project is " +"our\n" +"seeming inability to submit talks at conferences. We'll have to do better" +" in the\n" +"new year." +msgstr "" +"Kami meminta maaf kepada Christian karena tidak cukup diatur untuk " +"berdiskusi di `We Fix the Net assembly`_. Salah satu kegagalan terbesar " +"kami sebagai sebuah proyek adalah ketidakmampuan kami untuk menyampaikan " +"pembicaraan di konferensi. Kita harus melakukan yang lebih baik di tahun " +"baru." + +#: i2p2www/blog/2015/01/20/31C3-trip-report.rst:86 +msgid "`We Fix The Net assembly`" +msgstr "`We Fix The Net assembly` " + +#: i2p2www/blog/2015/01/20/31C3-trip-report.rst:91 +msgid "" +"Iain Learmonth, a Debian participant, stopped by. He wants to put I2P in " +"with\n" +"other anonymity tools into this new Debian \"superpackage\" of some sort," +" and\n" +"would love to get I2P into Debian in 2015. He claims the process is now " +"easy,\n" +"just `follow the instructions`_. We said that's funny, we've been\n" +"`stuck in the process for over 7 years`_." +msgstr "" +"Iain Learmonth, seorang peserta Debian, mampir. Dia ingin menempatkan I2P" +" dengan alat anonimitas lainnya ke dalam paket \"superpackage\" baru " +"Debian , dan ingin sekali memasukkan I2P ke Debian pada tahun 2015. Dia " +"mengklaim prosesnya sekarang mudah, cukup `ikuti instruksinya`_. Kami " +"bilang itu lucu, kami sudah `tidak maju-maju selama lebih dari 7 tahun`_." + +#: i2p2www/blog/2015/01/20/31C3-trip-report.rst:99 +msgid "`follow the instructions`" +msgstr "`ikuti instruksinya`" + +#: i2p2www/blog/2015/01/20/31C3-trip-report.rst:100 +msgid "`stuck in the process for over 7 years`" +msgstr "`tidak maju-maju selama lebih dari 7 tahun`" + +#: i2p2www/blog/2015/01/20/31C3-trip-report.rst:102 +msgid "" +"He said, well, try the new process, it works great, should be no problem " +"at all\n" +"if your package is in good shape. The people in Debian that run this " +"process are\n" +"eager volunteers who want nothing more than to get more packages in. We " +"said our\n" +"package is indeed in fantastic shape, and we would try out the new " +"process as\n" +"soon as possible. If all this is true, we will be in the next Debian " +"release in\n" +"late 2015. This would be very very cool." +msgstr "" +"Katanya, coba proses yang baru, seharusnya tidak masalah sama sekali jika" +" paket anda dalam kondisi bagus. Orang-orang di Debian yang menjalankan " +"proses ini adalah sukarelawan yang hanya ingin mendapatkan lebih banyak " +"paket. Kami mengatakan paket kami memang dalam bentuk sangat baik, dan " +"kami akan mencoba proses baru sesegera mungkin. Jika semua ini benar, " +"kami akan mengikuti rilis Debian berikutnya di akhir tahun 2015. Ini akan" +" sangat sangat keren." + +#: i2p2www/blog/2015/01/20/31C3-trip-report.rst:114 +msgid "" +"We had a nice discussion with BitingBird of Tails. They are very happy " +"with our\n" +"rapid response to the `vulnerability disclosure`_ last summer, resulting " +"in our\n" +"`0.9.14 release`_. Our vulnerability was initially blamed on Tails, and " +"they\n" +"took `great offense`_ to that and the lack of private notification. We " +"thanked\n" +"them for taking the heat and fighting back." +msgstr "" +"Kami berdiskusi dengan BitingBird of Tails. Mereka sangat senang dengan " +"tanggapan cepat kami terhadap `vulnerability disclosure`_ pada musim " +"panas yang lalu, yang mengakibatkan rilis '0.9.14` kami. Kerentanan kami " +"pada awalnya disalahkan pada Tails, dan mereka melakukan `pelanggaran " +"berat'_ terhadapnya dan kurangnya pemberitahuan pribadi. Kami mengucapkan" +" terima kasih karena telah bereaksi dan melawan." + +#: i2p2www/blog/2015/01/20/31C3-trip-report.rst:122 +msgid "`vulnerability disclosure`" +msgstr "`pengungkapan kerentanan'" + +#: i2p2www/blog/2015/01/20/31C3-trip-report.rst:123 +msgid "`0.9.14 release`" +msgstr "`Rilis 0.9.14`" + +#: i2p2www/blog/2015/01/20/31C3-trip-report.rst:124 +msgid "`great offense`" +msgstr "`pelanggaran besar`" + +#: i2p2www/blog/2015/01/20/31C3-trip-report.rst:126 +msgid "" +"BitingBird also handles support, and she tells us the number one issue is" +" how\n" +"long I2P takes to start up and be useful for browsing I2P sites. Her " +"standard\n" +"answer is \"wait ten more minutes\" and that seems to be effective. I2P " +"is\n" +"particularly slow to startup on Tails since it does not persist peer data" +" by\n" +"default. It would be nice to change that, but there's also things we can " +"do on\n" +"the I2P side to make things start faster. Expect some improvement in our " +"0.9.18\n" +"release." +msgstr "" +"BitingBird juga menangani dukungan, dan dia mengatakan kepada kami bahwa " +"masalah nomor satu adalah berapa lama waktu yang dibutuhkan I2P untuk " +"memulai dan berfungsi untuk browsing situs I2P. Jawaban standarnya adalah" +" \"tunggu sepuluh menit lagi\" dan itu tampaknya efektif. I2P sangat " +"lambat untuk startup pada Tails karena tidak bertahan data peer secara " +"default. Alangkah baiknya mengubahnya, tapi ada juga hal yang bisa kita " +"lakukan di sisi I2P untuk membuat segalanya berjalan lebih cepat. " +"Harapkan beberapa peningkatan dalam rilis 0.9.18 kami." + +#: i2p2www/blog/2015/01/20/31C3-trip-report.rst:139 +msgid "" +"Longtime friend of I2P Bernhard Fischer of `OnionCat`_ stopped by. The " +"upcoming\n" +"Tor Hidden Services changes mean that their keys will no longer fit into " +"a\n" +"portion of an IPv6 address, and he was working on a solution. We reminded" +" him\n" +"that this has always been the case for I2P (with \"GarliCat\"), that it's" +" not a\n" +"new problem. He pointed us to `a presentation`_ of his proposal. It " +"involves\n" +"storing an extra record in the hidden service directory (equivalent of a\n" +"leaseset I2P's network database). It wasn't completely clear how this " +"would\n" +"work, or if we would consider it abuse of the netDb. We'll follow up with" +" him\n" +"as he gets further." +msgstr "" +"Teman lama I2P Bernhard Fischer dari `OnionCat`_ mampir. Perubahan Tor " +"Hidden Service yang akan datang berarti bahwa kunci mereka tidak lagi " +"sesuai dengan sebagian alamat IPv6, dan dia sedang mengerjakan sebuah " +"solusi. Kami mengingatkannya bahwa ini selalu terjadi pada I2P (dengan " +"\"GarliCat\"), bahwa ini bukan masalah baru. Dia menunjukkan " +"`presentasi`_ dari proposalnya. Ini melibatkan penyimpanan catatan " +"tambahan di direktori layanan tersembunyi (setara dengan database " +"jaringan leaseset I2P). Tidak sepenuhnya jelas bagaimana ini akan " +"berhasil, atau jika kita menganggapnya penyalahgunaan netDb. Kami akan " +"menindaklanjutinya saat dia melangkah lebih jauh." + +#: i2p2www/blog/2015/01/20/31C3-trip-report.rst:152 +msgid "`a presentation`" +msgstr "`presentasi '" + +#: i2p2www/blog/2015/01/20/31C3-trip-report.rst:154 +msgid "" +"New users\n" +"---------" +msgstr "" +"Pengguna baru\n" +"---------" + +#: i2p2www/blog/2015/01/20/31C3-trip-report.rst:159 +msgid "" +"We spent hours and hours explaining I2P to people stopping by our table. " +"Some\n" +"had heard of I2P before, some had not; everybody had heard of Tor and had" +" at\n" +"least a vague idea of what hidden services are. As usual, introducing " +"people to\n" +"I2P was a struggle. By the end of the Congress, we became convinced that " +"a part\n" +"of the problem was a difference in terminology. Back 12 years ago, when " +"I2P and\n" +"Tor were both getting started, we each came up with terms for the various" +" parts\n" +"of our systems. Today, the Tor terminology such as \"hidden service\" is\n" +"well-understood and commonplace. The I2P terminology such as \"eepsite\" " +"is\n" +"neither. We agreed to review our documentation, router console, and other" +" places\n" +"for opportunities to simplify it and use common terms." +msgstr "" +"Kami menghabiskan berjam-jam menjelaskan I2P kepada orang-orang yang " +"mampir ke meja kami. Beberapa orang pernah mendengar tentang I2P " +"sebelumnya, beberapa tidak; semua orang pernah mendengar tentang Tor dan " +"setidaknya memiliki gagasan samar tentang apa itu layanan tersembunyi. " +"Seperti biasa, mengenalkan orang pada I2P adalah sebuah perjuangan. " +"Menjelang akhir Congress, kami menjadi yakin bahwa sebagian dari " +"masalahnya adalah perbedaan dalam terminologi. 12 tahun yang lalu, ketika" +" I2P dan Tor mulai, kami masing-masing memberikan persyaratan untuk " +"berbagai bagian sistem kami. Saat ini, terminologi Tor seperti \"layanan " +"tersembunyi\" dipahami dengan baik dan dianggap hal yang biasa. " +"Terminologi I2P seperti \"eepsite\" tidak. Kami setuju untuk meninjau " +"dokumentasi kami, router console, dan tempat-tempat lain untuk " +"mendapatkan kesempatan untuk menyederhanakannya dan menggunakan istilah " +"umum." + +#: i2p2www/blog/2015/01/20/31C3-trip-report.rst:172 +msgid "" +"I2P project topics\n" +"------------------" +msgstr "" +"Topik proyek I2P\n" +"------------------" + +#: i2p2www/blog/2015/01/20/31C3-trip-report.rst:177 +msgid "" +"* *Spending money:* We discussed several ways to effectively use our " +"resources\n" +" in 2015, including more hardware for testing and development. Also, we " +"plan to\n" +" increase reimbursement levels for conference attendees." +msgstr "" +"**Menghabiskan uang:* Kami membahas beberapa cara untuk menggunakan " +"sumber daya kami secara efektif\n" +" Pada tahun 2015, termasuk perangkat keras yang lebih banyak untuk " +"pengujian dan pengembangan. Juga, kami berencana untuk\n" +" meningkatkan tingkat penggantian untuk peserta konferensi." + +#: i2p2www/blog/2015/01/20/31C3-trip-report.rst:183 +msgid "" +"* *Toronto meetup:* CCC is such a productive time for us, and it seems " +"that a\n" +" second meetup in the year would be quite helpful. We have proposed it " +"for\n" +" August 2015 in Toronto, Canada, in conjunction with `Toronto Crypto`_. " +"It\n" +" would include developer meetings together with presentations and " +"tutorials,\n" +" all open to the public. We are attempting to gauge interest and " +"research\n" +" possible venues. If you are considering attending, please let us know " +"by\n" +" `tweeting @i2p`_ or posting `on the dev forum thread`_." +msgstr "" +"**Pertemuan Toronto:* CCC adalah waktu yang sangat produktif bagi kami, " +"dan nampaknya\n" +" pertemuan kedua di tahun ini akan sangat membantu. Kami sudah " +"mengusulkannya\n" +" pada Agustus 2015 di Toronto, Kanada, bersamaan dengan `Toronto " +"Crypto`_. Ini\n" +" akan mencakup pertemuan pengembang, bersamaan dengan presentasi dan " +"tutorial,\n" +" semua terbuka untuk umum. Kami berusaha untuk mengukur minat dan " +"penelitian\n" +" beberapa tempat yang mungkin Jika Anda mempertimbangkan untuk " +"menghadiri, silakan beritahu kami\n" +" `tweeting @ i2p`_ atau posting` pada thread forum dev`_." + +#: i2p2www/blog/2015/01/20/31C3-trip-report.rst:193 +msgid "" +"* We discussed Meeh's workload and the state of the various services he " +"is\n" +" running. We made some plans to reduce his load and have some other " +"people help\n" +" out." +msgstr "" +"*Kami membahas beban kerja Meeh dan keadaan berbagai layanan dia\n" +" jalankan. Kami membuat beberapa rencana untuk mengurangi bebannya dan " +"meminta bantuan orang lain\n" +" ." + +#: i2p2www/blog/2015/01/20/31C3-trip-report.rst:199 +msgid "" +"* We reviewed our critieria for placing links to `i2pd`_ on our download " +"page.\n" +" We agreed that the only remaining item is to have a nice page on the\n" +" `Privacy Solutions web site`_ or elsewhere with binary packages for " +"Windows,\n" +" Linux, and Mac, and source packages. It's not clear who is responsible " +"for\n" +" building the packages and where the \"official\" version is. Once " +"there's an\n" +" established process for building and signing packages and an official " +"place to\n" +" put them, we're ready to link to it. If it is not feasible to host it " +"on the\n" +" Privacy Solutions website, we will discuss alternatives with orignal,\n" +" including possible migration to our download servers." +msgstr "" +"* Kami meninjau kriteria kami untuk menempatkan tautan ke `i2pd`_ di " +"halaman download kami.\n" +" Kami sepakat bahwa satu-satunya hal yang tersisa untuk memiliki halaman" +" bagus di\n" +" `Situs web Privacy Solutions`_ atau di tempat lain dengan paket biner " +"untuk Windows,\n" +" Linux, dan Mac, dan paket sumber. Tidak jelas siapa yang bertanggung " +"jawab\n" +" membangun paket dan tempat versi \"resmi\" itu. Pernah ada\n" +" proses pembuatan dan penandatanganan paket dan tempat resmi\n" +" untuk letakkan mereka, kami siap untuk menautkannya. Jika tidak mungkin" +" untuk menempatkannya di\n" +" Situs Privacy Solutions, kami akan membahas alternatif dengan orignal,\n" +" termasuk kemungkinan migrasi ke server download kami." + +#: i2p2www/blog/2015/01/20/31C3-trip-report.rst:211 +msgid "" +"* Lots of people coming by the table asked if we had a non-Java version. " +"It was\n" +" great to finally answer \"yes\" and we're eager to get the word out and" +" get more\n" +" users, testers, and developers on it." +msgstr "" +"*Banyak orang yang datang ke meja bertanya apakah kami memiliki versi " +"non-Jawa. Kami\n" +" senang akhirnya menjawab \"ya\" dan kami sangat ingin mendapatkan kabar" +" dan mendapatkan lebih banyak\n" +" pengguna, penguji, dan pengembang di dalamnya." + +#: i2p2www/blog/2015/01/20/31C3-trip-report.rst:217 +msgid "" +"* `Vuze`_ continues to make good progress on their I2P integration. We " +"look\n" +" forward to working with them in the new year on a managed rollout to " +"more\n" +" users." +msgstr "" +"*`Vuze`_ terus membuat kemajuan yang baik pada integrasi I2P mereka. Kami" +" mengharapkan\n" +" untuk bekerja dengan mereka di tahun baru pada rollout yang dikelola " +"lebih\n" +" banyak pengguna." + +#: i2p2www/blog/2015/01/20/31C3-trip-report.rst:223 +msgid "" +"* We discussed the state of Meeh's and Sindu's reseed servers. They made " +"several\n" +" improvements while at the congress and are investigating migration to\n" +" `Matt Drollette's Go implementation`_. The security and reliability of " +"our\n" +" reseed servers is vital to new users and network operation. `User " +"'backup'`_\n" +" is doing a great job monitoring and managing the pool of reseed servers." +msgstr "" +"*Kami membahas keadaan reseed server milik Meeh dan Sindu. Mereka membuat" +" beberapa\n" +" perbaikan saat Congress dan sedang menyelidiki migrasi ke\n" +" `implementasi Matt Drollette's Go`_. Keamanan dan keandalan\n" +" reseed server kami sangat penting bagi pengguna baru dan operasi " +"jaringan. `User 'backup'`_ \n" +" sedang melakukan pekerjaan dengan baik dalam memantau dan mengelola " +"kumpulan server yang sudah ada." + +#: i2p2www/blog/2015/01/20/31C3-trip-report.rst:231 +msgid "" +"* We agreed to purchase a second root server for development, testing, " +"and\n" +" services. Echelon will be adminstering it. Contact him if you would " +"like a VM." +msgstr "" +"*Kami setuju untuk membeli server root kedua untuk pengembangan, " +"pengujian, dan\n" +" pelayanan. Echelon akan menjelaskannya. Hubungi dia jika Anda " +"menginginkan VM-nya." + +#: i2p2www/blog/2015/01/20/31C3-trip-report.rst:236 +msgid "" +"* We reiterated that we have funds available to purchase test hardware,\n" +" especially for Windows and Mac. Talk to echelon for details." +msgstr "" +"*Kami ulangi bahwa kami memiliki dana yang tersedia untuk membeli " +"perangkat keras uji,\n" +" terutama untuk Windows dan Mac. Bicaralah dengan Echelon untuk " +"rinciannya." + +#: i2p2www/blog/2015/01/20/31C3-trip-report.rst:241 +msgid "" +"* We met with Welterde about the state of his services including his\n" +" `open tracker`_. These services are not being adequately maintained and" +" will\n" +" soon become inaccessible due to crypto changes if they are not " +"upgraded. He\n" +" committed to upgrading them soon." +msgstr "" +"*Kami bertemu dengan Welterde tentang keadaan layanannya termasuk\n" +" `open tracker`_ miliknya Layanan ini tidak dipelihara secara memadai " +"dan akan\n" +" segera menjadi tidak dapat diakses karena perubahan kripto jika tidak " +"diperbarui. Dia\n" +" berkomitmen untuk memperbaruinya segera." + +#: i2p2www/blog/2015/01/20/31C3-trip-report.rst:248 +msgid "" +"* We met lots of people interested in our `Android app`_. We passed " +"several\n" +" ideas and bug reports back to str4d. We plan to make a big push to give" +" the\n" +" app some development love early in the year." +msgstr "" +"*Kami bertemu banyak orang yang tertarik dengan 'aplikasi Android`_ kami." +" Kami mengungkapkan beberapa\n" +" ide dan laporan bug kepada str4d. Kami berencana untuk membuat dorongan" +" besar untuk memberikan\n" +" beberapa pengembangan aplikasi di awal tahun." + +#: i2p2www/blog/2015/01/20/31C3-trip-report.rst:254 +msgid "" +"* Regrettably, we didn't get to see too many talks at the Congress, as we" +" were\n" +" so busy meeting with people. We plan to catch up and `watch them " +"online`_. As\n" +" usual, Tor's \"State of the Onion\" talk was excellent, and Jacob's " +"talk was\n" +" great. We hear that the cryptography talks were good as well." +msgstr "" +"*Sayangnya, kami tidak sempat membicarakan terlalu banyak pembicaraan di " +"Congress, karena kami\n" +" begitu sibuk bertemu dengan orang. Kami berencana untuk mengejar " +"ketinggalan dan `nonton mereka secara online`_. Seperti\n" +" biasa, pembicaraan Tor \"State of the Onion\" sangat bagus, dan ceramah" +" Jacob\n" +" sangat bagus. Kami mendengar bahwa pembicaraan kriptografi juga bagus." + +#: i2p2www/blog/2015/01/20/31C3-trip-report.rst:261 +msgid "`Toronto Crypto`" +msgstr "`Toronto Crypto` " + +#: i2p2www/blog/2015/01/20/31C3-trip-report.rst:262 +msgid "`tweeting @i2p`" +msgstr "`tweeting @i2p` " + +#: i2p2www/blog/2015/01/20/31C3-trip-report.rst:263 +msgid "`on the dev forum thread`" +msgstr "`on the dev forum thread` " + +#: i2p2www/blog/2015/01/20/31C3-trip-report.rst:266 +msgid "`Privacy Solutions web site`" +msgstr "`Privacy Solutions web site` " + +#: i2p2www/blog/2015/01/20/31C3-trip-report.rst:270 +msgid "`Matt Drollette's Go implementation`" +msgstr "`Matt Drollette's Go implementation` " + +#: i2p2www/blog/2015/01/20/31C3-trip-report.rst:271 +msgid "`User 'backup'`" +msgstr "`User 'backup'` " + +#: i2p2www/blog/2015/01/20/31C3-trip-report.rst:273 +msgid "`open tracker`" +msgstr "`open tracker` " + +#: i2p2www/blog/2015/01/20/31C3-trip-report.rst:275 +msgid "`Android app`" +msgstr "`Android app` " + +#: i2p2www/blog/2015/01/20/31C3-trip-report.rst:277 +msgid "`watch them online`" +msgstr "`watch them online` " + +#: i2p2www/blog/2015/02/22/0.9.18-Release.rst:1 +msgid "" +"==============\n" +"0.9.18 Release\n" +"==============" +msgstr "" +"==============\n" +"Rilis 0.9.18\n" +"==============" + +#: i2p2www/blog/2015/02/22/0.9.18-Release.rst:10 +msgid "0.9.18 with performance improvements and bug fixes" +msgstr "0.9.18 dengan perbaikan kinerja dan perbaikan bug" + +#: i2p2www/blog/2015/02/22/0.9.18-Release.rst:12 +msgid "" +"0.9.18 contains several bug fixes and performance improvements.\n" +"We have shortened the startup time, and reduced latency throughout our " +"network protocols.\n" +"We've increased the default connection limits for the fastest routers,\n" +"and reduced the thread usage in i2ptunnel.\n" +"UPnP fixes should improve handling of external device changes.\n" +"CPU usage in high-bandwidth routers may be reduced thanks to some NTCP " +"fixes." +msgstr "" +"0.9.18 berisi beberapa perbaikan bug dan peningkatan kinerja.\n" +"Kami telah mempersingkat waktu startup, dan mengurangi latensi di seluruh" +" protokol jaringan kami.\n" +"Kami telah meningkatkan batas koneksi default untuk router tercepat, dan " +"mengurangi penggunaan thread di i2ptunnel.\n" +"Perbaikan UPnP seharusnya memperbaiki penanganan perubahan perangkat " +"eksternal.\n" +"Penggunaan CPU pada router ber-bandwidth tinggi dapat dikurangi berkat " +"beberapa perbaikan NTCP." + +#: i2p2www/blog/2015/02/22/0.9.18-Release.rst:32 +msgid "Fix parsing of ECDSA address helper in HTTP client proxy" +msgstr "Perbaiki parsing address helper ECDSA di proxy klien HTTP" + +#: i2p2www/blog/2015/02/22/0.9.18-Release.rst:33 +msgid "Fix news last-modified processing which prevented notification of update" +msgstr "" +"Perbaikan kabar terakhir yang dimodifikasi yang mencegah pemberitahuan " +"update" + +#: i2p2www/blog/2015/02/22/0.9.18-Release.rst:34 +msgid "Improve handling of UPnP device changes" +msgstr "Meningkatkan penanganan perubahan perangkat UPnP" + +#: i2p2www/blog/2015/02/22/0.9.18-Release.rst:35 +msgid "Don't hang at startup forever waiting for entropy" +msgstr "Tidak jadi hang saat startup selamanya menunggu entropi" + +#: i2p2www/blog/2015/02/22/0.9.18-Release.rst:36 +msgid "Possible fixes for high CPU usage in NTCP" +msgstr "Kemungkinan perbaikan untuk penggunaan CPU yang tinggi di NTCP" + +#: i2p2www/blog/2015/02/22/0.9.18-Release.rst:40 +msgid "Publish router info faster when address costs change" +msgstr "Publikasikan info router lebih cepat saat biaya alamat berubah" + +#: i2p2www/blog/2015/02/22/0.9.18-Release.rst:41 +msgid "Start i2ptunnel 90s sooner" +msgstr "Mulai i2ptunnel 90 detik lebih awal" + +#: i2p2www/blog/2015/02/22/0.9.18-Release.rst:42 +msgid "Accept tunnels 10m sooner" +msgstr "Terimalah terowongan 10 menit lebih cepat" + +#: i2p2www/blog/2015/02/22/0.9.18-Release.rst:43 +msgid "Increase exploratory tunnel quantity during initial exploration" +msgstr "Peningkatan jumlah terowongan eksplorasi selama eksplorasi awal" + +#: i2p2www/blog/2015/02/22/0.9.18-Release.rst:44 +msgid "Latency reductions in several places" +msgstr "Reduksi Latency di beberapa tempat" + +#: i2p2www/blog/2015/02/22/0.9.18-Release.rst:45 +msgid "" +"Add startup browser configuration with advanced config " +"routerconsole.browser" +msgstr "" +"Menambahkan konfigurasi browser startup dengan konfigurasi lanjutan di " +"routerconsole.browser" + +#: i2p2www/blog/2015/02/22/0.9.18-Release.rst:46 +msgid "Persistent leaseset keys to eliminate correlation with restart" +msgstr "Kunci leaseset yang persistent untuk menghilangkan korelasi dengan restart" + +#: i2p2www/blog/2015/02/22/0.9.18-Release.rst:47 +msgid "Faster unchoking of new peers in i2psnark" +msgstr "Unchoking lebih cepat untuk peer baru di i2psnark" + +#: i2p2www/blog/2015/02/22/0.9.18-Release.rst:48 +msgid "More aggressive throttling of lookups at floodfills" +msgstr "Throttlling lookup yang lebih agresif di floodfill" + +#: i2p2www/blog/2015/02/22/0.9.18-Release.rst:49 +msgid "Tunnel build request record refactoring" +msgstr "Refactoring untuk perekaman permintaan pembangunan tunnel" + +#: i2p2www/blog/2015/02/22/0.9.18-Release.rst:50 +msgid "Reduce thread usage in i2ptunnel" +msgstr "Mengurangi penggunaan thread di i2ptunnel" + +#: i2p2www/blog/2015/02/22/0.9.18-Release.rst:51 +msgid "Add i2ptunnel server option for multihomed sites" +msgstr "Menambahkan opsi server i2ptunnel untuk situs multihomed" + +#: i2p2www/blog/2015/02/22/0.9.18-Release.rst:52 +msgid "Disallow some common I2P application ports as router ports" +msgstr "Memblokir beberapa port aplikasi I2P yang umum sebagai port router" + +#: i2p2www/blog/2015/02/22/0.9.18-Release.rst:53 +msgid "Increase connection limits for fast routers" +msgstr "Meningkatkan batas koneksi untuk router cepat" + +#: i2p2www/blog/2015/02/22/0.9.18-Release.rst:54 +msgid "Add Save-As button for SusiMail messages" +msgstr "Menambahkan tombol Save-As untuk pesan SusiMail" + +#: i2p2www/blog/2015/02/22/0.9.18-Release.rst:55 +msgid "Use 'hidden service' terminology in the console" +msgstr "Menggunakan terminologi 'layanan tersembunyi' di konsol" + +#: i2p2www/blog/2015/02/22/0.9.18-Release.rst:56 +msgid "Encrypted netdb lookups for 32-bit x86" +msgstr "Netdb lookup terenkripsi untuk 32-bit x86" + +#: i2p2www/blog/2015/04/12/0.9.19-Release.rst:1 +msgid "" +"==============\n" +"0.9.19 Release\n" +"==============" +msgstr "" +"==============\n" +"Rilis 0.9.19\n" +"==============" + +#: i2p2www/blog/2015/04/12/0.9.19-Release.rst:10 +msgid "0.9.19 with performance improvements and bug fixes" +msgstr "0.9.19 dengan perbaikan kinerja dan perbaikan bug" + +#: i2p2www/blog/2015/04/12/0.9.19-Release.rst:12 +msgid "" +"0.9.19 has several fixes and improvements for floodfill performance.\n" +"Many of you saw high CPU usage after 0.9.18 was released.\n" +"This was caused by a combination of increased encryption usage, the big " +"influx of Vuze users into the network,\n" +"reduced floodfills due to tighter performance requirements, and some " +"longstanding bugs.\n" +"Things should be a lot better after most of the network has updated.\n" +"As always, the best way to reduce CPU usage is to lower your bandwidth " +"limits." +msgstr "" +"0.9.19 memiliki beberapa perbaikan dan perbaikan kinerja untuk floodfill." +"\n" +"Banyak dari Anda melihat penggunaan CPU yang tinggi setelah 0.9.18 " +"dirilis.\n" +"Hal ini disebabkan oleh kombinasi penggunaan enkripsi yang meningkat, " +"masuknya pengguna Vuze ke dalam jaringan, mengurangi pemborosan karena " +"persyaratan kinerja yang lebih ketat, dan beberapa bug yang telah " +"berlangsung lama.\n" +"Hal-hal seharusnya menjadi jauh lebih baik setelah sebagian besar " +"jaringan telah diperbarui.\n" +"Seperti biasa, cara terbaik untuk mengurangi penggunaan CPU adalah dengan" +" menurunkan batas bandwidth Anda." + +#: i2p2www/blog/2015/04/12/0.9.19-Release.rst:20 +msgid "" +"We've also added new ways to reseed manually, and to generate a reseed " +"file you can easily share with others who need it.\n" +"See the reseed configuration page in the router console for more " +"information." +msgstr "" +"Kami juga telah menambahkan cara-cara baru untuk melakukan reseed secara " +"manual, dan untuk membuat file yang bisa Anda reseed dengan mudah dapat " +"Anda bagikan dengan orang lain yang membutuhkannya.\n" +"Lihat halaman konfigurasi reseed di router console untuk informasi lebih " +"lanjut." + +#: i2p2www/blog/2015/04/12/0.9.19-Release.rst:34 +#: i2p2www/blog/2015/06/02/0.9.20-Release.rst:48 +msgid "Floodfill performance improvements" +msgstr "Perbaikan kinerja floodfill" + +#: i2p2www/blog/2015/04/12/0.9.19-Release.rst:35 +msgid "Easier ways to reseed manually from a file or URL" +msgstr "Cara mudah untuk melakukan reseed secara manual dari file atau URL" + +#: i2p2www/blog/2015/04/12/0.9.19-Release.rst:36 +msgid "New way to export reseed data for others" +msgstr "Cara baru untuk mengekspor data reseed kepada orang lain" + +#: i2p2www/blog/2015/04/12/0.9.19-Release.rst:37 +msgid "Support for installing plugin from file" +msgstr "Dukungan untuk menginstal plugin dari file" + +#: i2p2www/blog/2015/04/12/0.9.19-Release.rst:42 +#: i2p2www/blog/2015/06/02/0.9.20-Release.rst:59 +msgid "Fixes for high CPU usage in floodfills" +msgstr "Perbaikan untuk penggunaan CPU yang tinggi di floodfill" + +#: i2p2www/blog/2015/04/12/0.9.19-Release.rst:43 +msgid "i2ptunnel locking fixes" +msgstr "Perbaikan penguncian i2ptunnel" + +#: i2p2www/blog/2015/04/12/0.9.19-Release.rst:44 +msgid "Fixes for read timeout handling in streaming" +msgstr "Perbaikan untuk penanganan read timeout dalam streaming" + +#: i2p2www/blog/2015/04/12/0.9.19-Release.rst:45 +msgid "Fix changing i2psnark data directory on Windows" +msgstr "Perbaikan perubahan direktori data i2psnark di Windows" + +#: i2p2www/blog/2015/04/12/0.9.19-Release.rst:46 +msgid "Fix multiple SSL outproxies in HTTP client" +msgstr "Perbaikan beberapa outprox SSL dalam klien HTTP" + +#: i2p2www/blog/2015/04/12/0.9.19-Release.rst:51 +msgid "Update to UPnP library version 3.0" +msgstr "Pembaruan ke library UPnP versi 3.0" + +#: i2p2www/blog/2015/04/12/0.9.19-Release.rst:52 +msgid "Improve tracking of floodfill lookup success" +msgstr "Peningkatan pelacakan dari keberhasilan pencarian floodfill" + +#: i2p2www/blog/2015/04/12/0.9.19-Release.rst:53 +msgid "Direct router info lookups if connected to floodfill" +msgstr "Mengarahkan pencarian info router jika terhubung ke floodfill" + +#: i2p2www/blog/2015/04/12/0.9.19-Release.rst:54 +msgid "Auto-adjustment of i2psnark tunnel quantity" +msgstr "Penyesuaian otomatis jumlah tunnel di i2psnark" + +#: i2p2www/blog/2015/04/12/0.9.19-Release.rst:55 +msgid "Increase exploratory tunnel quantity when floodfill" +msgstr "Peningkatan kuantitas tunnel eksplorasi saat floodfill" + +#: i2p2www/blog/2015/04/12/0.9.19-Release.rst:56 +msgid "Increase min and default bandwidth for i2psnark" +msgstr "Peningkatan bandwidth minimum dan default untuk i2psnark" + +#: i2p2www/blog/2015/04/12/0.9.19-Release.rst:57 +msgid "Improved strategies for dropping jobs on high job lag to prevent overload" +msgstr "" +"Strategi yang lebih baik untuk menjatuhkan pekerjaan pada lag pekerjaan " +"tinggi untuk mencegah kelebihan beban" + +#: i2p2www/blog/2015/04/12/0.9.19-Release.rst:58 +msgid "Drop tunnel build requests on high job lag" +msgstr "Menghentikan permintaan pembangunan tunnel pada lag pekerjaan yang tinggi" + +#: i2p2www/blog/2015/04/12/0.9.19-Release.rst:59 +msgid "Increase allowed clock skew in I2CP" +msgstr "Peningkatan batas clock skew yang diizinkan di I2CP" + +#: i2p2www/blog/2015/04/12/0.9.19-Release.rst:60 +msgid "New HTTP error page when the server resets the connection" +msgstr "Halaman kesalahan HTTP baru saat server me-reset koneksi" + +#: i2p2www/blog/2015/04/12/0.9.19-Release.rst:61 +msgid "Require ECDSA support for floodfill" +msgstr "Mensyaratkan dukungan ECDSA untuk floodfill" + +#: i2p2www/blog/2015/04/12/0.9.19-Release.rst:62 +msgid "Republish router info faster when capabilities change" +msgstr "Publish ulang info router menjadi lebih cepat saat kemampuan berubah" + +#: i2p2www/blog/2015/04/12/0.9.19-Release.rst:63 +msgid "Better feedback in console for reseed errors" +msgstr "Umpan balik yang lebih baik di console untuk mendeteksi kesalahan reseed" + +#: i2p2www/blog/2015/06/02/0.9.20-Release.rst:1 +msgid "" +"==============\n" +"0.9.20 Release\n" +"==============" +msgstr "" +"==============\n" +"Rilis 0.9.20\n" +"==============" + +#: i2p2www/blog/2015/06/02/0.9.20-Release.rst:10 +msgid "0.9.20 with performance improvements and bug fixes" +msgstr "0.9.20 dengan perbaikan kinerja dan perbaikan bug" + +#: i2p2www/blog/2015/06/02/0.9.20-Release.rst:12 +msgid "" +"0.9.20 contains many important bug fixes, and several changes to increase" +" floodfill capacity in the network." +msgstr "" +"0.9.20 berisi banyak perbaikan bug yang penting, dan beberapa perubahan " +"untuk meningkatkan kapasitas floodfill di jaringan." + +#: i2p2www/blog/2015/06/02/0.9.20-Release.rst:16 +msgid "" +"Routers configured for 32-64 KB of shared bandwidth may now become " +"floodfill,\n" +"and routers configured for 512 KB or more of shared bandwidth will have " +"higher connection limits.\n" +"These changes may cause your router to use more resources.\n" +"If the router becomes too busy, the best way to reduce usage is to lower " +"the bandwidth settings in your console.\n" +"If that doesn't help, you may now disable automatic floodfill on the " +"advanced configuration page in the console." +msgstr "" +"Router yang dikonfigurasi untuk shared bandwidth 32-64 KB sekarang " +"mungkin menjadi floodfill, dan router yang dikonfigurasi untuk 512 KB " +"atau lebih shared bandwidth akan memiliki batas koneksi yang lebih " +"tinggi.\n" +"Perubahan ini dapat menyebabkan router Anda menggunakan lebih banyak " +"sumber daya.\n" +"Jika router menjadi terlalu sibuk, cara terbaik untuk mengurangi " +"penggunaan adalah dengan menurunkan pengaturan bandwidth di console Anda." +"\n" +"Jika itu tidak berhasil, sekarang Anda dapat menonaktifkan floodfill " +"otomatis di halaman konfigurasi lanjutan di console." + +#: i2p2www/blog/2015/06/02/0.9.20-Release.rst:24 +msgid "" +"We're hopeful that these changes will increase network capacity and " +"performance,\n" +"and reduce the congestion that's been affecting the network the last " +"three months." +msgstr "" +"Kami berharap bahwa perubahan ini akan meningkatkan kapasitas dan kinerja" +" jaringan, dan mengurangi kemacetan yang telah mempengaruhi jaringan " +"dalam tiga bulan terakhir." + +#: i2p2www/blog/2015/06/02/0.9.20-Release.rst:34 +msgid "" +"Finally, we're excited to announce our first-ever I2P meetup, in Toronto " +"August 15-16.\n" +"There will be lots of presentations and tutorials. All are welcome.\n" +"For more information, see the `announcement`_." +msgstr "" +"Akhirnya, kami dengan senang hati mengumumkan pertemuan I2P pertama kami," +" di Toronto, 15-16 Agustus.\n" +"Akan ada banyak presentasi dan tutorial. Semua orang boleh datang.\n" +"Untuk informasi lebih lanjut, lihat `pengumuman`_." + +#: i2p2www/blog/2015/06/02/0.9.20-Release.rst:49 +msgid "Add support for address book export" +msgstr "Tambahkan dukungan untuk ekspor buku alamat" + +#: i2p2www/blog/2015/06/02/0.9.20-Release.rst:50 +msgid "Add support for SSL in HTTP server tunnel" +msgstr "Tambahan dukungan untuk SSL di tunnel server HTTP" + +#: i2p2www/blog/2015/06/02/0.9.20-Release.rst:51 +msgid "Allow class 'M' (64-128 KBps share bandwidth) to become floodfill" +msgstr "Mengizinkan kelas 'M' (shared bandwidth 64-128 KBps) menjadi floodfill" + +#: i2p2www/blog/2015/06/02/0.9.20-Release.rst:52 +msgid "" +"Raise connection limits for new classes 'P' (512-2000 KBps share " +"bandwidth) and 'X' (over 2000 KBps)" +msgstr "" +"Menaikkan batas koneksi untuk kelas baru 'P' (512-2000 KBps share " +"bandwidth) dan 'X' (lebih dari 2000 KBps)" + +#: i2p2www/blog/2015/06/02/0.9.20-Release.rst:53 +msgid "Add support for signed development builds" +msgstr "Tambahan dukungan untuk pengembahan software yang ditandatangani" + +#: i2p2www/blog/2015/06/02/0.9.20-Release.rst:60 +msgid "Clock skew fixes" +msgstr "Perbaikan clock skew" + +#: i2p2www/blog/2015/06/02/0.9.20-Release.rst:61 +msgid "Fixes and configuration for when IPv4 is firewalled but IPv6 still works" +msgstr "" +"Perbaikan dan konfigurasi untuk saat IPv4 dilindungi firewall namun IPv6 " +"tetap berfungsi" + +#: i2p2www/blog/2015/06/02/0.9.20-Release.rst:62 +msgid "Locking fixes for i2ptunnel clients to prevent hangs at startup" +msgstr "" +"Perbaikan penguncian untuk klien i2ptunnel untuk mencegah hang saat " +"startup" + +#: i2p2www/blog/2015/06/02/0.9.20-Release.rst:63 +msgid "Verify hostnames when reseeding" +msgstr "Verifikasi nama host saat melakukan reseeding" + +#: i2p2www/blog/2015/06/02/0.9.20-Release.rst:64 +msgid "Fix deletion of config files for deleted torrents in i2psnark" +msgstr "" +"Perbaikan penghapusan file konfigurasi untuk torrents yang dihapus di " +"i2psnark" + +#: i2p2www/blog/2015/06/02/0.9.20-Release.rst:65 +msgid "Fix hangs fetching proxy.i2p local resources via Privoxy" +msgstr "Perbaikan hang waktu mengambil proxy.i2p sumber daya lokal via Privoxy" + +#: i2p2www/blog/2015/06/02/0.9.20-Release.rst:66 +msgid "Fixes for duplicate shared clients" +msgstr "Perbaikan untuk duplikat shared client" + +#: i2p2www/blog/2015/06/02/0.9.20-Release.rst:67 +msgid "Fix for occasional page truncation in HTTP client" +msgstr "Perbaikan untuk pemotongan halaman sesekali di klien HTTP" + +#: i2p2www/blog/2015/06/02/0.9.20-Release.rst:68 +msgid "Fixes for handling corrupted SSU packets" +msgstr "Perbaikan untuk menangani paket SSU yang rusak" + +#: i2p2www/blog/2015/06/02/0.9.20-Release.rst:69 +msgid "Fix closing of SAM sessions when I2P session closes" +msgstr "Perbaikan penutupan sesi SAM saat sesi I2P ditutup" + +#: i2p2www/blog/2015/06/02/0.9.20-Release.rst:70 +msgid "Fix bugs in handling streaming resets" +msgstr "Perbaikan bug dalam menangani streaming ulang" + +#: i2p2www/blog/2015/06/02/0.9.20-Release.rst:77 +msgid "Reduce NTCP threads" +msgstr "Pengurangan thread NTCP" + +#: i2p2www/blog/2015/06/02/0.9.20-Release.rst:78 +msgid "Eliminate SimpleScheduler threads" +msgstr "Penghilangan thread SimpleScheduler" + +#: i2p2www/blog/2015/06/02/0.9.20-Release.rst:79 +msgid "Add continent-based NTP servers as fallbacks for country-based ones" +msgstr "" +"Tambahan server NTP berbasis benua sebagai penggantinya untuk berbasis " +"negara" + +#: i2p2www/blog/2015/06/02/0.9.20-Release.rst:80 +msgid "Remove all default non-SSL reseed hosts" +msgstr "Menghapus semua host reseed non-SSL default" + +#: i2p2www/blog/2015/06/02/0.9.20-Release.rst:81 +msgid "Disable fallback to non-su3 reseeding" +msgstr "Nonaktifkan fallback ke non-su3 reseeding" + +#: i2p2www/blog/2015/06/02/0.9.20-Release.rst:82 +msgid "Several fixes in streaming for better \"loopback\" performance" +msgstr "" +"Beberapa perbaikan dalam streaming untuk kinerja \"loopback\" yang lebih " +"baik" + +#: i2p2www/blog/2015/06/02/0.9.20-Release.rst:83 +msgid "Reduce latency in i2ptunnel" +msgstr "Mengurangi latensi di i2ptunnel" + +#: i2p2www/blog/2015/06/02/0.9.20-Release.rst:84 +msgid "Add a larger Bloom filter for very high bandwidth and memory" +msgstr "" +"Tambahan filter Bloom yang lebih besar untuk bandwidth dan memori yang " +"sangat tinggi" + +#: i2p2www/blog/2015/06/02/0.9.20-Release.rst:85 +msgid "" +"Add Bloom filter warning when configured for high bandwidth but not " +"enough memory" +msgstr "" +"Tambahan peringatan filter Bloom bila dikonfigurasi untuk bandwidth " +"tinggi tapi tidak cukup memori" + +#: i2p2www/blog/2015/06/02/0.9.20-Release.rst:86 +msgid "Reduce max netdb search depth to reduce floodfill load" +msgstr "mengurangi kedalaman pencarian max netdb untuk mengurangi beban floodfill" + +#: i2p2www/blog/2015/06/02/0.9.20-Release.rst:87 +msgid "Improved header processing and error handling in i2ptunnel HTTP server" +msgstr "" +"Pengolahan header dan penanganan kesalahan yang lebih baik di server HTTP" +" i2ptunnel" + +#: i2p2www/blog/2015/06/02/0.9.20-Release.rst:88 +msgid "" +"Better error handling and user feedback when HTTP client tunnel is " +"disabled" +msgstr "" +"Penangan kesalahan dan umpan balik pengguna yang lebih baik saat client " +"tunnel HTTP dinonaktifkan" + +#: i2p2www/blog/2015/06/02/0.9.20-Release.rst:89 +msgid "More changes to improve floodfill capacity" +msgstr "Lebih banyak perubahan untuk memperbaiki kapasitas floodfill" + +#: i2p2www/blog/2015/06/02/0.9.20-Release.rst:90 +msgid "New configuration for forcing IPv4 (only) to firewalled on /confignet" +msgstr "Konfigurasi baru untuk memaksa IPv4 (hanya) ke firewall pada /confignet" + +#: i2p2www/blog/2015/06/02/0.9.20-Release.rst:91 +msgid "New configuration for floodfill on /configadvanced" +msgstr "Konfigurasi baru untuk floodfill pada /configadvanced" + +#: i2p2www/blog/2015/06/02/0.9.20-Release.rst:92 +msgid "Show separate IPv4 and IPv6 status in summary bar when appropriate" +msgstr "" +"Menampilkan status IPv4 dan IPv6 yang terpisah di bar ringkasan bila " +"sesuai" + +#: i2p2www/blog/2015/06/02/0.9.20-Release.rst:93 +msgid "Better handling of corrupt SSU packets" +msgstr "Penanganan yang lebih baik untu paket SSU yang rusak" + +#: i2p2www/blog/2015/06/02/Toronto-Meetup.rst:1 +msgid "" +"==============\n" +"Toronto Meetup\n" +"==============" +msgstr "" +"==============\n" +"Pertemuan Toronto\n" +"==============" + +#: i2p2www/blog/2015/06/02/Toronto-Meetup.rst:10 +msgid "I2P Meetup in Toronto on August 15-16." +msgstr "Pertemuan I2P di Toronto pada 15-16 Agustus." + +#: i2p2www/blog/2015/06/02/Toronto-Meetup.rst:12 +msgid "" +"The I2P team is proud to announce that we are going to host a meetup in " +"Toronto on August 15-16.\n" +"A number of members of our community will be attending and are going to " +"host talks, workshops and discussions about and relating to I2P. This " +"event is not just for I2P people though, it's meant for everyone." +msgstr "" +"Tim I2P dengan bangga mengumumkan bahwa kami akan mengadakan pertemuan di" +" Toronto pada 15-16 Agustus.\n" +"Sejumlah anggota komunitas kami akan hadir dan akan mengadakan " +"pembicaraan, lokakarya, dan diskusi tentang dan yang terkait dengan I2P. " +"Acara ini bukan hanya untuk orang-orang I2P, tetapi untuk semua orang." + +#: i2p2www/blog/2015/06/02/Toronto-Meetup.rst:17 +msgid "" +"If you're curious about I2P, interested in privacy/cryptography/anonymity" +" or just want to come by and talk to us, please do. This is an event for " +"everyone. If you're not familiar with any of these topics, come by anyway" +" and we'll show you how I2P works and what you can do with it.\n" +"\n" +"The event is entirely free, you don't need to sign up or register." +msgstr "" +"Jika Anda penasaran dengan I2P, tertarik pada privasi / kriptografi / " +"anonimitas atau hanya ingin datang dan berbicara dengan kami, silakan " +"datang. Ini adalah acara untuk semua orang. Jika Anda asing dengan topik " +"ini, datanglah dan kami akan menunjukkan kepada Anda bagaimana cara kerja" +" I2P dan apa yang dapat Anda lakukan dengannya.\n" +"\n" +"Acara ini sepenuhnya gratis, Anda tidak perlu mendaftar." + +#: i2p2www/blog/2015/06/02/Toronto-Meetup.rst:23 +msgid "" +"The meetup couldn't have been arranged without our friends at `Toronto " +"Crypto `_ which have been helping us organize" +" the event, and our friends at `Hacklab `_ which are" +" providing us with a very nice space." +msgstr "" +"Pertemuan tidak bisa diatur tanpa teman-teman kita di `Toronto Crypto " +" `_ yang telah membantu kami mengatur acara, " +"dan teman-teman kami di `Hacklab `_ yang memberi " +"kita ruang yang sangat bagus." + +#: i2p2www/blog/2015/06/02/Toronto-Meetup.rst:27 +#: i2p2www/blog/2015/07/16/I2PCon.rst:126 +msgid "If you have any questions, feel free to contact us on `@geti2p`_." +msgstr "Jika ada pertanyaan, silakan hubungi kami di `@ geti2p`_." + +#: i2p2www/blog/2015/06/02/Toronto-Meetup.rst:34 +#: i2p2www/blog/2015/07/16/I2PCon.rst:38 +msgid "" +"Details\n" +"=======" +msgstr "" +"Detail\n" +"=======" + +#: i2p2www/blog/2015/06/02/Toronto-Meetup.rst:39 +#: i2p2www/blog/2015/07/16/I2PCon.rst:57 +msgid "" +"Location\n" +"--------" +msgstr "" +"Lokasi\n" +"--------" + +#: i2p2www/blog/2015/06/02/Toronto-Meetup.rst:44 +msgid "`Hacklab `_ at 1266 Queen Street West, Toronto." +msgstr "`Hacklab `_ di 1266 Queen Street West, Toronto." + +#: i2p2www/blog/2015/06/02/Toronto-Meetup.rst:48 +msgid "" +"Day 1, August 15 - 3PM\n" +"----------------------" +msgstr "" +"Hari 1, 15 Agustus - Pukul 15.00\n" +"----------------------" + +#: i2p2www/blog/2015/06/02/Toronto-Meetup.rst:53 +msgid "" +"The focus will be on an introduction to topics surrounding I2P, privacy " +"and anonymity online. People of all backgrounds and knowledge levels are " +"welcome to attend." +msgstr "" +"Fokusnya adalah perkenalan pada topik seputar I2P, privasi, dan " +"anonimitas secara online. Orang-orang dari semua latar belakang dan " +"tingkat pengetahuan dipersilahkan untuk hadir." + +#: i2p2www/blog/2015/06/02/Toronto-Meetup.rst:57 +msgid "I2P Presentation" +msgstr "Presentasi I2P" + +#: i2p2www/blog/2015/06/02/Toronto-Meetup.rst:58 +msgid "Crypto party introduction" +msgstr "Pengantar pesta kripto" + +#: i2p2www/blog/2015/06/02/Toronto-Meetup.rst:59 +msgid "Crypto party" +msgstr "Pesta kripto" + +#: i2p2www/blog/2015/06/02/Toronto-Meetup.rst:61 +msgid "" +"The crypto party will contain a number of stations where " +"privacy/anonymity software will be demoed. The goal is to provide people " +"with the tools they need to communicate securely." +msgstr "" +"Pesta kripto akan berisi sejumlah stasiun di mana perangkat lunak privasi" +" / anonimitas akan didemonstrasikan. Tujuannya adalah untuk memberi orang" +" alat yang mereka butuhkan untuk berkomunikasi dengan aman." + +#: i2p2www/blog/2015/06/02/Toronto-Meetup.rst:65 +msgid "`Vuze/I2P`_ - Downloading torrents anonymously" +msgstr "`Vuze / I2P`_ - Mengunduh torrents secara anonim" + +#: i2p2www/blog/2015/06/02/Toronto-Meetup.rst:66 +msgid "`Veracrypt`_ - Encrypt your data" +msgstr "`Veracrypt`_ - Mengenkripsi data Anda" + +#: i2p2www/blog/2015/06/02/Toronto-Meetup.rst:67 +msgid "`I2PBote`_ - Anonymous decentralized email" +msgstr "`I2PBote`_ - Email anonim terdesentralisasi" + +#: i2p2www/blog/2015/06/02/Toronto-Meetup.rst:68 +msgid "Your station idea here" +msgstr "Masukkan ide stasiun Anda disini" + +#: i2p2www/blog/2015/06/02/Toronto-Meetup.rst:70 +msgid "" +"We're currently looking for help staffing the stations. If you want to " +"help out, you can! Bring a monitor/laptop and run a station. The station " +"could be any of the ones listed above, or any other privacy/anonymity " +"related one you would like to run. Please contact us at `@geti2p`_ if " +"you're interested." +msgstr "" +"Kami sedang mencari bantuan untuk menjaga stasiun. Jika Anda ingin " +"membantu, Anda bisa! Bawa monitor / laptop dan jalankan stasiun. Stasiun " +"bisa menjadi salah satu yang tercantum di atas, atau privasi / anonimitas" +" lainnya yang terkait dengan yang ingin Anda jalankan. Silahkan hubungi " +"kami di `@ geti2p`_ jika Anda tertarik." + +#: i2p2www/blog/2015/06/02/Toronto-Meetup.rst:79 +msgid "" +"Day 2, August 16 - 1PM\n" +"----------------------" +msgstr "" +"Hari 2, 16 Agustus - Pukul 13.00\n" +"----------------------" + +#: i2p2www/blog/2015/06/02/Toronto-Meetup.rst:84 +msgid "" +"The focus will be on in-depth topics surrounding I2P, the roadmap and " +"development. Anyone is welcome to attend, but the content will be " +"somewhat technical." +msgstr "" +"Fokusnya akan berada pada topik yang mendalam seputar I2P, peta jalan, " +"dan pengembangan. Siapapun dipersilahkan untuk hadir, namun kontennya " +"akan agak teknis." + +#: i2p2www/blog/2015/06/02/Toronto-Meetup.rst:88 +msgid "I2P Technical presentation" +msgstr "Presentasi teknis I2P" + +#: i2p2www/blog/2015/06/02/Toronto-Meetup.rst:89 +msgid "Technical discussion" +msgstr "Diskusi teknis" + +#: i2p2www/blog/2015/06/02/Toronto-Meetup.rst:90 +msgid "I2P App Dev Into" +msgstr "Pengenalan pengembangan aplikasi I2P" + +#: i2p2www/blog/2015/06/02/Toronto-Meetup.rst:91 +msgid "I2PD presentation" +msgstr "Presentasi I2PD" + +#: i2p2www/blog/2015/06/02/Toronto-Meetup.rst:92 +msgid "I2P on Android" +msgstr "I2P di Android" + +#: i2p2www/blog/2015/07/16/I2PCon.rst:1 +msgid "" +"======\n" +"I2PCon\n" +"======" +msgstr "" +"======\n" +"I2PCon\n" +"====== " + +#: i2p2www/blog/2015/07/16/I2PCon.rst:10 +msgid "I2PCon will be in Toronto on August 15-16." +msgstr "I2PCon akan berada di Toronto pada tanggal 15-16 Agustus." + +#: i2p2www/blog/2015/07/16/I2PCon.rst:13 +msgid "" +"I2PCon is the first event of its kind. It has two short term goals. Where" +" the\n" +"first one is to provide the general public with an event where knowledge " +"about\n" +"privacy and privacy concerns can be obtained. The second goal is to " +"further the\n" +"I2P project and its community. This will take the shape of technical " +"discussions\n" +"about cryptography, anonymity and I2P centric topics." +msgstr "" +"I2PCon adalah acara pertama yang diadakan untuk jenisnya. Ini memiliki " +"dua tujuan jangka pendek. Dimana yang pertama adalah mengadakan sebuah " +"acara untik masyarakat umum di mana pengetahuan tentang privasi dan " +"masalah privasi dapat diperoleh. Tujuan kedua adalah untuk melanjutkan " +"proyek I2P dan komunitasnya. Ini akan menjadi bentuk diskusi teknis " +"tentang topik kriptografi, anonimitas, dan topik menyangkut I2P." + +#: i2p2www/blog/2015/07/16/I2PCon.rst:21 +msgid "" +"There is a larger and more long-term goal of this event, and it is to " +"build a\n" +"commnutiy of privacy-conscious individuals. By connecting people who " +"recognize\n" +"the importance of privacy, we would like to provide a forum where this " +"community\n" +"can grow." +msgstr "" +"Ada tujuan yang lebih besar dan lebih jangka panjang dari acara ini, dan " +"ini adalah untuk membangun sebuah komunitas dari individu yang sadar " +"privasi. Dengan menghubungkan orang-orang yang menyadari pentingnya " +"privasi, kami ingin menyediakan forum di mana komunitas ini dapat " +"berkembang." + +#: i2p2www/blog/2015/07/16/I2PCon.rst:28 +msgid "" +"The idea for this event was first spawned by our wonderful friends at\n" +"`Toronto Crypto`_. The venue and everything relating to it is provided by" +"\n" +"`Hacklab`_. Without either of them this event would not have been " +"possible, so\n" +"thank you both." +msgstr "" +"Gagasan untuk acara ini pertama kali dilahirkan oleh teman-teman kita " +"yang luar biasa di `Toronto Crypto`. Tempat dan segala sesuatu yang " +"berkaitan dengannya disediakan oleh `Hacklab`_. Tanpa salah satu dari " +"mereka acara ini tidak akan mungkin terjadi. Terima kasih." + +#: i2p2www/blog/2015/07/16/I2PCon.rst:43 +msgid "" +"Cost\n" +"----" +msgstr "" +"Biaya\n" +"----" + +#: i2p2www/blog/2015/07/16/I2PCon.rst:48 +msgid "" +"I2PCon is entirely free to attend! We ask you to register `here`_, to " +"give us\n" +"an estimate of how many people will be attending. No identifying " +"information has\n" +"to be given in order to register, but if you have any concerns, please " +"let us\n" +"know." +msgstr "" +"I2PCon sepenuhnya gratis! Kami meminta Anda untuk mendaftar `di sini`_, " +"untuk memberi perkiraan berapa banyak orang yang akan hadir. Tidak ada " +"informasi identitas yang harus diberikan untuk mendaftar, namun jika Anda" +" memiliki masalah, beri tahu kami." + +#: i2p2www/blog/2015/07/16/I2PCon.rst:55 +#: i2p2www/blog/2016/01/27/0.9.24-Release.rst:45 +msgid "`here`" +msgstr "`di sini`" + +#: i2p2www/blog/2015/07/16/I2PCon.rst:62 +msgid "`Hacklab`_ at 1266 Queen Street West, Unit #6, Toronto." +msgstr "`Hacklab`_ di 1266 Queen Street West, Unit #6, Toronto." + +#: i2p2www/blog/2015/07/16/I2PCon.rst:66 +msgid "" +"Venue\n" +"-----" +msgstr "" +"Lokasi\n" +"-----" + +#: i2p2www/blog/2015/07/16/I2PCon.rst:71 +msgid "Power and WiFi access will be provided by `Hacklab`_." +msgstr "Listrik dan WiFi akan disediakan oleh `Hacklab`_." + +#: i2p2www/blog/2015/07/16/I2PCon.rst:76 +msgid "" +"Schedule\n" +"========" +msgstr "" +"Jadwal\n" +"========" + +#: i2p2www/blog/2015/07/16/I2PCon.rst:81 +msgid "" +"Day 1, August 15\n" +"----------------" +msgstr "" +"Hari 1, 15 Agustus\n" +"----------------" + +#: i2p2www/blog/2015/07/16/I2PCon.rst:98 +msgid "" +"Day 2, August 16\n" +"----------------" +msgstr "" +"Hari 2, 16 Agustus\n" +"----------------" + +#: i2p2www/blog/2015/07/16/I2PCon.rst:121 +msgid "" +"I'm confused and would like some answers\n" +"========================================" +msgstr "" +"Saya bingung dan ingin mendapat jawaban\n" +"========================================" + +#: i2p2www/blog/2015/07/31/0.9.21-Release.rst:1 +msgid "" +"==============\n" +"0.9.21 Release\n" +"==============" +msgstr "" +"==============\n" +"Rilis 0.9.21\n" +"==============" + +#: i2p2www/blog/2015/07/31/0.9.21-Release.rst:10 +msgid "0.9.21 with performance improvements and bug fixes" +msgstr "0.9.21 dengan perbaikan kinerja dan perbaikan bug" + +#: i2p2www/blog/2015/07/31/0.9.21-Release.rst:12 +msgid "" +"0.9.21 contains several changes to add capacity to the network, increase " +"the efficiency of the floodfills,\n" +"and use bandwidth more effectively.\n" +"We have migrated the shared clients tunnels to ECDSA signatures and added" +" a DSA fallback\n" +"using the new \"multisession\" capability for those sites that don't " +"support ECDSA." +msgstr "" +"0.9.21 berisi beberapa perubahan untuk menambahkan kapasitas ke jaringan," +" meningkatkan efisiensi floodfill, dan menggunakan bandwidth secara lebih" +" efektif.\n" +"Kami telah memigrasikan shared client tunnel ke tanda tangan ECDSA dan " +"menambahkan DSA fallback menggunakan kemampuan \"multisession\" baru " +"untuk situs-situs yang tidak mendukung ECDSA." + +#: i2p2www/blog/2015/07/31/0.9.21-Release.rst:19 +msgid "" +"The speakers and the schedule of the I2PCon in Toronto 2015 have been " +"announced.\n" +"Have a look on the `I2PCon page`_ for details.\n" +"Reserve your seat on `Eventbrite`_." +msgstr "" +"Pembicara dan jadwal I2PCon di Toronto 2015 telah diumumkan.\n" +"Silahkan lihat di 'halaman I2PCon`_ untuk rinciannya.\n" +"Pesan tempat duduk Anda di `Eventbrite`_." + +#: i2p2www/blog/2015/07/31/0.9.21-Release.rst:40 +msgid "Add multisession support for dual-signature crypto on the same tunnels" +msgstr "" +"Tambahan dukungan multisession untuk tanda tangan crypto ganda pada " +"tunnel yang sama" + +#: i2p2www/blog/2015/07/31/0.9.21-Release.rst:41 +msgid "Use multisession for shared clients" +msgstr "Pengunaan multisession untuk shared client" + +#: i2p2www/blog/2015/07/31/0.9.21-Release.rst:42 +msgid "Increase default outbound bandwidth limit to 60 KBps" +msgstr "Peningkatan batas bandwidth outbound default menjadi 60 KBps" + +#: i2p2www/blog/2015/07/31/0.9.21-Release.rst:43 +msgid "Increase default maximum participating tunnels" +msgstr "Peningkatan participating tunnel secara default" + +#: i2p2www/blog/2015/07/31/0.9.21-Release.rst:44 +msgid "" +"Floodfills will send database store acks directly if connected, for " +"efficiency" +msgstr "" +"Floodfills akan mengirimkan ack store database secara langsung jika " +"terhubung, untuk peningkatan efisiensi" + +#: i2p2www/blog/2015/07/31/0.9.21-Release.rst:45 +msgid "Set TCP keepalive on I2CP and SAM sockets" +msgstr "penetapan TCP keepalive pada soket I2CP dan SAM" + +#: i2p2www/blog/2015/07/31/0.9.21-Release.rst:46 +msgid "More efficient decompression in HTTP proxy, use less threads" +msgstr "" +"Dekompresi yang lebih efisien dalam proxy HTTP, pengurangan penggunaan " +"thread" + +#: i2p2www/blog/2015/07/31/0.9.21-Release.rst:47 +msgid "Add support for fast extensions in i2psnark" +msgstr "Penambahan dukungan untuk ekstensi cepat di i2psnark" + +#: i2p2www/blog/2015/07/31/0.9.21-Release.rst:48 +msgid "i2psnark only autostarts torrents that were running previously" +msgstr "i2psnark hanya memulai otomatis torrent yang sebelumnya sudah berjalan" + +#: i2p2www/blog/2015/07/31/0.9.21-Release.rst:49 +msgid "Add support for translated console news" +msgstr "Tambahan dukungan untuk terjemahan berita konsol" + +#: i2p2www/blog/2015/07/31/0.9.21-Release.rst:54 +msgid "SSU fixes to compete better with NTCP for bandwidth when limited" +msgstr "" +"Perbaikan SSU untuk bersaing lebih baik dengan NTCP untuk bandwidth saat " +"terbatas" + +#: i2p2www/blog/2015/07/31/0.9.21-Release.rst:55 +msgid "Fixes to prevent SSU stalls" +msgstr "Perbaikan untuk mencegah SSU menjadi stalled" + +#: i2p2www/blog/2015/07/31/0.9.21-Release.rst:56 +msgid "" +"Wait for outbound tunnels before sending first leaseset to client, to " +"prevent dropping first message" +msgstr "" +"Menunggu tunnel keluar sebelum mengirim leaseset pertama ke klien, untuk " +"mencegah pesan pertama ditolak" + +#: i2p2www/blog/2015/07/31/0.9.21-Release.rst:57 +msgid "Clean up resources correctly when SAM stops" +msgstr "Pembersihan sumber daya dengan benar saat SAM berhenti" + +#: i2p2www/blog/2015/07/31/0.9.21-Release.rst:58 +msgid "Better error handling and notification when HTTP proxy is not running" +msgstr "" +"Penanganan dan notifikasi kesalahan yang lebih baik saat proxy HTTP tidak" +" berjalan" + +#: i2p2www/blog/2015/07/31/0.9.21-Release.rst:59 +msgid "More i2ptunnel fixes at startup and shutdown of tunnels" +msgstr "Perbaikan i2ptunnel lebih banyak saat startup dan shutdown tunnel" + +#: i2p2www/blog/2015/07/31/0.9.21-Release.rst:60 +msgid "Fix total_size in i2psnark metadata message" +msgstr "Perbaiki total_size dalam pesan metadata i2psnark" + +#: i2p2www/blog/2015/07/31/0.9.21-Release.rst:61 +msgid "Restore dates in console news headers" +msgstr "Pemulihan tanggal di header berita console" + +#: i2p2www/blog/2015/07/31/0.9.21-Release.rst:62 +msgid "Several I2CP fixes" +msgstr "Beberapa perbaikan I2CP" + +#: i2p2www/blog/2015/07/31/0.9.21-Release.rst:67 +msgid "Use same session for naming lookups in I2PSocketEepGet" +msgstr "Penggunaan sesi yang sama untuk menamai lookup di I2PSocketEepGet" + +#: i2p2www/blog/2015/07/31/0.9.21-Release.rst:68 +msgid "Increase max bandwidth to 16 MBps, add larger Bloom filter" +msgstr "" +"Peningkatan bandwidth maksimal hingga 16 MBps, penambahan filter Bloom " +"yang lebih besar" + +#: i2p2www/blog/2015/07/31/0.9.21-Release.rst:69 +msgid "" +"New floodfills will send their info to nearby floodfills to speed " +"integration" +msgstr "" +"Floodfills baru akan mengirim info mereka ke floodfills terdekat untuk " +"meningkatkan kecepatan integrasi" + +#: i2p2www/blog/2015/08/20/I2PCon_Mission_Accomplished.rst:1 +msgid "" +"============================\n" +"I2PCon: Mission Accomplished\n" +"============================" +msgstr "" +"============================\n" +"I2PCon: Misi Berhasil\n" +"============================" + +#: i2p2www/blog/2015/08/20/I2PCon_Mission_Accomplished.rst:10 +msgid "I2PCon: Mission Accomplished" +msgstr "I2PCon: Misi Berhasil" + +#: i2p2www/blog/2015/08/20/I2PCon_Mission_Accomplished.rst:13 +msgid "" +"I2PCon has been a giant success. For us, the I2P contributors, it " +"represents a\n" +"leap forward in terms of what we're capable of pulling off as a " +"community, how we\n" +"communicate the usecases of I2P and reach out to privacy conscious " +"individuals.\n" +"\n" +"By arranging this event, we've also grown our community. People who've " +"previously\n" +"only lurked on our irc channels, or run our software or possibly hadn't " +"even heard\n" +"of I2P are now a part of our comminuty.\n" +"\n" +"This event has been our first active step towards building a large and " +"inclusive\n" +"community, and as such it's been great success." +msgstr "" +"I2PCon telah sukses besar. Bagi kami, kontributor I2P, ini merupakan " +"lompatan ke depan dalam hal apa yang dapat kita lakukan sebagai sebuah " +"komunitas, bagaimana kita mengkomunikasikan penerapan I2P dan menjangkau " +"individu yang sadar privasi.\n" +"\n" +"Dengan mengatur acara ini, kami juga telah menumbuhkan komunitas kami. " +"Orang-orang yang sebelumnya hanya mengintai saluran irc kami, atau " +"menjalankan perangkat lunak kami, atau mungkin bahkan belum pernah " +"mendengar tentang I2P sekarang menjadi bagian dari komitment kami.\n" +"\n" +"Acara ini merupakan langkah aktif pertama kami untuk membangun komunitas " +"besar dan inklusif, dan karena itu sukses besar." + +#: i2p2www/blog/2015/08/20/I2PCon_Mission_Accomplished.rst:27 +msgid "" +"Minutiae\n" +"========\n" +"On day 2 we had two short discussion sessions. A more general discussion " +"and a roadmapping discussion.\n" +"\n" +"The minutiae can be found here: `I2P Roadmap session minutiae`_ and `I2P " +"Discussion session minutiae`_." +msgstr "" +"Detail kecil\n" +"========\n" +"Pada hari ke-2 kami mengadakan dua sesi diskusi singkat. Diskusi yang " +"lebih umum dan diskusi tentang roadmap.\n" +"\n" +"Detail-detail kecil dapat ditemukan di sini: 'sesi I2P Roadmap minutiae`_" +" dan 'sesi diskusi I2P minutiae`_." + +#: i2p2www/blog/2015/08/20/I2PCon_Mission_Accomplished.rst:36 +msgid "" +"Photos\n" +"======" +msgstr "" +"Foto-foto\n" +"======" + +#: i2p2www/blog/2015/08/20/I2PCon_Mission_Accomplished.rst:44 +msgid "The learn how to setup I2P crypto party station" +msgstr "Belajar bagaimana menyiapkan stasiun di pesta kripto I2P" + +#: i2p2www/blog/2015/08/20/I2PCon_Mission_Accomplished.rst:49 +msgid "The learn how use I2P and Vuze party station" +msgstr "Belajar bagaimana menggunakan stasiun I2p dan Vuze" + +#: i2p2www/blog/2015/08/20/I2PCon_Mission_Accomplished.rst:54 +msgid "David Dagons wonderful talk" +msgstr "Diskusi hebat dengan David Dagons" + +#: i2p2www/blog/2015/08/20/I2PCon_Mission_Accomplished.rst:56 +msgid "" +"Thanks\n" +"======" +msgstr "" +"Terima kasih\n" +"======" + +#: i2p2www/blog/2015/08/20/I2PCon_Mission_Accomplished.rst:61 +msgid "" +"We've had some wonderful speakers, from both inside- and outside of our " +"community.\n" +"\n" +"`David Dagon`_ talked to us about the way forward and how I2P could " +"handle potential abuse.\n" +"\n" +"`Lance James`_ - the creator of our predecessor iip - said Hi and gave us" +" his thoughts about how far I2P has come.\n" +"\n" +"`Nick Johnston`_ gave us a wonderful talk about why privacy matters and " +"why you should care." +msgstr "" +"Kami memiliki beberapa pembicara hebat, baik dari dalam maupun luar " +"komunitas kami.\n" +"\n" +"`David Dagon`_ berbicara kepada kami tentang jalan ke depan dan bagaimana" +" I2P dapat menangani penyalahgunaan potensial.\n" +"\n" +"`Lance James`_ - pencipta pendahulunya iip - mengucapkan salam dan " +"memberikan pemikirannya kepada kami tentang sejauh mana I2P telah " +"berkembang.\n" +"\n" +"`Nick Johnston` memberi kami sebuah ceramah yang bagus tentang mengapa " +"privasi adalah hal yang penting dan mengapa Anda harus peduli." + +#: i2p2www/blog/2015/08/20/I2PCon_Mission_Accomplished.rst:71 +msgid "" +"I would also like to thank the speakers from our community. `psi`_, " +"`@str4d`_ and `zzz`_ who all had\n" +"wonderful talks. Improving our ability to inform people about I2P is " +"something that\n" +"is going to be important for us going forward." +msgstr "" +"Saya juga ingin mengucapkan terima kasih kepada pembicara dari komunitas " +"kami. `psi`_,` @ str4d`_ dan `zzz`_ yang semuanya melakukan diskusi yang " +"bagus. Meningkatkan kemampuan kita untuk memberi tahu orang tentang I2P " +"adalah sesuatu yang akan menjadi penting bagi kita untuk maju." + +#: i2p2www/blog/2015/08/20/I2PCon_Mission_Accomplished.rst:77 +msgid "" +"I would like to thank `Sadie`_ and Siew for helping us out with marketing" +" and graphics.\n" +"Without you I2PCon would've been a very different event." +msgstr "" +"Saya ingin mengucapkan terima kasih kepada `Sadie`_ dan Siew karena telah" +" membantu kami dalam pemasaran dan grafis.\n" +"Tanpa mereka, saya pasti acaranya akan menjadi sangat berbeda." + +#: i2p2www/blog/2015/08/20/I2PCon_Mission_Accomplished.rst:82 +msgid "" +"I would like to thank `@chlorelium`_ and `Hacklab`_ for being the most " +"wonderful of hosts." +msgstr "" +"Saya ingin mengucapkan terima kasih kepada `@chlorelium`_ dan `Hacklab`_ " +"karena menjadi tuan rumah yang paling hebat." + +#: i2p2www/blog/2015/08/20/I2PCon_Mission_Accomplished.rst:86 +msgid "" +"I would like to thank `@darknetj`_, P and `@hizeena`_ of `Toronto " +"Crypto`_ for their help during the event." +msgstr "" +"Saya ingin mengucapkan terima kasih kepada `@darknetj`_, P, dan " +"`@hizeena`_ dari `Toronto Crypto`_ atas bantuan mereka selama acara " +"berlangsung." + +#: i2p2www/blog/2015/08/20/I2PCon_Mission_Accomplished.rst:90 +msgid "" +"I would like to thank `@z3r0fox`_ for doing a wonderful job with the AV " +"and doing all of the post-production\n" +"work for the videos of all the talks." +msgstr "" +"Saya ingin mengucapkan terima kasih kepada `@z3r0fox`_ karena telah " +"melakukan pekerjaan hebat dengan AV dan melakukan semua karya pasca " +"produksi untuk video dari semua diskusi." + +#: i2p2www/blog/2015/08/20/I2PCon_Mission_Accomplished.rst:95 +msgid "" +"I would like to thank `@killyourtv_i2p`_ for hosting a very popular " +"crypto party station." +msgstr "" +"Saya ingin mengucapkan terima kasih kepada `@killyourtv_i2p`_ untuk " +"hosting sebuah stasiun pesta kripto yang sangat populer." + +#: i2p2www/blog/2015/08/20/I2PCon_Mission_Accomplished.rst:99 +msgid "" +"Thanks to our new favorite journalist `@robinlevinson`_, for showing an " +"interest in our cause and\n" +"educating yourself about the technologies involved." +msgstr "" +"Terima kasih kepada jurnalis favorit kami `@robinlevinson`_, karena " +"menunjukkan ketertarikan pada tujuan kami dan mendidik diri sendiri " +"tentang teknologi yang digunakan." + +#: i2p2www/blog/2015/08/20/I2PCon_Mission_Accomplished.rst:104 +msgid "" +"Thanks for all the pizza `@Panago_Pizza`_, it keept us going. You very " +"much made this event better." +msgstr "" +"Terima kasih untuk semua pizza `@Panago_Pizza`_, yang membuat kami terus " +"semangat. Anda sangat banyak membuat acara ini menjadi lebih baik." + +#: i2p2www/blog/2015/08/20/I2PCon_Mission_Accomplished.rst:108 +msgid "" +"Finally I would like to thank everyone else who just showed up to the " +"event and helped out in any way\n" +"they could.\n" +"ComradeNosebleed, LazyGravy, `cacapo`_, Xmz, ZeroRax, `echelon`_, it was " +"most excellent to hang out\n" +"with you." +msgstr "" +"Akhirnya saya ingin mengucapkan terima kasih kepada orang lain yang baru " +"saja hadir pada acara tersebut dan membantu semaksimal mungkin.\n" +"ComradeMosebleed, LazyGravy, `cacapo`_, Xmz, ZeroRax,` echelon`_, sangat " +"senang nongkrong dengan Anda semua." + +#: i2p2www/blog/2015/09/12/0.9.22-Release.rst:1 +msgid "" +"==============\n" +"0.9.22 Release\n" +"==============" +msgstr "" +"==============\n" +"Rilis 0.9.22\n" +"==============" + +#: i2p2www/blog/2015/09/12/0.9.22-Release.rst:10 +msgid "0.9.22 with bug fixes and start of Ed25519 migration" +msgstr "0.9.22 dengan perbaikan bug dan dimulainya migrasi Ed25519" + +#: i2p2www/blog/2015/09/12/0.9.22-Release.rst:12 +msgid "" +"0.9.22 contains fixes for i2psnark getting stuck before completion, and " +"begins the migration of router infos to new, stronger Ed25519 signatures." +"\n" +"To reduce network churn, your router will have only a small probability " +"of converting to Ed25519 at each restart.\n" +"When it does rekey, expect to see lower bandwidth usage for a couple of " +"days as it reintegrates into the network with its new identity.\n" +"If all goes well, we will accelerate the rekeying process in the next " +"release." +msgstr "" +"0.9.22 berisi perbaikan untuk i2psnark yang macet sebelum selesai, dan " +"memulai migrasi infomasi router ke tanda tangan Ed25519 baru yang lebih " +"kuat.\n" +"Untuk mengurangi churn jaringan, router Anda hanya memiliki kemungkinan " +"kecil untuk beralih ke Ed25519 pada setiap restart.\n" +"Ketika melakukan rekey, harap untuk melihat penggunaan bandwidth yang " +"lebih rendah selama beberapa hari selama integrasikan kembali ke jaringan" +" dengan identitas barunya.\n" +"Jika semuanya berjalan lancar, kami akan mempercepat proses rekeying di " +"rilis berikutnya." + +#: i2p2www/blog/2015/09/12/0.9.22-Release.rst:19 +msgid "" +"I2PCon Toronto was a big success!\n" +"All the presentations and videos are listed on the `I2PCon page`_." +msgstr "" +"I2PCon Toronto adalah sukses besar!\n" +"Semua presentasi dan video tersedia pada 'halaman I2PCon'_." + +#: i2p2www/blog/2015/09/12/0.9.22-Release.rst:30 +msgid "`I2PCon page`" +msgstr "'halaman I2PCon'" + +#: i2p2www/blog/2015/09/12/0.9.22-Release.rst:38 +msgid "Start migration to Ed25519 router info signatures" +msgstr "Memulai migrasi ke tanda tangan infor router Ed25519" + +#: i2p2www/blog/2015/09/12/0.9.22-Release.rst:39 +msgid "Convert i2psnark destinations to Ed25519 signatures" +msgstr "Konversi destinasi i2psnark ke tanda tangan Ed25519" + +#: i2p2www/blog/2015/09/12/0.9.22-Release.rst:44 +msgid "" +"Fix i2psnark getting stuck before download complete, and not deleting " +"temp files" +msgstr "" +"Memperbaiki i2psnark terjebak sebelum men-download yang lengkap, dan " +"tidak menghapus file temp" + +#: i2p2www/blog/2015/09/12/0.9.22-Release.rst:45 +msgid "" +"Fix starting of torrents added by copying torrent file to i2psnark " +"directory" +msgstr "" +"Memperbaiki memulai torrents yang ditambahkan dengan menyalin torrent " +"file ke direktori i2psnark" + +#: i2p2www/blog/2015/09/12/0.9.22-Release.rst:46 +msgid "Fix UPnP 'content not allowed in trailing section' error" +msgstr "Memperbaiki kesalahan 'konten tidak diperbolehkan di bagian trailing' UPnP" + +#: i2p2www/blog/2015/09/12/0.9.22-Release.rst:47 +msgid "Fix excluded SSL ciphers in console" +msgstr "Perbaikan mengecualikan sandi SSL di console" + +#: i2p2www/blog/2015/11/15/Community-Outreach.rst:1 +msgid "" +"==================\n" +"Community Outreach\n" +"==================" +msgstr "" +"==================\n" +"Jangkauan Komunitas\n" +"==================" + +#: i2p2www/blog/2015/11/15/Community-Outreach.rst:10 +msgid "A start to more frequent community status reports." +msgstr "Mulai untuk laporan status komunitas yang lebih sering." + +#: i2p2www/blog/2015/11/15/Community-Outreach.rst:12 +msgid "Meta" +msgstr "Meta " + +#: i2p2www/blog/2015/11/15/Community-Outreach.rst:14 +msgid "" +"Greetings!\n" +"This is the first in a long series of blogs to help the community see " +"what is happening in the I2P community.\n" +"Since many awesome events are happening *inside* the network, we think it" +" will be worthwhile to talk about some of activities here." +msgstr "" +"Salam!\n" +"Ini adalah awal dari serangkaian panjang blog untuk membantu masyarakat " +"melihat apa yang terjadi di komunitas I2P.\n" +"Karena banyak peristiwa-peristiwa mengagumkan terjadi *dalam* jaringan, " +"kami pikir ini akan berharga untuk berbicara tentang beberapa kegiatan di" +" sini." + +#: i2p2www/blog/2015/11/15/Community-Outreach.rst:20 +msgid "A Call for Feedback" +msgstr "Panggilan untuk umpan balik" + +#: i2p2www/blog/2015/11/15/Community-Outreach.rst:22 +msgid "" +"Let's face it -- our console needs improvement.\n" +"Our site could use an update as well.\n" +"We are looking for feedback on how to improve the usability of I2P for " +"new and existing users!" +msgstr "" +"Akui saja -- console kami perlu perbaikan.\n" +"Situs kami dapat juga memerlukan pembaruan.\n" +"Kami sedang mencari umpan balik tentang cara meningkatkan kegunaan dari " +"I2P untuk pengguna baru dan pengguna lama!" + +#: i2p2www/blog/2015/11/15/Community-Outreach.rst:28 +msgid "" +"Any and all feedback is welcome.\n" +"Please contact `@GetI2P`_, `@str4d`_, or `@YrB1rd`_.\n" +"If you don't feel comfortable using Twitter, we are always available via " +"the in-network IRC channel.\n" +"You don't have to be a long time user.\n" +"We want to hear from all sorts of people!" +msgstr "" +"Umpan balik apapun sangat diharapkan.\n" +"Mohon hubungi '@GetI2P'_, '@str4d' _ atau '@YrB1rd'_.\n" +"Jika Anda tidak merasa nyaman menggunakan Twitter, kami selalu tersedia " +"melalui di channel IRC di dalam jaringan I2P.\n" +"Anda tidak perlu menjadi pengguna lama untuk memberikan umpan balik.\n" +"Kami ingin mendengar dari semua orang!" + +#: i2p2www/blog/2015/11/15/Community-Outreach.rst:40 +msgid "Developer Meeting Synopsis" +msgstr "Sinopsis Rapat Pengembang" + +#: i2p2www/blog/2015/11/15/Community-Outreach.rst:42 +msgid "" +"On 03 November there was an I2P developer meeting (`log`_).\n" +"This meeting focused on adding new links to the router console, " +"preparation for CCC, finding a replacement for forum.i2p, and website " +"improvements." +msgstr "" +"Pada 03 November ada I2P pertemuan pengembang ('log' _).\n" +"Pertemuan ini difokuskan pada menambahkan link baru ke router console, " +"persiapan untuk CCC, menemukan pengganti untuk forum.i2p, dan perbaikan " +"website." + +#: i2p2www/blog/2015/11/15/Community-Outreach.rst:49 +msgid "" +"The consensus was to not add dogecoindark.i2p.\n" +"There are concerns about usability due to many images being included on " +"the page.\n" +"Exchanged.i2p is conditionally added, as long as the maintainer adds a " +"disclaimer on the site.\n" +"I2Pwiki.i2p (a backup of ugha.i2p, an older wiki) was accepted, as was " +"lenta.i2p (a russian news site)." +msgstr "" +"Ada kesepakatan untuk tidak menambah dogecoindark.i2p.\n" +"Ada kekhawatiran tentang kegunaan karena banyak gambar yang disertakan " +"pada halaman.\n" +"Exchanged.i2p ditambahkan dengan syarat pengelola menambahkan sanggahan " +"atau disclaimer di situs.\n" +"I2Pwiki.i2p (cadangan ugha.i2p, wiki yang lebih lama) diterima, sama " +"seperti lenta.i2p (sebuah situs berita Rusia)." + +#: i2p2www/blog/2015/11/15/Community-Outreach.rst:56 +msgid "" +"str4d proposed blocking off the \\*.i2p.i2p namespace so they can be used" +" for developer's services.\n" +"He also suggested a more formalized technical proposal system, with more " +"prominence on the main website." +msgstr "" +"str4d mengusulkan memblokir \\*.i2p.i2p namespace sehingga dapat " +"digunakan untuk pengembang layanan.\n" +"Dia juga menyarankan sebuah sistem proposal teknis yang lebih formal, " +"yang lebih menonjol pada situs utama." + +#: i2p2www/blog/2015/11/15/Community-Outreach.rst:61 +msgid "" +"The I2P Team is going to be in Hamburg, Germany for the 32nd Chaos " +"Computer Congress.\n" +"More details are to come on this, but we can promise there will be " +"stickers." +msgstr "" +"Tim I2P akan hadir di Hamburg, Jerman untuk Chaos Computer Congress " +"ke-32.\n" +"Rincian lebih lanjut ditambahkan, tapi kami bisa menjanjikan akan ada " +"stiker." + +#: i2p2www/blog/2015/11/15/Community-Outreach.rst:66 +msgid "General Announcements" +msgstr "Pengumuman Umum" + +#: i2p2www/blog/2015/11/15/Community-Outreach.rst:68 +msgid "Thank you to `TorontoCrypto`_ for hosting the newest I2P reseed server!" +msgstr "" +"Terima kasih kepada 'TorontoCrypto'_ untuk hosting server reseed I2P " +"terbaru!" + +#: i2p2www/blog/2015/11/15/Community-Outreach.rst:74 +msgid "" +"Translation deadline Thursday, 12 November, translators please update. " +"All translations are done via `Transifex`_ ." +msgstr "" +"Batas waktu penerjemahan adalah Kamis 12 November. Para penerjemah mohon " +"memperbarui terjemahannya. Semua terjemahan dilakukan melalui " +"'Transifex'_." + +#: i2p2www/blog/2015/11/19/0.9.23-Release.rst:1 +msgid "" +"==============\n" +"0.9.23 Release\n" +"==============" +msgstr "" +"==============\n" +"Rilis 0.9.23\n" +"==============" + +#: i2p2www/blog/2015/11/19/0.9.23-Release.rst:10 +msgid "" +"0.9.23 contains a variety of bug fixes, and some minor improvements in " +"I2PSnark" +msgstr "" +"0.9.23 berisi berbagai perbaikan bugs, dan beberapa peningkatan kecil di " +"I2PSnark" + +#: i2p2www/blog/2015/11/19/0.9.23-Release.rst:12 +msgid "" +"Hello I2P! This is the first release signed by me (str4d), after 49 " +"releases\n" +"signed by zzz. This is an important test of our redundancy for all " +"things,\n" +"including people." +msgstr "" +"Halo I2P! Ini adalah rilis pertama yang ditandatangani oleh saya (str4d)," +" sebelumnya sebanyak rilis 49 ditandatangani oleh zzz. Hal ini merupakan " +"ujian penting untuk redundansi kami untuk semua hal, termasuk orang-" +"orang." + +#: i2p2www/blog/2015/11/19/0.9.23-Release.rst:18 +msgid "" +"Housekeeping\n" +"============" +msgstr "" +"Bersih-bersih\n" +"============" + +#: i2p2www/blog/2015/11/19/0.9.23-Release.rst:23 +msgid "" +"My signing key has been in router updates for over two years (since " +"0.9.9), so\n" +"if you are on a recent version of I2P this update should be just as easy " +"as\n" +"every other update. However, if you are running an older version than " +"0.9.9, you\n" +"will first need to manually update to a recent version. Update files for " +"recent\n" +"versions `can be downloaded here`_, and instructions on how to manually " +"update\n" +"`are provided here`_. Once you have manually updated, your router will " +"then find\n" +"and download the 0.9.23 update as usual." +msgstr "" +"Kunci penandatanganan saya telah berada di update router selama lebih " +"dari dua tahun (sejak 0.9.9), jadi jika Anda memiliki versi terbaru dari " +"I2P, pembaruan ini seharusnya semudah setiap update. Namun, jika Anda " +"menjalankan versi yang lebih tua daripada 0.9.9, Anda akan harus secara " +"manual update ke versi terbaru. Pembaruan versi file terbaru 'dapat " +"didownload di sini' _, dan petunjuk tentang cara update manual " +"'disediakan di sini'_. Setelah Anda memperbarui secara manual, router " +"Anda akan kemudian menemukan dan mengunduh update 0.9.23 seperti biasa." + +#: i2p2www/blog/2015/11/19/0.9.23-Release.rst:33 +msgid "`can be downloaded here`" +msgstr "'dapat didownload di sini'" + +#: i2p2www/blog/2015/11/19/0.9.23-Release.rst:35 +msgid "`are provided here`" +msgstr "'disediakan di sini'" + +#: i2p2www/blog/2015/11/19/0.9.23-Release.rst:37 +msgid "" +"If you installed I2P via a package manager, you are not affected by the " +"change,\n" +"and can update as usual." +msgstr "" +"Jika Anda menginstal I2P melalui pengelola paket, Anda tidak akan " +"terpengaruh oleh perubahan, dan dapat memperbarui seperti biasa." + +#: i2p2www/blog/2015/11/19/0.9.23-Release.rst:42 +#: i2p2www/blog/2016/01/27/0.9.24-Release.rst:12 +#: i2p2www/blog/2016/03/22/0.9.25-Release.rst:12 +#: i2p2www/blog/2016/06/07/0.9.26-Release.rst:19 +#: i2p2www/blog/2016/10/17/0.9.27-Release.rst:12 +#: i2p2www/blog/2016/12/12/0.9.28-Release.rst:12 +#: i2p2www/blog/2017/02/27/0.9.29-Release.rst:12 +#: i2p2www/blog/2017/03/04/0.9.29-Windows-Installer-Fix.rst:12 +#: i2p2www/blog/2017/05/03/0.9.30-Release.rst:12 +#: i2p2www/blog/2017/08/07/0.9.31-Release.rst:12 +msgid "" +"Update details\n" +"==============" +msgstr "" +"Rincian pembaruan\n" +"==============" + +#: i2p2www/blog/2015/11/19/0.9.23-Release.rst:47 +msgid "" +"The migration of RouterInfos to new, stronger Ed25519 signatures is going" +" well,\n" +"with at least half of the network already estimated to have rekeyed. This" +"\n" +"release accelerates the rekeying process. To reduce network churn, your " +"router\n" +"will have a small probability of converting to Ed25519 at each restart. " +"When it\n" +"does rekey, expect to see lower bandwidth usage for a couple of days as " +"it\n" +"reintegrates into the network with its new identity." +msgstr "" +"Migrasi RouterInfos baru, tanda tangan Ed25519 yang kuat berjalan baik, " +"dengan setidaknya setengah dari jaringan sudah diperkirakan telah " +"rekeyed. Rilis ini mempercepat proses rekeying. Untuk mengurangi churn " +"jaringan, router Anda akan memiliki kemungkinan kecil konversi ke Ed25519" +" di setiap restart. Ketika melakukan rekey, harap untuk melihat " +"penggunaan bandwidth yang lebih rendah selama beberapa hari selama " +"integrasikan kembali ke jaringan dengan identitas barunya." + +#: i2p2www/blog/2015/11/19/0.9.23-Release.rst:56 +msgid "" +"Note that this will be the last release to support Java 6. Please update " +"to\n" +"Java 7 or 8 as soon as possible. We are already working to make I2P " +"compatible\n" +"with the upcoming Java 9, and some of that work is in this release." +msgstr "" +"Dengan catatan bahwa hal ini akan menjadi rilis terakhir yang mendukung " +"Java 6. Harap perbarui ke Java 7 atau 8 secepatnya. Kami sudah bekerja " +"untuk membuat I2P dapat digunakan dengan Java 9, dan beberapa pekerjaan " +"tersebut berada dalam rilis ini." + +#: i2p2www/blog/2015/11/19/0.9.23-Release.rst:62 +msgid "" +"We have also made some minor improvements in I2PSnark, and added a new " +"page in\n" +"the routerconsole for viewing older news items." +msgstr "" +"Kami juga telah membuat beberapa peningkatan kecil di I2PSnark, dan " +"menambahkan beberapa halaman di routerconsole untuk melihat item news " +"yang lama." + +#: i2p2www/blog/2015/11/19/0.9.23-Release.rst:77 +msgid "Accelerate transition to Ed25519" +msgstr "Mempercepat transisi ke Ed25519" + +#: i2p2www/blog/2015/11/19/0.9.23-Release.rst:82 +msgid "" +"Fix some bugs soft restarting after a large clock shift (e.g. resume) " +"(but more to do)" +msgstr "" +"Memperbaiki beberapa bug kecil di mana restart setelah pergeseran jam " +"besar (misalnya saat resume) (namun masih banyak hal yang perlu " +"dilakukan)" + +#: i2p2www/blog/2015/11/19/0.9.23-Release.rst:83 +msgid "" +"Fix streaming retransmission timers that were dying, and related timer " +"bugs" +msgstr "" +"Memperbaiki timer retransmission streaming yang sekarat, dan terkait bug " +"timer" + +#: i2p2www/blog/2015/11/19/0.9.23-Release.rst:84 +msgid "Fix streaming connections rejected while tunnel is opening" +msgstr "Memperbaiki streaming koneksi yang ditolak sementara tunnel sedang dibuka" + +#: i2p2www/blog/2015/11/19/0.9.23-Release.rst:85 +msgid "Fix rare i2psnark and UPnP deadlocks" +msgstr "Memperbaiki i2psnark langka dan UPnP deadlock" + +#: i2p2www/blog/2015/11/19/0.9.23-Release.rst:86 +msgid "Fix lifetime participating bandwidth display in console" +msgstr "Memperbaiki tampilan participating bandwidth seumur hidup yang di console" + +#: i2p2www/blog/2015/11/19/0.9.23-Release.rst:91 +msgid "Increase default outbound exploratory tunnel length to 3" +msgstr "Meningkatkan panjang tunnel eksplorasi outbound default ke 3" + +#: i2p2www/blog/2015/11/19/0.9.23-Release.rst:92 +msgid "" +"Use max of 2 not-failing peers in exploratory tunnels to improve build " +"success" +msgstr "" +"Menggunakan max 2 peer yang tidak gagal dalam tunnel eksplorasi untuk " +"meningkatkan keberhasilan pembangunan tunnel" + +#: i2p2www/blog/2015/11/19/0.9.23-Release.rst:93 +msgid "Add support for hostnames prefixed with \"www.\"" +msgstr "Menambahkan dukungan untuk nama host yang diawali dengan \"www.\"" + +#: i2p2www/blog/2015/11/19/0.9.23-Release.rst:94 +msgid "" +"Store news feed items separately on disk, show on new /news page, limit " +"display on home page to 2" +msgstr "" +"Menyimpan isi news feed terpisah di dalam harddisk, menampilkannya dalam " +"halaman new/news, membatasi tampilan di halaman depan menjadi 2" + +#: i2p2www/blog/2015/11/19/0.9.23-Release.rst:95 +msgid "Increase probability of rekeying to EdDSA" +msgstr "Meningkatkan probabilitas rekeying untuk EdDSA" + +#: i2p2www/blog/2015/11/19/0.9.23-Release.rst:96 +msgid "Detect for broken ECDSA support in Gentoo" +msgstr "Mendeteksi untuk dukungan ECDSA rusak di Gentoo" + +#: i2p2www/blog/2015/11/19/0.9.23-Release.rst:97 +msgid "Console: Add a Java 6 warning, this is the last release to support Java 6" +msgstr "" +"Console: Tambahan peringatan Java 6, ini adalah rilis terakhir untuk " +"mendukung Java 6" + +#: i2p2www/blog/2015/11/19/0.9.23-Release.rst:98 +msgid "Changes to prepare for Java 9 compatibility" +msgstr "Perubahan untuk mempersiapkan kompatibilitas Java 9" + +#: i2p2www/blog/2015/11/19/0.9.23-Release.rst:99 +msgid "" +"Pass Accept-Encoding header through client and server proxies, to allow " +"end-to-end compression" +msgstr "" +"Menerima header Accept-Encoding melalui klien dan server proxy, untuk " +"membolehkan kompresi end-to-end" + +#: i2p2www/blog/2015/11/19/0.9.23-Release.rst:102 +msgid "Increase piece size, piece count, and file count limits" +msgstr "Meningkatkan ukuran potongan, jumlah potongan, dan batasan jumlah file" + +#: i2p2www/blog/2015/11/19/0.9.23-Release.rst:103 +msgid "Save added and completed times" +msgstr "Simpan ditambahkan dan jumlah selesai" + +#: i2p2www/blog/2015/11/19/0.9.23-Release.rst:104 +msgid "Save magnet parameters across restart" +msgstr "Menyimpan parameter magnet setiap restart" + +#: i2p2www/blog/2015/11/19/0.9.23-Release.rst:105 +msgid "Don't delete .torrent file on errors at startup, rename to .torrent.BAD" +msgstr "" +"Jangan menghapus file .torrent pada kesalahan pada saat startup, mengubah" +" nama menjadi .torrent.BAD" + +#: i2p2www/blog/2015/11/19/0.9.23-Release.rst:106 +msgid "Add recheck, start, stop buttons on details pages" +msgstr "Menambahkan tombol recheck, mulai, berhenti pada halaman rincian" + +#: i2p2www/blog/2015/11/19/0.9.23-Release.rst:107 +msgid "Add option to disable \"smart sort\"" +msgstr "Tambahkn pilihan untuk menonaktifkan \"smart sort\"" + +#: i2p2www/blog/2015/11/19/0.9.23-Release.rst:109 +msgid "Speed up IP address validation" +msgstr "Mempercepat pengesahan alamat IP" + +#: i2p2www/blog/2015/11/19/0.9.23-Release.rst:110 +msgid "Separate streaming blacklists for ECDSA and EdDSA" +msgstr "Blacklist streaming terpisah untuk ECDSA dan EdDSA" + +#: i2p2www/blog/2016/01/23/32C3.rst:1 +msgid "" +"=========\n" +"CCC Recap\n" +"=========" +msgstr "" +"=========\n" +"Ringkasan CCC\n" +"=========" + +#: i2p2www/blog/2016/01/23/32C3.rst:10 +msgid "CCC!" +msgstr "CCC! " + +#: i2p2www/blog/2016/01/23/32C3.rst:12 +msgid "" +"Attending: Sadie, Colin, lazygravy, zzz, hottuna, kytv, cacapo, and " +"eche|on." +msgstr "" +"Yang hadir: Sadie, Colin, lazygravy, zzz, hottuna, kytv, cacapo, dan " +"echelon." + +#: i2p2www/blog/2016/01/23/32C3.rst:16 +msgid "" +"Start\n" +"=====\n" +"The project has had another successful year at CCC.\n" +"We would like to thank the volunteers at `32C3`_ for all of their help in" +" organizing this event and for being accommodating hosts for us.\n" +"Many I2P contributors were able to attend this year's Congress due to " +"many of the generous donations from supporters like you to the project.\n" +"If you would like to fund I2P, please see `our donation page`_ for more " +"information." +msgstr "" +"Mulai\n" +"=====\n" +"Proyek I2P kembali mendapatkan kesuksesan di CCC.\n" +"Kami ingin mengucapkan terima kasih kepada para relawan di '32C3' _ untuk" +" semua bantuan mereka dalam mengorganisir acara ini dan untuk menjadi " +"tuan rumah yang baik.\n" +"Banyak kontributor I2P mampu menghadiri Congress tahun ini karena banyak " +"sumbangan dermawan dari pendukung seperti Anda untuk proyek I2P.\n" +"Jika Anda ingin untuk mendanai I2P, silakan lihat 'Halaman donasi'_ untuk" +" informasi lebih lanjut." + +#: i2p2www/blog/2016/01/23/32C3.rst:25 +msgid "`32C3`" +msgstr "`32C3` " + +#: i2p2www/blog/2016/01/23/32C3.rst:26 +msgid "`our donation page`" +msgstr "'halaman donasi kami'" + +#: i2p2www/blog/2016/01/23/32C3.rst:28 +msgid "" +"Just like previous years we were located in Noisy Square, located near " +"the EFF's table.\n" +"This proved to be an ideal spot for us as our table was almost always " +"busy with current and new users who were interested in I2P, many of whom " +"we wouldn't have otherwise had the ability to talk to." +msgstr "" +"Sama seperti tahun kemarin, kami berada Noisy Square, di dekat meja EFF.\n" +"Ini menjadi ideal bagi kami karena meja kami hampir selalu sibuk dengan " +"pengguna baru dan lama yang tertarik dengan I2P, banyak yang sebelumnya " +"tidak dapat temui.." + +#: i2p2www/blog/2016/01/23/32C3.rst:62 +msgid "" +"Reseed Status\n" +"=============" +msgstr "" +"Status Reseed\n" +"=============" + +#: i2p2www/blog/2016/01/23/32C3.rst:67 +msgid "Let's get more reseeds!" +msgstr "Ayo dapatkan reseed lebih banyak!" + +#: i2p2www/blog/2016/01/23/32C3.rst:71 +msgid "" +"If you don't know what a reseed server is, it is first the connection new" +" routers use to find peers.\n" +"There was a lot of discussion around the current status of the reseed " +"network right now.\n" +"As always, more reseed operators are needed!\n" +"If you would like to strengthen the reseed infrastructure, (or if you're " +"talented with Go) email `backup -at- i2pmail.org`_." +msgstr "" +"Jika Anda tidak tahu apa itu server reseed, itu adalah sambungan pertama " +"untuk router baru untuk menemukan peer.\n" +"Ada banyak diskusi di sekitar status saat ini jaringan reseed sekarang.\n" +"Seperti biasa, lebih banyak reseed operator diperlukan!\n" +"Jika Anda ingin untuk memperkuat infrastruktur reseed (atau jika Anda " +"berbakat dengan Go) kirim email ke 'backup - at - i2pmail.org'_." + +#: i2p2www/blog/2016/01/23/32C3.rst:78 +msgid "`backup -at- i2pmail.org`" +msgstr "`backup -at- i2pmail.org` " + +#: i2p2www/blog/2016/01/23/32C3.rst:80 +msgid "" +"Sybil Detection (beta)\n" +"======================" +msgstr "" +"Deteksi Sybil (beta)\n" +"======================" + +#: i2p2www/blog/2016/01/23/32C3.rst:85 +msgid "" +"Due to the decentralized nature of I2P detecting Sybil attacks is not as " +"straight forward as on other networks (i.e. Tor).\n" +"To mitigate this zzz has been working on a new router-based Sybil " +"detection tool.\n" +"To be brief, the tool runs in the router, and collects information on " +"floodfills your router is currently aware of.\n" +"Currently the tool is mainly collecting a baseline and does not act on " +"any of the information it is collecting.\n" +"Expect to see a writeup on this more as 0.9.25 or 0.9.26 approaches, as " +"it is still in active development" +msgstr "" +"Karena sifat desentralisasi I2P, mendeteksi serangan Sybil tidak " +"sesederhana pada jaringan lain (seperti dalam Tor).\n" +"Untuk mengatasi ini, zzz telah membuat alat baru pada deteksi Sybil di " +"router.\n" +"Singkat kata, alat ini berjalan di router, dan mengumpulkan informasi " +"pada router Anda sedang mendeteksi floodfills.\n" +"Saat ini, alat ini utamanya mengumpulkan baseline dan tidak bertindak " +"terhadap informasi yang dikumpulkan.\n" +"Harapkan untuk melihat revisi pada hal ini sampai mendekati rilis 0.9.25 " +"atau 0.9.26, yang masih dalam pengembangan aktif" + +#: i2p2www/blog/2016/01/23/32C3.rst:93 +msgid "" +"Development Meeting\n" +"===================" +msgstr "" +"Pertemuan Pengembangan\n" +"===================" + +#: i2p2www/blog/2016/01/23/32C3.rst:98 +msgid "" +"On the 30th we held an in person `meeting`_ at our table.\n" +"The meeting focused on organizationally preparing for more project " +"management, and public relations (both from Sadie)." +msgstr "" +"Pada tanggal 30 kami mengadakan 'pertemuan'_ pribadi di meja kami.\n" +"Pertemuan tersebut berfokus pada mempersiapkan lebih manajemen proyek, " +"dan hubungan masyarakat (keduanya dari Sadie)." + +#: i2p2www/blog/2016/01/23/32C3.rst:103 +msgid "`meeting`" +msgstr "'pertemuan'" + +#: i2p2www/blog/2016/01/23/32C3.rst:105 +msgid "" +"We discussed how much of the work done on I2P is lost in the commits and " +"there is not much to see for our users.\n" +"To remedy this lazygravy plans on preparing a series of posts explaining " +"some technical topics in I2P.\n" +"The initial ideas that we discussed writing posts on are what encrypted " +"lease sets are, why different tunnel types are needed, and some " +"observations seen in `I2Spy`_.\n" +"But these are just the start and we would like to hear feedback on topics" +" we should write about!" +msgstr "" +"Kami mendiskusikan berapa banyak pekerjaan yang harus dilakukan pada I2P " +"yang hilang di commit dan tidak ada banyak yang dilihat untuk pengguna " +"kami.\n" +"Untuk memperbaiki ini, lazygravy rencana mempersiapkan serangkaian " +"posting yang menjelaskan beberapa topik teknis di I2P.\n" +"Ide-ide awal yang telah kita bahas untuk posting adalah apakah itu lease " +"set, mengapa diperlukan tipe-tipe tunnel yang berbeda, dan beberapa " +"pengamatan yang terlihat di 'I2Spy'_.\n" +"Tapi ini baru permulaan dan kami ingin mendengar umpan balik tentang " +"topik yang harus kami tulis!" + +#: i2p2www/blog/2016/01/23/32C3.rst:112 +msgid "`i2spy`" +msgstr "`i2spy` " + +#: i2p2www/blog/2016/01/23/32C3.rst:114 +msgid "" +"Meeting (Future)\n" +"================" +msgstr "" +"Pertemuan (Di Masa Depan)\n" +"================" + +#: i2p2www/blog/2016/01/23/32C3.rst:119 +msgid "There will be a `another meeting`_ on 2 Feburary 2016 to discuss:" +msgstr "Akan ada `pertemuan lain`_ pada 2 Feburary 2016 untuk membahas:" + +#: i2p2www/blog/2016/01/23/32C3.rst:123 +msgid "Review of assigned tasks from 30 December meeting" +msgstr "Tinjauan tugas yang ditugaskan pada pertemuan 30 Desember" + +#: i2p2www/blog/2016/01/23/32C3.rst:124 +msgid "Project meeting plan for 2016" +msgstr "Rencana rapat proyek 2016" + +#: i2p2www/blog/2016/01/23/32C3.rst:125 +msgid "GMP 6 readiness" +msgstr "Kesiapan GMP 6" + +#: i2p2www/blog/2016/01/23/32C3.rst:126 +msgid "A proposal for a code of conduct" +msgstr "Proposal untuk kode etik" + +#: i2p2www/blog/2016/01/23/32C3.rst:128 +msgid "`another meeting`" +msgstr "`pertemuan lain`" + +#: i2p2www/blog/2016/01/27/0.9.24-Release.rst:1 +msgid "" +"==============\n" +"0.9.24 Release\n" +"==============" +msgstr "" +"==============\n" +"Rilis 0.9.24\n" +"==============" + +#: i2p2www/blog/2016/01/27/0.9.24-Release.rst:10 +msgid "0.9.24 contains a variety of bug fixes and performance enhancements" +msgstr "0.9.24 berisi berbagai perbaikan bug dan peningkatan kinerja" + +#: i2p2www/blog/2016/01/27/0.9.24-Release.rst:17 +msgid "" +"0.9.24 contains a new version of SAM (v3.2) and numerous bug fixes and " +"efficiency improvements.\n" +"Note that this release is the first to require Java 7.\n" +"Please update to Java 7 or 8 as soon as possible.\n" +"Your router will not automatically update if you are using Java 6." +msgstr "" +"0.9.24 berisi versi baru SAM (v3.2) dan banyak perbaikan bug dan " +"peningkatan efisiensi.\n" +"Perhatikan bahwa rilis ini adalah yang pertama membutuhkan Java 7.\n" +"Silahkan perbarui ke Java 7 atau 8 sesegera mungkin.\n" +"Router Anda tidak akan secara otomatis memperbarui jika Anda menggunakan " +"Java 6." + +#: i2p2www/blog/2016/01/27/0.9.24-Release.rst:24 +msgid "" +"To prevent the problems caused by the ancient commons-logging library, we" +" have removed it.\n" +"This will cause very old I2P-Bote plugins (0.2.10 and below, signed by " +"HungryHobo) to crash if they have IMAP enabled.\n" +"The recommended fix is to replace your old I2P-Bote plugin with the " +"current one signed by str4d.\n" +"For more details, see `this post`_." +msgstr "" +"Untuk mencegah masalah yang disebabkan oleh commons-logging library yang " +"kuno, kami telah menghapusnya.\n" +"Ini akan menyebabkan plugin I2P-Bote yang sangat tua (0.2.10 dan yang " +"lebih rendah, signed oleh HungryHobo) menjadi crash jika IMAP diaktifkan." +"\n" +"Perbaikan yang disarankan adalah mengganti plugin I2P-Bote lama Anda " +"dengan yang sekarang ditandatangani oleh str4d.\n" +"Untuk lebih jelasnya, lihat `posting ini`_." + +#: i2p2www/blog/2016/01/27/0.9.24-Release.rst:31 +msgid "`this post`" +msgstr "`posting ini`" + +#: i2p2www/blog/2016/01/27/0.9.24-Release.rst:33 +msgid "" +"We had a great `32C3 Congress`_ and are making good progress on our 2016 " +"project plans.\n" +"Echelon gave a talk on I2P's history and current status, and his slides " +"are `available here`_ (pdf).\n" +"Str4d attended `Real World Crypto`_ and gave a talk on our crypto " +"migration, his slides are `here`_ (pdf)." +msgstr "" +"Kami mengadakan `32C3 Congress`_ yang hebat dan membuat kemajuan yang " +"baik dalam rencana proyek 2016 kami.\n" +"Echelon memberi ceramah tentang sejarah dan status terkini I2P, dan " +"slide-nya 'tersedia di sini`_ (pdf).\n" +"Str4d menghadiri `Real World Crypto`_ dan memberi ceramah tentang migrasi" +" kripto kami, slide-nya ada `di sini'_ (pdf)." + +#: i2p2www/blog/2016/01/27/0.9.24-Release.rst:39 +msgid "`32C3 Congress`" +msgstr "`32C3 Congress` " + +#: i2p2www/blog/2016/01/27/0.9.24-Release.rst:41 +msgid "`available here`" +msgstr "`tersedia di sini`" + +#: i2p2www/blog/2016/01/27/0.9.24-Release.rst:43 +msgid "`Real World Crypto`" +msgstr "`Real World Crypto` " + +#: i2p2www/blog/2016/01/27/0.9.24-Release.rst:57 +msgid "Java 7 now required" +msgstr "Java 7 sekarang dibutuhkan" + +#: i2p2www/blog/2016/01/27/0.9.24-Release.rst:58 +msgid "" +"SAM 3.2, with several new advanced features, command parser improvements," +" and lots of bug fixes" +msgstr "" +"SAM 3.2, dengan beberapa fitur canggih baru, perbaikan perintah parser, " +"dan banyak perbaikan bug" + +#: i2p2www/blog/2016/01/27/0.9.24-Release.rst:59 +msgid "Router Family" +msgstr "Router Family " + +#: i2p2www/blog/2016/01/27/0.9.24-Release.rst:60 +msgid "Commons logging removed" +msgstr "Commons logging dihapus" + +#: i2p2www/blog/2016/01/27/0.9.24-Release.rst:65 +msgid "Fix HTML escaping in the console plugin table" +msgstr "Perbaikian HTML escaping di tabel plugin console" + +#: i2p2www/blog/2016/01/27/0.9.24-Release.rst:66 +msgid "Fix rare deadlocks in the router" +msgstr "Perbaikan deadlock langka di router" + +#: i2p2www/blog/2016/01/27/0.9.24-Release.rst:67 +msgid "Fix the tunnel build Bloom filter" +msgstr "Perbaikan tunnel build filter Bloom" + +#: i2p2www/blog/2016/01/27/0.9.24-Release.rst:68 +msgid "" +"Don't remove tunnel on next-hop failure indication from transport, it " +"isn't reliable" +msgstr "" +"Jangan menghapus tunnel pada indikasi kegagalan hop berikutnya dari " +"transportasi, itu tidak bisa diandalkan" + +#: i2p2www/blog/2016/01/27/0.9.24-Release.rst:69 +msgid "Fix formatting in summary bar to prevent overflow" +msgstr "Perbaikan format di summary bar untuk mencegah overflow" + +#: i2p2www/blog/2016/01/27/0.9.24-Release.rst:70 +msgid "Fix console links in i2ptunnel error pages when on nonstandard host/port" +msgstr "" +"Perbaiki tautan console di halaman kesalahan i2ptunnel saat berada di " +"host/port yang tidak standar" + +#: i2p2www/blog/2016/01/27/0.9.24-Release.rst:71 +msgid "" +"Don't query floodfills whose version is too old to support encrypted " +"replies" +msgstr "" +"Jangan meminta floodfill yang versinya terlalu tua untuk mendukung " +"balasan terenkripsi" + +#: i2p2www/blog/2016/01/27/0.9.24-Release.rst:72 +msgid "Reduce out-of-order delivery in SSU" +msgstr "Kurangi pengiriman out-of-order di SSU" + +#: i2p2www/blog/2016/01/27/0.9.24-Release.rst:73 +msgid "Fix a rare NPE in the tunnel build handler" +msgstr "Perbaiki NPE langka di tunnel build handler" + +#: i2p2www/blog/2016/01/27/0.9.24-Release.rst:78 +msgid "Listen for Windows Service shutdown events to shutdown cleanly" +msgstr "Mendengarkan event shutdown Windows Service untuk shutdown dengan bersih" + +#: i2p2www/blog/2016/01/27/0.9.24-Release.rst:79 +msgid "Fix some IPv6 issues on Windows" +msgstr "Perbaikan beberapa masalah IPv6 di Windows" + +#: i2p2www/blog/2016/01/27/0.9.24-Release.rst:80 +msgid "Change Jetty request logging from b64 to b32" +msgstr "Mengganti Jetty request logging dari b64 ke b32" + +#: i2p2www/blog/2016/01/27/0.9.24-Release.rst:81 +msgid "" +"New 'family' indication in netdb, don't use two of the same family in a " +"tunnel" +msgstr "" +"Indikasi 'family' baru di netdb, jangan gunakan dua router family yang " +"sama di tunnel" + +#: i2p2www/blog/2016/01/27/0.9.24-Release.rst:82 +msgid "New overview picture in SusiDNS" +msgstr "Gambaran ikhtisar baru di SusiDNS" + +#: i2p2www/blog/2016/01/27/0.9.24-Release.rst:83 +msgid "Close connection faster if it's for a rejected tunnel request" +msgstr "Menutup koneksi lebih cepat jika untuk permintaan tunnel ditolak" + +#: i2p2www/blog/2016/01/27/0.9.24-Release.rst:84 +msgid "Use SSU extended options field for session request message" +msgstr "Gunakan bidang opsi perpanjangan SSU untuk pesan permintaan sesi" + +#: i2p2www/blog/2016/01/27/0.9.24-Release.rst:85 +msgid "Request introduction in the SSU extended options" +msgstr "Meminta pengenalan dalam opsi perpanjangan SSU" + +#: i2p2www/blog/2016/01/27/0.9.24-Release.rst:86 +msgid "" +"Don't offer to introduce unless requested, to introduce only those that " +"need it" +msgstr "" +"Tidak menawarkan untuk memperkenalkan kecuali diminta, hanya untuk " +"mengenalkan yang membutuhkannya" + +#: i2p2www/blog/2016/01/27/0.9.24-Release.rst:87 +msgid "Experimental Sybil analysis tool, requires routerconsole.advanced=true" +msgstr "Alat analisis Sybil eksperimental, membutuhkan routerconsole.advanced=true" + +#: i2p2www/blog/2016/01/27/0.9.24-Release.rst:88 +msgid "Persist some profile netdb stats that weren't being saved" +msgstr "Mempertahankan beberapa profil statistik netdb yang tidak disimpan" + +#: i2p2www/blog/2016/01/27/0.9.24-Release.rst:89 +msgid "Memory reduction and other efficiency improvements throughout" +msgstr "Pengurangan memori dan peningkatan efisiensi lainnya" + +#: i2p2www/blog/2016/01/27/0.9.24-Release.rst:90 +msgid "Increase several limits in i2psnark" +msgstr "Tingkatkan beberapa batasan di i2psnark" + +#: i2p2www/blog/2016/01/27/0.9.24-Release.rst:91 +msgid "New streaming unit tests" +msgstr "Tes unit streaming baru" + +#: i2p2www/blog/2016/01/27/0.9.24-Release.rst:92 +msgid "Fix some SSU stats on /peers to be consistent with NTCP" +msgstr "Perbaikan beberapa statistik SSU di /peer konsisten dengan NTCP" + +#: i2p2www/blog/2016/01/27/0.9.24-Release.rst:93 +msgid "Change default sig type for new i2ptunnels to Ed25519" +msgstr "Ubah tipe sig default untuk i2ptunnels baru ke Ed25519" + +#: i2p2www/blog/2016/01/27/0.9.24-Release.rst:94 +msgid "Increase router rekey probability at startup again" +msgstr "Meningkatkan probabilitas rekey router saat startup lagi" + +#: i2p2www/blog/2016/01/27/0.9.24-Release.rst:95 +msgid "New Chinese (Taiwan) translation" +msgstr "Terjemahan baru bahasa Mandarin (Taiwan)" + +#: i2p2www/blog/2016/01/27/0.9.24-Release.rst:102 +#: i2p2www/blog/2016/03/22/0.9.25-Release.rst:73 +#: i2p2www/blog/2016/06/07/0.9.26-Release.rst:93 +#: i2p2www/blog/2016/10/17/0.9.27-Release.rst:70 +#: i2p2www/blog/2016/12/12/0.9.28-Release.rst:100 +#: i2p2www/blog/2017/02/27/0.9.29-Release.rst:74 +#: i2p2www/blog/2017/05/03/0.9.30-Release.rst:99 +#: i2p2www/blog/2017/08/07/0.9.31-Release.rst:66 +msgid "`Full list of fixed bugs`" +msgstr "`Daftar lengkap bug tetap '" + +#: i2p2www/blog/2016/03/22/0.9.25-Release.rst:1 +msgid "" +"==============\n" +"0.9.25 Release\n" +"==============" +msgstr "" +"==============\n" +"Rilis 0.9.25\n" +"==============" + +#: i2p2www/blog/2016/03/22/0.9.25-Release.rst:10 +msgid "0.9.25 contains SAM 3.3, QR codes, and bug fixes" +msgstr "0.9.25 berisi SAM 3.3, kode QR, dan perbaikan bug." + +#: i2p2www/blog/2016/03/22/0.9.25-Release.rst:17 +msgid "" +"0.9.25 contains a major new version of SAM, v3.3, to support " +"sophisticated multiprotocol applications.\n" +"It adds QR codes for sharing hidden service addresses with others,\n" +"and \"identicon\" images for visually distinguishing addresses." +msgstr "" +"0.9.25 berisi versi baru SAM v3.3 untuk mendukung aplikasi multiprotocol " +"yang canggih.\n" +"Rilis ini menambahkan kode QR untuk berbagi alamat hidden service dengan " +"orang lain, dan gambar \"identicon\" untuk membedakan alamat secara " +"visual." + +#: i2p2www/blog/2016/03/22/0.9.25-Release.rst:23 +msgid "" +"We've added a new \"router family\" configuration page in the console,\n" +"to make it easier to declare that your group of routers is run by a " +"single person.\n" +"There are several changes to increase the capacity of the network and " +"hopefully improve tunnel build success." +msgstr "" +"Kami telah menambahkan halaman konfigurasi \"router family\" baru di " +"console, untuk memudahkan untuk menyatakan bahwa kelompok router Anda " +"dijalankan oleh satu orang.\n" +"Ada beberapa perubahan untuk meningkatkan kapasitas jaringan dan semoga " +"hal ini meningkatkan kesuksesan dalam membangun tunnel." + +#: i2p2www/blog/2016/03/22/0.9.25-Release.rst:39 +msgid "Display of identicons and QR codes in address book and i2ptunnel" +msgstr "Tampilan identik dan kode QR di buku alamat dan i2ptunnel" + +#: i2p2www/blog/2016/03/22/0.9.25-Release.rst:40 +msgid "SAM v3.3 with advanced features" +msgstr "SAM v3.3 dengan fitur canggih" + +#: i2p2www/blog/2016/03/22/0.9.25-Release.rst:41 +msgid "Configuration page for router family" +msgstr "Halaman konfigurasi untuk keluarga router" + +#: i2p2www/blog/2016/03/22/0.9.25-Release.rst:42 +msgid "Custom icons for plugins" +msgstr "Ikon khusus untuk plugin" + +#: i2p2www/blog/2016/03/22/0.9.25-Release.rst:43 +msgid "Internal implementation of self-signed certificate generation" +msgstr "Pelaksanaan internal sertifikat yang ditandatangani sendiri" + +#: i2p2www/blog/2016/03/22/0.9.25-Release.rst:44 +msgid "Add i2ptunnel http server options to block by referer or user-agent" +msgstr "" +"Tambahan pilihan server http i2ptunnel untuk blokir oleh referer atau " +"user-agent" + +#: i2p2www/blog/2016/03/22/0.9.25-Release.rst:49 +msgid "IRC server tunnel default fix to help reliability" +msgstr "Perbaikan default tunnel server IRC untuk meningkatkan keandalan" + +#: i2p2www/blog/2016/03/22/0.9.25-Release.rst:50 +msgid "Don't wait until a lease expires to switch to a new on" +msgstr "Jangan menunggu sampai lease berakhir untuk beralih ke yang baru" + +#: i2p2www/blog/2016/03/22/0.9.25-Release.rst:55 +msgid "Preliminary support for certificate revocations" +msgstr "Dukungan awal untuk pembatalan sertifikat" + +#: i2p2www/blog/2016/03/22/0.9.25-Release.rst:56 +msgid "Preliminary support for storing EdDSA and ElGamal keys in keystores" +msgstr "Dukungan awal untuk menyimpan kunci EdDSA dan ElGamal di keystore" + +#: i2p2www/blog/2016/03/22/0.9.25-Release.rst:57 +msgid "More efficient signing and verification with EdDSA" +msgstr "Penandatanganan dan verifikasi lebih efisien dengan EdDSA" + +#: i2p2www/blog/2016/03/22/0.9.25-Release.rst:58 +msgid "Increase default connection limits" +msgstr "Meningkatkan batas koneksi default" + +#: i2p2www/blog/2016/03/22/0.9.25-Release.rst:59 +msgid "Increase default inbound bandwidth" +msgstr "Meningkatkan default bandwidth masuk" + +#: i2p2www/blog/2016/03/22/0.9.25-Release.rst:60 +msgid "Increase max files per torrent in i2psnark" +msgstr "Meningkatkan jumlah file maks per torrent di i2psnark" + +#: i2p2www/blog/2016/03/22/0.9.25-Release.rst:61 +msgid "Add more sanity checks to detect bad system clock" +msgstr "" +"Tambahkan lebih banyak pemeriksaan sanity untuk mendeteksi jam sistem " +"yang buruk" + +#: i2p2www/blog/2016/03/22/0.9.25-Release.rst:62 +msgid "Improve news styling in console" +msgstr "Peningkatkan gaya berita di console" + +#: i2p2www/blog/2016/03/22/0.9.25-Release.rst:63 +msgid "Improve certificate blacklist implementation" +msgstr "Perbaiki penerapan sertifikat blacklist" + +#: i2p2www/blog/2016/03/22/0.9.25-Release.rst:64 +msgid "Faster disconnect after publishing router info to floodfill" +msgstr "Pemutusan lebih cepat setelah mempublikasikan info router ke floodfill" + +#: i2p2www/blog/2016/03/22/0.9.25-Release.rst:65 +msgid "Smooth out the dropping of idle SSU sessions" +msgstr "Memperlancar pemutusan sesi SSU yang menganggur" + +#: i2p2www/blog/2016/03/22/0.9.25-Release.rst:66 +msgid "Add X-Content-Type-Options headers in console" +msgstr "Tambahan header X-Content-Type-Options di console" + +#: i2p2www/blog/2016/06/01/I2P-Summer-Dev.rst:1 +msgid "" +"==============\n" +"I2P Summer Dev\n" +"==============" +msgstr "" +"==============\n" +"I2P Summer Dev\n" +"============== " + +#: i2p2www/blog/2016/06/01/I2P-Summer-Dev.rst:10 +msgid "" +"We are pleased to announce that this summer, I2P will be embarking on a " +"development program aimed at improving the privacy software ecosystem for" +" both developers and users." +msgstr "" +"Dengan senang hati kami umumkan bahwa musim panas ini, I2P akan memulai " +"program pengembangan yang bertujuan memperbaiki ekosistem perangkat lunak" +" privasi, baik untuk pengembang maupun pengguna." + +#: i2p2www/blog/2016/06/01/I2P-Summer-Dev.rst:12 +msgid "" +"Over the last few years, the need for users to be in control of their own" +" data\n" +"has become increasingly apparent. Some excellent progress had been made " +"in this\n" +"regard with the rise of messaging apps like Signal_, and file storage " +"systems\n" +"like Tahoe-LAFS_. The ongoing work of `Let's Encrypt`_ to bring HTTPS to " +"the\n" +"whole world is steadily gaining traction." +msgstr "" +"Selama beberapa tahun terakhir, kebutuhan pengguna untuk mengendalikan " +"data mereka sendiri telah menjadi semakin nyata. Beberapa kemajuan yang " +"sangat baik telah dicapai sehubungan dengan munculnya aplikasi pesan " +"singkat seperti Signal_, dan sistem penyimpanan file seperti Tahoe-LAFS_." +" Pekerjaan yang sedang berlangsung seperti `Let's Encrypt`_ untuk membawa" +" HTTPS ke seluruh dunia terus mendapatkan daya tarik." + +#: i2p2www/blog/2016/06/01/I2P-Summer-Dev.rst:20 +msgid "" +"But building privacy and anonymity into applications is not trivial. Much" +" of the\n" +"software people use every day was not designed to be privacy-preserving, " +"and the\n" +"tools developers have available are generally not easy to work with. The\n" +"recently-published OnionScan_ survey gives some insight into just how " +"easy it is\n" +"for even technical users to mis-configure their services, completely " +"undermining\n" +"their intentions." +msgstr "" +"Tapi membangun kerahasiaan dan anonimitas menjadi aplikasi tidaklah " +"sepele. Sebagian besar perangkat lunak yang digunakan setiap hari tidak " +"dirancang untuk menjaga privasi, dan alat pengembang yang tersedia " +"umumnya tidak mudah digunakan. Survei OnionScan_ yang baru dipublikasikan" +" memberikan beberapa wawasan tentang betapa mudahnya pengguna teknis " +"untuk salah mengonfigurasi layanan mereka, yang benar-benar merusak niat " +"mereka." + +#: i2p2www/blog/2016/06/01/I2P-Summer-Dev.rst:35 +msgid "" +"Helping developers help their users\n" +"===================================" +msgstr "" +"Membantu pengembang dalam membantu pengguna mereka\n" +"===================================" + +#: i2p2www/blog/2016/06/01/I2P-Summer-Dev.rst:40 +msgid "" +"We are pleased to announce that this summer, I2P will be embarking on a\n" +"development program aimed at improving the privacy software ecosystem. " +"Our goal\n" +"is to make life easier both for developers wanting to leverage I2P in " +"their\n" +"applications, and for users trying to configure and run their apps " +"through I2P." +msgstr "" +"Dengan senang hati kami umumkan bahwa musim panas ini, I2P akan memulai " +"program pengembangan yang bertujuan memperbaiki ekosistem perangkat lunak" +" privasi. Tujuan kami adalah untuk membuat hidup lebih mudah bagi " +"pengembang yang ingin memanfaatkan I2P dalam aplikasi mereka, dan bagi " +"pengguna yang mencoba mengonfigurasi dan menjalankan aplikasi mereka " +"melalui I2P." + +#: i2p2www/blog/2016/06/01/I2P-Summer-Dev.rst:47 +msgid "We will be focusing our time this summer into three complementary areas:" +msgstr "Kami akan memfokuskan waktu kami musim panas ini ke dalam tiga area:" + +#: i2p2www/blog/2016/06/01/I2P-Summer-Dev.rst:51 +msgid "" +"June: APIs\n" +"----------" +msgstr "" +"Juni: APIs\n" +"----------" + +#: i2p2www/blog/2016/06/01/I2P-Summer-Dev.rst:56 +msgid "" +"In June, we will be updating the various libraries that exist for " +"interfacing\n" +"with I2P. We have made significant progress this year on extending our " +"SAM_ API\n" +"with additional features, such as support for datagrams and ports. We " +"plan to\n" +"make these features easily accessible in our C++ and Python libraries." +msgstr "" +"Pada bulan Juni, kami akan memperbarui berbagai library yang ada untuk " +"berinteraksi dengan I2P. Kami telah membuat kemajuan yang signifikan " +"tahun ini untuk memperluas API SAM_ kami dengan fitur tambahan, seperti " +"dukungan untuk datagrams dan port. Kami berencana untuk membuat fitur ini" +" mudah diakses di library C ++ dan Python kami." + +#: i2p2www/blog/2016/06/01/I2P-Summer-Dev.rst:63 +msgid "" +"We will also soon be making it much easier for Java and Android " +"developers to\n" +"add I2P support to their applications. Stay tuned!" +msgstr "" +"Kami juga akan segera mempermudah pengembang Java dan Android untuk " +"menambahkan dukungan I2P ke aplikasi mereka. Tetap disini!" + +#: i2p2www/blog/2016/06/01/I2P-Summer-Dev.rst:70 +msgid "" +"July: Apps\n" +"----------" +msgstr "" +"Juli: Apps\n" +"----------" + +#: i2p2www/blog/2016/06/01/I2P-Summer-Dev.rst:75 +msgid "" +"In July we will be working with applications that have expressed interest" +" in\n" +"adding support for I2P. There are some really neat ideas being developed " +"in the\n" +"privacy space right now, and we want to help their communities leverage " +"over a\n" +"decade of research and development on peer-to-peer anonymity. Extending " +"these\n" +"applications to work natively over I2P is a good step forward for " +"usability, and\n" +"in the process will improve how these applications think about and handle" +" user\n" +"information." +msgstr "" +"Pada bulan Juli, kami akan mengerjakan aplikasi yang telah menyatakan " +"minatnya untuk menambahkan dukungan untuk I2P. Ada beberapa gagasan yang " +"benar-benar rapi yang dikembangkan di ruang privasi saat ini, dan kami " +"ingin membantu komunitas mereka memanfaatkan lebih dari satu dekade " +"penelitian dan pengembangan tentang anonimitas peer-to-peer. Memperluas " +"aplikasi ini untuk bekerja secara native di atas I2P adalah langkah maju " +"yang baik untuk kegunaan, dan dalam prosesnya akan memperbaiki bagaimana " +"aplikasi ini memikirkan dan menangani informasi pengguna." + +#: i2p2www/blog/2016/06/01/I2P-Summer-Dev.rst:85 +msgid "" +"August: Plugins\n" +"---------------" +msgstr "" +"Agustus: Plugins\n" +"---------------" + +#: i2p2www/blog/2016/06/01/I2P-Summer-Dev.rst:90 +msgid "" +"Finally, in August we will turn out attention to the apps we bundle " +"inside I2P,\n" +"and the wider array of plugins. Some of these are due for some love, to " +"make\n" +"them more user-friendly - as well as fix any outstanding bugs! We hope " +"that\n" +"longtime I2P supporters will enjoy the outcome of this work." +msgstr "" +"Akhirnya, pada bulan Agustus, kami akan mengalihkan perhatian ke aplikasi" +" yang kami rangkai di dalam I2P, dan rangkaian plugin yang lebih luas. " +"Beberapa di antaranya adalah karena kami menyukainya, untuk membuatnya " +"lebih mudah digunakan - dan juga memperbaiki bug yang beredar! Kami " +"berharap para pendukung I2P lama akan menikmati hasil dari pekerjaan ini." + +#: i2p2www/blog/2016/06/01/I2P-Summer-Dev.rst:98 +#: i2p2www/blog/2016/07/02/Summer-Dev-roundup-APIs.rst:124 +#: i2p2www/blog/2017/06/01/Summer-Dev-2017-MOAR-Speed.rst:114 +msgid "" +"Take part in Summer Dev!\n" +"========================" +msgstr "" +"Berpartisipasi dalam Summer Dev!\n" +"======================== " + +#: i2p2www/blog/2016/06/01/I2P-Summer-Dev.rst:103 +#: i2p2www/blog/2016/07/02/Summer-Dev-roundup-APIs.rst:129 +msgid "" +"We have many more ideas for things we'd like to get done in these areas. " +"If\n" +"you're interested in hacking on privacy and anonymity software, designing" +" usable\n" +"websites or interfaces, or writing guides for users: come and chat with " +"us on\n" +"IRC or Twitter! We are always happy to \"see\" new \"faces\" in our " +"community, both\n" +"inside and outside I2P. We'll be sending I2P stickers out to all new\n" +"contributors taking part (or possibly other pending I2P goodies)!" +msgstr "" +"Kami memiliki lebih banyak gagasan untuk hal-hal yang ingin kami lakukan " +"di bidang ini. Jika Anda tertarik untuk meretas perangkat lunak privasi " +"dan anonimitas, merancang situs web atau antarmuka yang dapat digunakan, " +"atau menulis panduan untuk pengguna: datang dan mengobrol dengan kami di " +"IRC atau Twitter! Kami selalu senang \"melihat\" wajah baru \"di " +"komunitas kami, baik di dalam maupun di luar I2P. Kami akan mengirimkan " +"stiker I2P ke semua kontributor baru (atau mungkin barang I2P lainnya " +"yang tertunda)!" + +#: i2p2www/blog/2016/06/01/I2P-Summer-Dev.rst:112 +#: i2p2www/blog/2016/07/02/Summer-Dev-roundup-APIs.rst:138 +msgid "" +"Likewise, if you are an application developer who wants a hand with " +"integrating\n" +"I2P, or even just to chat about the concepts or details: get in touch! If" +" you\n" +"want to get involved in our July Apps month, contact `@GetI2P`_, `@i2p`_ " +"or\n" +"`@str4d`_ on Twitter. You can also find us in #i2p-dev on OFTC or " +"FreeNode." +msgstr "" +"Demikian juga, jika Anda seorang pengembang aplikasi yang menginginkan " +"bantuan dalam mengintegrasikan I2P, atau bahkan hanya untuk mengobrol " +"tentang konsep atau detailnya: hubungi kami! Jika Anda ingin terlibat " +"dalam bulan Juli Apps, hubungi `@GetI2P`_, '@i2p`_ atau `@str4d`_ di " +"Twitter. Anda juga dapat menemukan kami di #i2p-dev di OFTC atau " +"FreeNode." + +#: i2p2www/blog/2016/06/01/I2P-Summer-Dev.rst:119 +#: i2p2www/blog/2016/07/02/Summer-Dev-roundup-APIs.rst:145 +#: i2p2www/blog/2017/06/01/Summer-Dev-2017-MOAR-Speed.rst:130 +msgid "" +"We'll be posting here as we go, but you can also follow our progress, and" +" share\n" +"your own ideas and work, with the hashtag `#I2PSummer`_ on Twitter. Bring" +" on the\n" +"summer!" +msgstr "" +"Kami akan posting di sini saat acara berlangsung, tapi Anda juga bisa " +"mengikuti kemajuan kami, dan berbagi ide dan pekerjaan Anda sendiri, " +"dengan hashtag `#I2PSummer`_ di Twitter. Bring on the\n" +"summer! " + +#: i2p2www/blog/2016/06/07/0.9.26-Release.rst:1 +msgid "" +"==============\n" +"0.9.26 Release\n" +"==============" +msgstr "" +"==============\n" +"Rilis 0.9.26\n" +"==============" + +#: i2p2www/blog/2016/06/07/0.9.26-Release.rst:10 +msgid "" +"0.9.26 contains crypto updates, Debian packaging improvements, and bug " +"fixes" +msgstr "" +"0.9.26 dirilis dengan pembaruan crypto, peningkatan kinerja untuk Debian," +" dan perbaikan bug" + +#: i2p2www/blog/2016/06/07/0.9.26-Release.rst:12 +msgid "" +"I2P is now a proposed site on Stack Exchange!\n" +"Please `commit to using it`_ so the beta phase can begin." +msgstr "" +"I2P sekarang diusulkan di Stack Exchange!\n" +"Silakan `komit untuk menggunakannya` agar fase beta bisa dimulai." + +#: i2p2www/blog/2016/06/07/0.9.26-Release.rst:17 +msgid "`commit to using it`" +msgstr "`komit untuk menggunakannya '" + +#: i2p2www/blog/2016/06/07/0.9.26-Release.rst:24 +msgid "" +"0.9.26 contains a major upgrade to our native crypto library,\n" +"a new addressbook subscription protocol with signatures,\n" +"and major improvements to the Debian/Ubuntu packaging." +msgstr "" +"0.9.26 berisi pembaruan besar ke crypto library asli kami, \n" +"protokol baru untuk addressbook subscription protocol with signatures, \n" +"dan peningkatan besar pada paket Debian/Ubuntu." + +#: i2p2www/blog/2016/06/07/0.9.26-Release.rst:30 +msgid "" +"For crypto, we have upgraded to GMP 6.0.0, and added support for newer " +"processors,\n" +"which will speed up crypto operations considerably.\n" +"Also, we are now using constant-time GMP functions to prevent side-" +"channel attacks.\n" +"For caution, the GMP changes are enabled for new installs and " +"Debian/Ubuntu builds only;\n" +"we will include them for in-net updates in the 0.9.27 release." +msgstr "" +"Untuk kripto, kami telah memperbarui ke GMP 6.0.0 dan menambahkan " +"dukungan untuk prosesor yang lebih baru, yang akan mempercepat operasi " +"crypto secara signifikan.\n" +"Selain itu, kami sekarang menggunakan GMP constant-time untuk mencegah " +"serangan side-channel.\n" +"Untuk kehatihatian, perubahan GMP diaktifkan hanya untuk pemasangan baru " +"di Debian/Ubuntu; Kami akan menyertakan mereka untuk pembaruan in-net " +"dalam rilis 0.9.27." + +#: i2p2www/blog/2016/06/07/0.9.26-Release.rst:38 +msgid "" +"For Debian/Ubuntu builds, we have added dependencies on several packages," +"\n" +"including Jetty 8 and geoip, and removed the equivalent bundled code." +msgstr "" +"Untuk versi Debian/Ubuntu, kami telah menambahkan dependensi pada " +"beberapa paket, termasuk Jetty 8 dan geoip, dan menghapus kode paket yang" +" setara." + +#: i2p2www/blog/2016/06/07/0.9.26-Release.rst:43 +msgid "" +"There's a collection of bug fixes also, including a fix for a timer bug\n" +"that caused instability and performance degradations over time." +msgstr "" +"Ada juga koleksi perbaikan bug, termasuk perbaikan bug timer yang " +"menyebabkan ketidakstabilan dan penurunan kinerja dari waktu ke waktu." + +#: i2p2www/blog/2016/06/07/0.9.26-Release.rst:58 +msgid "" +"GMP 6.0.0 and jbigi/jcpuid native libraries, enabling significant " +"speedups on newer architectures, and constant-time crypto operations " +"(new installs and Debian/Ubuntu builds only, will include in the updates " +"in the next release, 0.9.27)" +msgstr "" +"GMP 6.0.0 dan jbigi/jcpuid native library, yang memungkinkan percepatan " +"signifikan pada arsitektur yang lebih baru, dan operasi kripto konstan-" +"waktu (hanya untuk pemasangan baru dan Debian/Ubuntu, akan tercakup pada " +"rilis berikutnya, 0.9.27)" + +#: i2p2www/blog/2016/06/07/0.9.26-Release.rst:59 +msgid "Addressbook subscription protocol, enabling signed addressbook updates" +msgstr "" +"Protokol subskripsi buku alamat, memungkinkan update buku alamat yang " +"ditandatangani" + +#: i2p2www/blog/2016/06/07/0.9.26-Release.rst:60 +msgid "Generate signed authentication strings for subscriptions in i2ptunnel" +msgstr "" +"Pembuatan string otentikasi yang ditandatangani untuk subskripsi di " +"i2ptunnel" + +#: i2p2www/blog/2016/06/07/0.9.26-Release.rst:61 +msgid "" +"Enhance hosts blockfile format to allow for multiple destinations per " +"entry" +msgstr "" +"Meningkatkan format blockfile host untuk memungkinkan beberapa destinasi " +"per entri" + +#: i2p2www/blog/2016/06/07/0.9.26-Release.rst:62 +msgid "Use system GeoIP database when available" +msgstr "Penggunaan sistem database GeoIP bila tersedia" + +#: i2p2www/blog/2016/06/07/0.9.26-Release.rst:63 +msgid "" +"Remove systray4j.jar from non-Windows installers and Debian/Ubuntu " +"packages" +msgstr "" +"Menghapus systray4j.jar dari installer non-Windows dan paket Debian / " +"Ubuntu" + +#: i2p2www/blog/2016/06/07/0.9.26-Release.rst:64 +msgid "" +"Remove multiple external libraries from Debian/Ubuntu builds, and add " +"dependencies on: geoip-database, gettext-base, libgetopt-java, " +"libjetty8-java, libservlet3.0-java, glassfish-javaee" +msgstr "" +"Menghapus beberapa library eksternal dari Debian / Ubuntu, dan " +"menambahkan dependensi pada: geoip-database, gettext-base, libgetopt-" +"java, libjetty8-java, libservlet3.0-java, glassfish-javaee" + +#: i2p2www/blog/2016/06/07/0.9.26-Release.rst:65 +msgid "" +"Store CRLs received in the news feed, to distribute key revocations when " +"necessary" +msgstr "" +"menyimpan CRLs yang diterima di news feed, untuk mendistribusikan " +"pencabutan kunci saat diperlukan" + +#: i2p2www/blog/2016/06/07/0.9.26-Release.rst:66 +msgid "" +"Enhancements to the desktopgui system tray feature, to be enabled by " +"default in next release" +msgstr "" +"Penambahan pada fitur systray desktopgui, diaktifkan secara default di " +"rilis berikutnya" + +#: i2p2www/blog/2016/06/07/0.9.26-Release.rst:67 +msgid "Wrapper 3.5.29 (new non-Windows installs only)" +msgstr "Wrapper 3.5.29 (hanya pemasangan baru di non-Windows)" + +#: i2p2www/blog/2016/06/07/0.9.26-Release.rst:73 +msgid "" +"Fix periodic timers not firing after a backwards OS clock shift, which " +"caused widespread instability and gradual deterioration" +msgstr "" +"Perbaiki timer periodik yang tidak aktif setelah pergeseran jam OS " +"mundur, yang menyebabkan ketidakstabilan dan penurunan bertahap secara " +"meluas" + +#: i2p2www/blog/2016/06/07/0.9.26-Release.rst:74 +msgid "" +"Fix wrapper on FreeBSD 10 (new installs only, see ticket #1118 for manual" +" fix)" +msgstr "" +"Perbaikan wrapper di FreeBSD 10 (pemasangan baru saja, lihat tiket # 1118" +" untuk perbaikan manual)" + +#: i2p2www/blog/2016/06/07/0.9.26-Release.rst:75 +msgid "Fix NPE on hostname lookup failure in SOCKS 4a" +msgstr "Perbaikan NPE pada kegagalan lookup hostname di SOCKS 4a" + +#: i2p2www/blog/2016/06/07/0.9.26-Release.rst:76 +msgid "" +"Fix setting JAVA_HOME on Mac OS X (new installs only, see ticket #1783 " +"for manual fix)" +msgstr "" +"Perbaikan pengaturan JAVA_HOME di Mac OS X (hanya pemasangan baru, lihat " +"tiket #1783 untuk perbaikan manual)" + +#: i2p2www/blog/2016/06/07/0.9.26-Release.rst:77 +msgid "Fix UTF-8 console passwords, and partial fix for usernames" +msgstr "Perbaikan password console UTF-8, dan perbaikan parsial untuk username" + +#: i2p2www/blog/2016/06/07/0.9.26-Release.rst:78 +msgid "Fix router family configuration form" +msgstr "Perbaikan formulir konfigurasi router family" + +#: i2p2www/blog/2016/06/07/0.9.26-Release.rst:79 +msgid "Fix NTP sending random data in some fields that should be zero" +msgstr "" +"Perbaikan terhadap NTP mengirimkan data acak di beberapa formulir yang " +"seharusnya berisi angka nol" + +#: i2p2www/blog/2016/06/07/0.9.26-Release.rst:85 +msgid "More verification of received NTP packets" +msgstr "Lebih banyak verifikasi paket NTP yang diterima" + +#: i2p2www/blog/2016/06/07/0.9.26-Release.rst:86 +msgid "" +"Rework resource bundle generation for 20x speedup in build time (requires" +" gettext version 0.19)" +msgstr "" +"Pengubahan pembuatan bundle sumber daya untuk peningkatan kecepatan 20x " +"di waktu pembangunan (memerlukan gettext versi 0,19)" + +#: i2p2www/blog/2016/06/13/I2P-on-Maven-Central.rst:1 +msgid "" +"====================\n" +"I2P on Maven Central\n" +"====================" +msgstr "" +"====================\n" +"I2P di Maven Central\n" +"====================" + +#: i2p2www/blog/2016/06/13/I2P-on-Maven-Central.rst:10 +msgid "The I2P client libraries are now available on Maven Central!" +msgstr "Library klien I2P sekarang tersedia di Maven Central!" + +#: i2p2www/blog/2016/06/13/I2P-on-Maven-Central.rst:12 +msgid "" +"We're nearly half-way into the APIs month of Summer Dev, and making great" +"\n" +"progress on a number of fronts. I'm happy to announce that the first of " +"these is\n" +"complete: the I2P client libraries are now available on Maven Central!" +msgstr "" +"Kami hampir setengah jalan memasuki bulan API Summer Dev, dan membuat " +"kemajuan besar di sejumlah bidang. Dengan senang hati saya umumkan bahwa " +"yang pertama sudah selesai: library klien I2P sekarang tersedia di Maven " +"Central!" + +#: i2p2www/blog/2016/06/13/I2P-on-Maven-Central.rst:18 +#: i2p2www/blog/2016/07/02/Summer-Dev-roundup-APIs.rst:47 +msgid "" +"This should make it much simpler for Java developers to use I2P in their\n" +"applications. Instead of needing to obtain the libraries from a current " +"install,\n" +"they can simply add I2P to their dependencies. Upgrading to new versions " +"will\n" +"similarly be much easier." +msgstr "" +"Hal ini seharusnya mempermudah pengembang Java untuk menggunakan I2P " +"dalam aplikasi mereka. Alih-alih perlu mendapatkan library dari " +"pemasangan saat ini, mereka dapat menambahkan I2P ke dependensinya. " +"Upgrade ke versi baru juga akan jauh lebih mudah." + +#: i2p2www/blog/2016/06/13/I2P-on-Maven-Central.rst:26 +msgid "" +"How to use them\n" +"===============" +msgstr "" +"Cara menggunakannya\n" +"===============" + +#: i2p2www/blog/2016/06/13/I2P-on-Maven-Central.rst:31 +msgid "There are two libraries that you need to know about:" +msgstr "Ada dua library yang perlu Anda ketahui:" + +#: i2p2www/blog/2016/06/13/I2P-on-Maven-Central.rst:35 +msgid "The core I2P APIs; you can use these to send individual datagrams." +msgstr "" +"API inti I2P; Anda dapat menggunakan ini untuk mengirim masing-masing " +"datagrams." + +#: i2p2www/blog/2016/06/13/I2P-on-Maven-Central.rst:36 +msgid "A TCP-like set of sockets for communicating over I2P." +msgstr "Soket-soket mirip TCP untuk berkomunikasi dengan I2P." + +#: i2p2www/blog/2016/06/13/I2P-on-Maven-Central.rst:38 +msgid "" +"Add one or both of these to your project's dependencies, and you're good " +"to go!" +msgstr "" +"Tambahkan satu atau kedua hal ini ke dependensi proyek Anda, dan Anda " +"dapat memulai pengembangan!" + +#: i2p2www/blog/2016/06/13/I2P-on-Maven-Central.rst:66 +msgid "" +"For other build systems, see the Maven Central pages for the `core`_ and\n" +"`streaming`_ libraries." +msgstr "" +"Untuk sistem build lainnya, lihat halaman Maven Central untuk library " +"`core`_ dan` streaming`_." + +#: i2p2www/blog/2016/06/13/I2P-on-Maven-Central.rst:71 +msgid "" +"Android developers should use the `I2P Android client library`_, which " +"contains\n" +"the same libraries along with Android-specific helpers. I'll be updating " +"it soon\n" +"to depend on the new I2P libraries, so that cross-platform applications " +"can work\n" +"natively with either I2P Android or desktop I2P." +msgstr "" +"Pengembang Android harus menggunakan library klien Android 'library klien" +" Android I2P`_, yang berisi library yang sama, bersamaan dengan pembantu " +"spesifik Android. Saya akan segera memperbaruinya untuk bergantung pada " +"library I2P yang baru, sehingga aplikasi cross-platform dapat bekerja " +"secara native dengan I2P Android atau desktop I2P." + +#: i2p2www/blog/2016/06/13/I2P-on-Maven-Central.rst:80 +#: i2p2www/blog/2016/07/02/Summer-Dev-roundup-APIs.rst:62 +msgid "`I2P Android client library`" +msgstr "'library klien Android I2P`" + +#: i2p2www/blog/2016/06/13/I2P-on-Maven-Central.rst:83 +msgid "" +"Get hacking!\n" +"============" +msgstr "" +"Lakukan hacking!\n" +"============ " + +#: i2p2www/blog/2016/06/13/I2P-on-Maven-Central.rst:88 +msgid "" +"See our `application development`_ guide for help getting started with " +"these\n" +"libraries. You can also chat with us about them in #i2p-dev on IRC. And " +"if you\n" +"do start using them, let us know what you're working on with the hashtag\n" +"`#I2PSummer`_ on Twitter!" +msgstr "" +"Lihat panduan `pengembangan aplikasi` untuk membantu memulai dengan " +"menggunakan library ini. Anda juga dapat chatting dengan kami di #i2p-dev" +" di IRC. Dan jika Anda mulai menggunakannya, beri tahu kami apa yang Anda" +" kerjakan dengan hashtag '#I2PSummer' _ di Twitter!" + +#: i2p2www/blog/2016/06/13/I2P-on-Maven-Central.rst:95 +msgid "application development" +msgstr "pengembangan aplikasi" + +#: i2p2www/blog/2016/07/02/Summer-Dev-roundup-APIs.rst:1 +msgid "" +"========================\n" +"Summer Dev roundup: APIs\n" +"========================" +msgstr "" +"========================\n" +"Rangkuman Summer Dev: APIs\n" +"========================" + +#: i2p2www/blog/2016/07/02/Summer-Dev-roundup-APIs.rst:10 +msgid "" +"In the first month of Summer Dev, we have improved the usability of our " +"APIs for Java, Android, and Python developers." +msgstr "" +"Pada bulan pertama Summer Dev, kami telah meningkatkan kegunaan API kami " +"untuk pengembang Java, Android, dan Python." + +#: i2p2www/blog/2016/07/02/Summer-Dev-roundup-APIs.rst:12 +msgid "" +"Summer Dev is in full swing: we've been busy greasing wheels, sanding " +"edges, and\n" +"tidying the place up. Now it's time for our first roundup, where we bring" +" you up\n" +"to speed on the progress we are making!" +msgstr "" +"Summer Dev sedang dalam kegiatan penuh: kami telah sibuk meminyaki roda, " +"pengamplasan tepian, dan merapikan tempatnya. Sekarang saatnya untuk " +"putaran pertama kami, di mana kami membawa Anda ke kecepatan pada " +"kemajuan yang sedang kami buat!" + +#: i2p2www/blog/2016/07/02/Summer-Dev-roundup-APIs.rst:18 +msgid "" +"\n" +"But first, a big thank you to `Elio Qoshi`_ and `ura`_ for designing us " +"the\n" +"fantastic logo you see above. It adds a cheerful personality to our " +"development\n" +"program (and is going to look great on t-shirts)." +msgstr "" +"\n" +"Tapi pertama-tama, terima kasih yang sebesar-besarnya kepada 'Elio " +"Qoshi`_ dan `ura`_ yang mendesain logo fantastis yang Anda lihat di atas." +" Ini menambah kepribadian yang ceria terhadap program pengembangan kita " +"(dan akan terlihat hebat dalam kaos)." + +#: i2p2www/blog/2016/07/02/Summer-Dev-roundup-APIs.rst:27 +msgid "" +"APIs month\n" +"==========" +msgstr "" +"APIs month\n" +"========== " + +#: i2p2www/blog/2016/07/02/Summer-Dev-roundup-APIs.rst:32 +msgid "" +"Our goal for this month was to \"blend in\" - to make our APIs and " +"libraries work\n" +"within the existing infrastructure of various communities, so that " +"application\n" +"developers can work with I2P more efficiently, and users don't need to " +"worry\n" +"about the details." +msgstr "" +"Tujuan kami untuk bulan ini adalah untuk \"berbaur\" - untuk membuat API " +"dan library kami bekerja dalam infrastruktur yang ada dari berbagai " +"komunitas, sehingga pengembang aplikasi dapat bekerja dengan I2P lebih " +"efisien, dan pengguna tidak tahu detailnya." + +#: i2p2www/blog/2016/07/02/Summer-Dev-roundup-APIs.rst:42 +msgid "" +"The I2P client libraries are now available on `Maven Central`_! See our\n" +"`previous blog post`_ for full details.\n" +msgstr "" +"Library klien I2P sekarang tersedia di 'Maven Central'_ ! Lihat 'posting " +"blog kami sebelumnya`_ untuk rincian lengkap.\n" + +#: i2p2www/blog/2016/07/02/Summer-Dev-roundup-APIs.rst:54 +msgid "" +"The `I2P Android client library`_ has also been updated to use the new " +"I2P\n" +"libraries. This means that cross-platform applications can work natively " +"with\n" +"either I2P Android or desktop I2P." +msgstr "" +"'Library klien Android I2P`_ juga telah diperbarui untuk menggunakan " +"library I2P yang baru. Ini berarti aplikasi cross-platform dapat bekerja " +"secara native dengan I2P Android atau desktop I2P." + +#: i2p2www/blog/2016/07/02/Summer-Dev-roundup-APIs.rst:61 +msgid "`previous blog post`" +msgstr "`posting blog sebelumnya`" + +#: i2p2www/blog/2016/07/02/Summer-Dev-roundup-APIs.rst:69 +msgid "" +"The `Twisted`_ plugin ``txi2p`` now supports in-I2P ports, and will work\n" +"seamlessly over local, remote, and port-forwarded `SAM APIs`_. See its\n" +"`documentation`_ for usage instructions, and report any issues on " +"`GitHub`_." +msgstr "" +"`Twisted`_ plugin` `txi2p`` sekarang mendukung I2P di dalam port, dan " +"akan bekerja dengan lancar dari API SAM yang ada di lokal, remote, dan " +"port forwarded`. Lihat `dokumentasi'_ untuk petunjuk penggunaan, dan " +"laporkan masalah apapun pada` GitHub`_." + +#: i2p2www/blog/2016/07/02/Summer-Dev-roundup-APIs.rst:77 +msgid "" +"The first (beta) version of ``i2psocket`` has been released! This is a " +"direct\n" +"replacement for the standard Python ``socket`` library that extends it " +"with I2P\n" +"support over the `SAM API`_. See its `GitHub page`_ for usage " +"instructions, and\n" +"to report any issues." +msgstr "" +"Versi pertama dari ``i2psocket`` telah dirilis! Ini adalah penggantian " +"langsung untuk soket ``soket``Python standar yang memperluasnya dengan " +"dukungan I2P atas` SAM API`_. Lihat `halaman GitHub`_ untuk petunjuk " +"penggunaan, dan laporkan masalah apa pun." + +#: i2p2www/blog/2016/07/02/Summer-Dev-roundup-APIs.rst:87 +msgid "`documentation`" +msgstr "`documentasi`" + +#: i2p2www/blog/2016/07/02/Summer-Dev-roundup-APIs.rst:89 +msgid "`GitHub page`" +msgstr "`halaman GitHub`" + +#: i2p2www/blog/2016/07/02/Summer-Dev-roundup-APIs.rst:91 +msgid "" +"Other progress\n" +"--------------" +msgstr "" +"Kemajuan lainnya\n" +"--------------" + +#: i2p2www/blog/2016/07/02/Summer-Dev-roundup-APIs.rst:96 +msgid "" +"zzz has been hard at work on Syndie, getting a headstart on Plugins " +"month. You can follow his progress on `the development forum thread`_." +msgstr "" +"zzz telah bekerja keras di Syndie, mendapatkan headstart pada bulan " +"Plugins. Anda bisa mengikuti perkembangannya di `thread forum " +"pengembangan`_." + +#: i2p2www/blog/2016/07/02/Summer-Dev-roundup-APIs.rst:98 +msgid "" +"psi has been creating an I2P test network using i2pd, and in the process " +"has found and fixed several i2pd bugs that will improve its compatibility" +" with Java I2P." +msgstr "" +"psi telah membuat jaringan uji coba I2P menggunakan i2pd, dan dalam " +"prosesnya telah menemukan dan memperbaiki beberapa bug i2pd yang akan " +"meningkatkan kompatibilitasnya dengan Java I2P." + +#: i2p2www/blog/2016/07/02/Summer-Dev-roundup-APIs.rst:100 +msgid "`the development forum thread`" +msgstr "`thread forum pengembangan`" + +#: i2p2www/blog/2016/07/02/Summer-Dev-roundup-APIs.rst:102 +msgid "" +"Coming up: Apps month!\n" +"======================" +msgstr "" +"Berikutnya: bukan Aplikasi!\n" +"=======================" + +#: i2p2www/blog/2016/07/02/Summer-Dev-roundup-APIs.rst:107 +msgid "" +"We are excited to be working with `Tahoe-LAFS`_ in July! I2P has for a " +"long time\n" +"been home to one of the `largest public grids`_, using a patched version " +"of\n" +"Tahoe-LAFS. During Apps month we will be helping them with their ongoing " +"work to\n" +"add native support for I2P and Tor, so that I2P users can benefit from " +"all of\n" +"the improvements upstream." +msgstr "" +"Kami sangat senang bisa bekerja sama dengan `Tahoe-LAFS`_ di bulan Juli! " +"I2P telah lama berada di salah satu `grid umum terbesar`, menggunakan " +"versi patch dari Tahoe-LAFS. Selama bulan Aplikasi, kami akan membantu " +"mereka melanjutkan pekerjaan mereka untuk menambahkan dukungan native " +"untuk I2P dan Tor, sehingga pengguna I2P dapat memperoleh keuntungan dari" +" semua perbaikan di hulu." + +#: i2p2www/blog/2016/07/02/Summer-Dev-roundup-APIs.rst:115 +msgid "" +"There are several other projects that we will be talking with about their" +" plans\n" +"for I2P integration, and helping with design. Stay tuned!" +msgstr "" +"Ada beberapa proyek lain yang akan dibicarakan dengan rencana integrasi " +"I2P mereka, dan membantu desain. Tetap disini!" + +#: i2p2www/blog/2016/07/02/Summer-Dev-roundup-APIs.rst:121 +msgid "`largest public grids`" +msgstr "`grid umum terbesar`" + +#: i2p2www/blog/2016/10/17/0.9.27-Release.rst:1 +msgid "" +"==============\n" +"0.9.27 Release\n" +"==============" +msgstr "" +"==============\n" +"Rilis 0.9.27\n" +"==============" + +#: i2p2www/blog/2016/10/17/0.9.27-Release.rst:10 +msgid "0.9.27 contains bug fixes" +msgstr "0.9.27 memiliki perbaikan bug" + +#: i2p2www/blog/2016/10/17/0.9.27-Release.rst:17 +msgid "" +"0.9.27 contains a number of bug fixes.\n" +"The updated GMP library for crypto acceleration, which was bundled in the" +" 0.9.26 release for new installs and Debian builds only, is now included " +"in the in-network update for 0.9.27.\n" +"There are improvements in IPv6 transports, SSU peer testing, and hidden " +"mode." +msgstr "" +"0.9.27 memiliki beberapa perbaikan bug.\n" +"Library GMP yang diperbarui untuk percepatan crypto, yang dibundel dalam " +"rilis 0.9.26 untuk pemasangan baru dan versi Debian saja, sekarang " +"dimasukkan ke pembaruan jaringan untuk 0.9.27.\n" +"Ada peningkatan dalam IPv6 transport, pengujian peer SSU, dan hidden mode." + +#: i2p2www/blog/2016/10/17/0.9.27-Release.rst:23 +msgid "" +"We updated a number of plugins during I2P Summer and your router will " +"automatically update them after restart." +msgstr "" +"Kami memperbarui sejumlah plugin selama I2P Summer dan router Anda akan " +"memperbaruinya secara otomatis setelah restart." + +#: i2p2www/blog/2016/10/17/0.9.27-Release.rst:37 +msgid "GMP 6 (in-net updates)" +msgstr "GMP 6 (pembaruan di dalam jaringan)" + +#: i2p2www/blog/2016/10/17/0.9.27-Release.rst:38 +msgid "SSU Peer Testing for IPv6" +msgstr "SSU Peer Testing untuk IPv6" + +#: i2p2www/blog/2016/10/17/0.9.27-Release.rst:39 +msgid "Add outproxy plugin support for SOCKS" +msgstr "Tambahan plugin plugin untuk SOCKS" + +#: i2p2www/blog/2016/10/17/0.9.27-Release.rst:40 +msgid "Enable desktop GUI (tray icon) on Windows" +msgstr "Mengaktifkan desktop GUI (ikon tray) di Windows" + +#: i2p2www/blog/2016/10/17/0.9.27-Release.rst:45 +msgid "Fix reported GMP version when jbigi built as a shared library" +msgstr "" +"Perbaikan versi GMP yang dilaporkan saat jbigi dibangun sebagai shared " +"library" + +#: i2p2www/blog/2016/10/17/0.9.27-Release.rst:46 +msgid "Fix SSU peer test happening too frequently" +msgstr "Perbaiki mengujian peer SSU terlalu sering terjadi" + +#: i2p2www/blog/2016/10/17/0.9.27-Release.rst:47 +msgid "Fix SSU peer test not terminating properly in some cases" +msgstr "" +"Perbaikan pengujian peer SSU tidak dihentikan dengan benar dalam beberapa" +" kasus" + +#: i2p2www/blog/2016/10/17/0.9.27-Release.rst:48 +msgid "Fix bote plugin not working in Debian/Ubuntu builds" +msgstr "Perbaikan plugin bote yang tidak berfungsi di Debian / Ubuntu" + +#: i2p2www/blog/2016/10/17/0.9.27-Release.rst:49 +msgid "Fix rare UPnP NPE when viewing /peers" +msgstr "Perbaikan NPN UPnP langka saat viewing/peer" + +#: i2p2www/blog/2016/10/17/0.9.27-Release.rst:50 +msgid "Fix standalone i2psnark build and configuration" +msgstr "Perbaikan standalone i2psnark build and configuration" + +#: i2p2www/blog/2016/10/17/0.9.27-Release.rst:51 +msgid "Hidden mode improvements: Enable tunnel testing and use fast peers" +msgstr "" +"Perbaikan hidden mode: mengaktifkan pengujian tunnel dan gunakan fast " +"peers" + +#: i2p2www/blog/2016/10/17/0.9.27-Release.rst:52 +msgid "Fix possible CSRF in SusiMail" +msgstr "Perbaikan CSRF yang mungkin terjadi di SusiMail" + +#: i2p2www/blog/2016/10/17/0.9.27-Release.rst:53 +msgid "Fix i2psnark exception on bad configured announce URL" +msgstr "" +"Perbaiki i2psnark exception pada announce URL yang dikonfigurasi dengan " +"buruk" + +#: i2p2www/blog/2016/10/17/0.9.27-Release.rst:54 +msgid "Fix layout issues on i2ptunnel registration page" +msgstr "Perbaikan masalah tata letak di halaman pendaftaran i2ptunnel" + +#: i2p2www/blog/2016/10/17/0.9.27-Release.rst:55 +msgid "Fix streaming accept() hang when session disconnects" +msgstr "Perbaikan streaming accept() yang menjadi hang saat session terputus" + +#: i2p2www/blog/2016/10/17/0.9.27-Release.rst:60 +msgid "Split up the large /configclients web page into several" +msgstr "Pisahkan halaman web besar /configclients menjadi beberapa" + +#: i2p2www/blog/2016/10/17/0.9.27-Release.rst:61 +msgid "Add links to view complete router and wrapper log files" +msgstr "menambahkan link untuk melihat file log router dan wrapper yang lengkap" + +#: i2p2www/blog/2016/10/17/0.9.27-Release.rst:62 +msgid "Block 'Proxy' header in i2ptunnel (HTTPoxy)" +msgstr "Blokir 'Proxy' di i2ptunnel (HTTPoxy)" + +#: i2p2www/blog/2016/10/17/0.9.27-Release.rst:63 +msgid "Recognize Kaby Lake CPUIDs" +msgstr "Mengenali CPUID milik prosesor Kaby Lake" + +#: i2p2www/blog/2016/12/12/0.9.28-Release.rst:1 +msgid "" +"==============\n" +"0.9.28 Release\n" +"==============" +msgstr "" +"==============\n" +"Rilis 0.9.28\n" +"==============" + +#: i2p2www/blog/2016/12/12/0.9.28-Release.rst:10 +msgid "0.9.28 contains bug fixes" +msgstr "0.9.28 memiliki perbaikan bug" + +#: i2p2www/blog/2016/12/12/0.9.28-Release.rst:17 +msgid "" +"0.9.28 contains fixes for over 25 Trac tickets, and updates for a number " +"of bundled software packages including Jetty.\n" +"There are fixes for the IPv6 peer testing feature introduced last " +"release.\n" +"We continue improvements to detect and block peers that are potentially " +"malicious.\n" +"There are preliminary fixes for Java 9, although we do not yet recommend " +"Java 9 for general use." +msgstr "" +"0.9.28 berisi perbaikan untuk lebih dari 25 tiket Trac, dan update untuk " +"sejumlah paket perangkat lunak paket termasuk Jetty.\n" +"Ada perbaikan untuk fitur IPv6 peer testing yang diperkenalkan rilis " +"terakhir.\n" +"Kami melanjutkan perbaikan untuk mendeteksi dan memblokir peer yang " +"berpotensi merusak.\n" +"Ada perbaikan awal untuk Java 9, walaupun kami belum merekomendasikan " +"Java 9 untuk penggunaan umum." + +#: i2p2www/blog/2016/12/12/0.9.28-Release.rst:24 +msgid "" +"I2P will be at 33C3, please stop by our table and give us your ideas on " +"how to improve the network.\n" +"We will review our 2017 roadmap and priorities 2017 at the Congress." +msgstr "" +"I2P akan berada di 33C3, silakan mampir ke meja kami dan beri kami ide " +"untuk memperbaiki jaringan I2P.\n" +"Kami akan meninjau roadmap prioritas 2017 kami di Congress." + +#: i2p2www/blog/2016/12/12/0.9.28-Release.rst:49 +msgid "Fix version test for SSU IPv6 peer testing" +msgstr "Perbaikan SSU Peer Testing untuk IPv6" + +#: i2p2www/blog/2016/12/12/0.9.28-Release.rst:50 +msgid "Fix generation of keys for SSL console" +msgstr "Perbaiki pembuatan kunci untuk SSL console" + +#: i2p2www/blog/2016/12/12/0.9.28-Release.rst:51 +msgid "Fix uploader limit in i2psnark" +msgstr "Perbaikan batas uploader di i2psnark" + +#: i2p2www/blog/2016/12/12/0.9.28-Release.rst:52 +msgid "Fix susimail nonce error on login after logout" +msgstr "Perbaikan kesalahan susimail nonce saat login setelah logout" + +#: i2p2www/blog/2016/12/12/0.9.28-Release.rst:53 +msgid "Fixes for Java 9" +msgstr "Perbaikan untuk Java 9" + +#: i2p2www/blog/2016/12/12/0.9.28-Release.rst:59 +msgid "Allow Java 9 in packages" +msgstr "Mengizinkan Java 9 di dalam paket" + +#: i2p2www/blog/2016/12/12/0.9.28-Release.rst:60 +msgid "Add warning for Java 9, not yet recommended" +msgstr "Tambahan peringatan untuk Java 9, belum disarankan" + +#: i2p2www/blog/2016/12/12/0.9.28-Release.rst:61 +msgid "Preliminary fixes for use with Tomcat 8" +msgstr "Perbaikan awal untuk penggunaan dengan Tomcat 8" + +#: i2p2www/blog/2016/12/12/0.9.28-Release.rst:62 +msgid "Improved self-signed certificates" +msgstr "Peningkatan sertifikat self-signed" + +#: i2p2www/blog/2016/12/12/0.9.28-Release.rst:63 +msgid "Increase max IPv6 MTU (proposal #127)" +msgstr "Peningkatan maksimum IPv6 MTU (proposal #127)" + +#: i2p2www/blog/2016/12/12/0.9.28-Release.rst:64 +msgid "Caching of serialized leasesets" +msgstr "Caching leasesets serial" + +#: i2p2www/blog/2016/12/12/0.9.28-Release.rst:65 +msgid "Peer selection updates" +msgstr "Pembaruan pilihan peer" + +#: i2p2www/blog/2016/12/12/0.9.28-Release.rst:66 +msgid "Restrictions in peer selection for netdb verifies" +msgstr "Pembatasan seleksi peer untuk verifikasi netdb" + +#: i2p2www/blog/2016/12/12/0.9.28-Release.rst:67 +msgid "New advanced netdb search form" +msgstr "Formulir baru untuk pencarian netdb tingkat lanjut" + +#: i2p2www/blog/2016/12/12/0.9.28-Release.rst:68 +msgid "Sybil tool enhancements" +msgstr "Peningkatan perangkat Sybil" + +#: i2p2www/blog/2016/12/12/0.9.28-Release.rst:69 +msgid "Blocklist updates in news feed" +msgstr "Pembaruan blocklis di news feed" + +#: i2p2www/blog/2016/12/12/0.9.28-Release.rst:70 +msgid "Support IPv6 in blocklist" +msgstr "Dukungan IPv6 di blocklist" + +#: i2p2www/blog/2016/12/12/0.9.28-Release.rst:71 +msgid "Add Java version to jar manifests" +msgstr "Tambahan versi Java ke jar manifest" + +#: i2p2www/blog/2016/12/12/0.9.28-Release.rst:72 +msgid "Remove dead console home page links" +msgstr "Menghapus tautan yang tidak valid di console home page" + +#: i2p2www/blog/2016/12/12/0.9.28-Release.rst:73 +msgid "Add initial news to bottom of full news page" +msgstr "Tambahan berita awal ke bagian bawah halaman berita lengkap" + +#: i2p2www/blog/2016/12/12/0.9.28-Release.rst:74 +msgid "Fix periodic re-logging of dup log messages" +msgstr "Perbaikan pembuatan log dari pesan dup log yang terjadi secara berkala" + +#: i2p2www/blog/2016/12/12/0.9.28-Release.rst:75 +msgid "Periodic saving of profiles and i2psnark DHT nodes" +msgstr "Penyimpanan profil yang node i2psnark DHT yang terjadi rutin " + +#: i2p2www/blog/2016/12/12/0.9.28-Release.rst:76 +msgid "Catch rare UPnP exceptions" +msgstr "Menangkap UPnP exception langka" + +#: i2p2www/blog/2016/12/12/0.9.28-Release.rst:77 +msgid "Add logout button to more susimail pages" +msgstr "Tambahkan yang lebih banyak untuk tombol logout di halaman susimail" + +#: i2p2www/blog/2016/12/12/0.9.28-Release.rst:78 +msgid "Truncate history.txt in installers" +msgstr "Pemotongan history.txt di installer" + +#: i2p2www/blog/2016/12/12/0.9.28-Release.rst:79 +msgid "Use NTCP even before SSU minimums are met or SSU is broken" +msgstr "Penggunaan NTCP bahkan sebelum minimum SSU terpenuhi atau jika SSU rusak" + +#: i2p2www/blog/2016/12/12/0.9.28-Release.rst:80 +msgid "Reduce default tunnel build records to 4" +msgstr "mengurangi tunnel default build record menjadi 4" + +#: i2p2www/blog/2016/12/12/0.9.28-Release.rst:81 +msgid "Improved IPv6 address selection" +msgstr "Peningkatan pilihan alamat IPv6" + +#: i2p2www/blog/2016/12/12/0.9.28-Release.rst:82 +msgid "Add force-firewalled IPv6 setting" +msgstr "Tambahan pengaturan IPv6 dengan kekuatan firewall" + +#: i2p2www/blog/2016/12/12/0.9.28-Release.rst:83 +msgid "Improved handling of webapps that fail to start" +msgstr "Meningkatkan penanganan webapps yang gagal untuk memulai" + +#: i2p2www/blog/2016/12/12/0.9.28-Release.rst:84 +msgid "New configuration for test networks" +msgstr "Konfigurasi untuk jaringan tes" + +#: i2p2www/blog/2016/12/12/0.9.28-Release.rst:85 +msgid "Remove deprecated Sha256Standalone, Syndie 1.105 must upgrade" +msgstr "Menghapus Sha256Standalone usang, Syndie 1.105 harus diperbarui" + +#: i2p2www/blog/2016/12/12/0.9.28-Release.rst:86 +msgid "Actually use a random nonzero byte in ElGamal, as specified" +msgstr "" +"Benar-benar menggunakan satu byte bukan nol acak di ElGamal, sebagaimana " +"ditentukan" + +#: i2p2www/blog/2016/12/12/0.9.28-Release.rst:87 +msgid "Disallow RSA for netdb entries" +msgstr "Melarang RSA untuk entri netdb" + +#: i2p2www/blog/2016/12/12/0.9.28-Release.rst:88 +msgid "Add library jars to jar classpath for Debian builds" +msgstr "Menambahkan library jar untuk jar classpath untuk Debian" + +#: i2p2www/blog/2016/12/12/0.9.28-Release.rst:89 +msgid "Remove old systray code" +msgstr "Menghapus kode systray lama" + +#: i2p2www/blog/2016/12/12/0.9.28-Release.rst:90 +msgid "Fix low-memory warnings without wrapper" +msgstr "Perbaikan peringatan memori rendah tanpa wrapper" + +#: i2p2www/blog/2016/12/12/0.9.28-Release.rst:91 +msgid "Various code consolidation and cleanup" +msgstr "Berbagai konsolidasi kode dan pembersihan" + +#: i2p2www/blog/2016/12/12/0.9.28-Release.rst:92 +msgid "New translations: Galician, Korean" +msgstr "Terjemahan baru: Galisia, Korea" + +#: i2p2www/blog/2016/12/12/0.9.28-Release.rst:93 +msgid "New translations for some subsytems: Chinese (Taiwan)" +msgstr "Terjemahan baru untuk beberapa subsytems: Mandarin (Taiwan)" + +#: i2p2www/blog/2017/02/27/0.9.29-Release.rst:1 +msgid "" +"==============\n" +"0.9.29 Release\n" +"==============" +msgstr "" +"==============\n" +"Rilis 0.9.29\n" +"==============" + +#: i2p2www/blog/2017/02/27/0.9.29-Release.rst:10 +msgid "0.9.29 contains bug fixes" +msgstr "0.9.29 memiliki perbaikan bug" + +#: i2p2www/blog/2017/02/27/0.9.29-Release.rst:17 +msgid "" +"0.9.29 contains fixes for numerous Trac tickets, including workarounds " +"for corrupt compressed messages.\n" +"We now support NTP over IPv6.\n" +"We've added preliminary Docker support.\n" +"We now have translated man pages.\n" +"We now pass same-origin Referer headers through the HTTP proxy.\n" +"There are more fixes for Java 9, although we do not yet recommend Java 9 " +"for general use." +msgstr "" +"0.9.29 berisi perbaikan untuk berbagai tiket Trac, termasuk workarounds " +"untuk pesan terkompresi yang korup.\n" +"Kami sekarang mendukung NTP melalui IPv6.\n" +"Kami telah menambahkan dukungan awal Docker.\n" +"Kami sekarang telah menerjemahkan halaman manual.\n" +"Kami sekarang melewatkan same-origin Referer headers melalui proxy HTTP.\n" +"Ada lebih banyak perbaikan untuk Java 9, walaupun kami belum " +"merekomendasikan Java 9 untuk penggunaan umum." + +#: i2p2www/blog/2017/02/27/0.9.29-Release.rst:36 +msgid "BOB database refactor" +msgstr "BOB database refactor " + +#: i2p2www/blog/2017/02/27/0.9.29-Release.rst:37 +msgid "Fixes for Java 9, still not recommended for general use" +msgstr "Perbaikan untuk Java 9, masih tidak direkomendasikan untuk penggunaan umum" + +#: i2p2www/blog/2017/02/27/0.9.29-Release.rst:38 +msgid "NTP fixes for security and standards" +msgstr "perbaikan NTP untuk keamanan dan standar" + +#: i2p2www/blog/2017/02/27/0.9.29-Release.rst:39 +msgid "NTP IPv6 support" +msgstr "Dukungan NTP IPv6" + +#: i2p2www/blog/2017/02/27/0.9.29-Release.rst:40 +msgid "Don't display very old news in console" +msgstr "Tidak menampilkan berita yang sangat tua di console" + +#: i2p2www/blog/2017/02/27/0.9.29-Release.rst:41 +msgid "Blocklist checking improvements" +msgstr "Peningkatan dalam pemeriksaan blocklist" + +#: i2p2www/blog/2017/02/27/0.9.29-Release.rst:42 +msgid "Add preliminary Docker support" +msgstr "Menambahkan dukungan awal untuk Docker" + +#: i2p2www/blog/2017/02/27/0.9.29-Release.rst:43 +msgid "Add Referrer-Policy headers to console" +msgstr "Tambahan header Referrer-Policy untuk console" + +#: i2p2www/blog/2017/02/27/0.9.29-Release.rst:44 +msgid "Pass same-origin Referer headers through proxy" +msgstr "Meluluskan header same-origin melalui proxy" + +#: i2p2www/blog/2017/02/27/0.9.29-Release.rst:45 +msgid "Translated man pages" +msgstr "Halaman manual diterjemahkan" + +#: i2p2www/blog/2017/02/27/0.9.29-Release.rst:50 +msgid "Add support for outproxy plugin to CONNECT proxy" +msgstr "Menambahkan dukungan untuk outproxy plugin ke CONNECT proxy" + +#: i2p2www/blog/2017/02/27/0.9.29-Release.rst:51 +msgid "Replace random tunnel keys when rekeying" +msgstr "Mengganti kunci acak tunnel ketika rekeying" + +#: i2p2www/blog/2017/02/27/0.9.29-Release.rst:52 +msgid "Fix streaming optional delay and choking" +msgstr "Memperbaiki streaming opsional penundaan dan choking" + +#: i2p2www/blog/2017/02/27/0.9.29-Release.rst:53 +msgid "Don't hard fail on message expired error in streaming" +msgstr "Mencegah hard fail pada pesan kesalahan kadaluarsa dalam streaming" + +#: i2p2www/blog/2017/02/27/0.9.29-Release.rst:54 +msgid "Fix javadoc errors" +msgstr "Memperbaiki kesalahan javadoc" + +#: i2p2www/blog/2017/02/27/0.9.29-Release.rst:55 +msgid "Fix broken unit tests" +msgstr "Memperbaiki unit test yang rusak" + +#: i2p2www/blog/2017/02/27/0.9.29-Release.rst:56 +msgid "Ensure i2psnark finishes writing config files at shutdown" +msgstr "Memastikan i2psnark selesai menulis file konfigurasi saat shutdown" + +#: i2p2www/blog/2017/02/27/0.9.29-Release.rst:57 +msgid "Fix rare NPE in AES via NTCP" +msgstr "Memperbaiki NPE langka di AES melalui NTCP" + +#: i2p2www/blog/2017/02/27/0.9.29-Release.rst:58 +msgid "Disable caching of compressors, in an attempt to fix corruption" +msgstr "Menonaktifkan caching kompresor, dalam upaya untuk memperbaiki korupsi" + +#: i2p2www/blog/2017/02/27/0.9.29-Release.rst:59 +msgid "Don't close SAM or BOB session on receipt of corrupt compressed data" +msgstr "Tidak menutup SAM atau sesi BOB pada penerimaan kompresi data yang korup" + +#: i2p2www/blog/2017/02/27/0.9.29-Release.rst:64 +msgid "Add support for ports to CONNECT proxy" +msgstr "Menambahkan dukungan untuk port untuk CONNECT proxy" + +#: i2p2www/blog/2017/02/27/0.9.29-Release.rst:65 +msgid "Consolidate stream copy code" +msgstr "Mengkonsolidasikan stream copy code" + +#: i2p2www/blog/2017/02/27/0.9.29-Release.rst:66 +msgid "Consolidate console timer threads" +msgstr "Mengkonsolidasikan console timer threads" + +#: i2p2www/blog/2017/02/27/0.9.29-Release.rst:67 +msgid "New streaming test harness" +msgstr "Streaming test harness baru " + +#: i2p2www/blog/2017/03/04/0.9.29-Windows-Installer-Fix.rst:1 +msgid "" +"============================\n" +"0.9.29 Windows Installer Fix\n" +"============================" +msgstr "" +"============================\n" +"0.9.29 Perbaikan Windows Installer\n" +"============================" + +#: i2p2www/blog/2017/03/04/0.9.29-Windows-Installer-Fix.rst:10 +msgid "0.9.29 Windows installer fix" +msgstr "0.9.29 Perbaikan Windows Installer" + +#: i2p2www/blog/2017/03/04/0.9.29-Windows-Installer-Fix.rst:17 +msgid "" +"The 0.9.29 Windows installer posted on our website two days ago fails " +"during install with an Exception.\n" +"We have fixed the bug and posted the new installer to our website.\n" +"This does not affect upgrades from previous releases or non-Windows " +"installers.\n" +"We apologize for the issue." +msgstr "" +"Windows Installer 0.9.29 yang diposting pada website kami dua hari yang " +"lalu gagal selama instal dengan Exception.\n" +"Kami telah diperbaiki bug dan installer baru diposting ke situs kami.\n" +"Ini tidak mempengaruhi pembaruan dari rilis sebelumnya atau installer " +"non-Windows.\n" +"Kami mohon maaf untuk masalah ini." + +#: i2p2www/blog/2017/05/03/0.9.30-Release.rst:1 +msgid "" +"==============\n" +"0.9.30 Release\n" +"==============" +msgstr "" +"==============\n" +"Rilis 0.9.30\n" +"==============" + +#: i2p2www/blog/2017/05/03/0.9.30-Release.rst:10 +msgid "0.9.30 with Jetty 9" +msgstr "0.9.30 dengan Jetty 9" + +#: i2p2www/blog/2017/05/03/0.9.30-Release.rst:17 +msgid "" +"0.9.30 contains an upgrade to Jetty 9 and Tomcat 8.\n" +"The previous versions are no longer supported, and are not available in " +"the upcoming Debian Stretch and Ubuntu Zesty releases." +msgstr "" +"0.9.30 berisi pembaruan ke Jetty 9 dan Tomcat 8.\n" +"Versi sebelumnya tidak lagi didukung, dan tidak tersedia di rilis Debian " +"Stretch dan Ubuntu Zesty mendatang." + +#: i2p2www/blog/2017/05/03/0.9.30-Release.rst:22 +msgid "" +"The router will migrate the jetty.xml configuration file for each Jetty " +"website to the new Jetty 9 setup.\n" +"This should work for recent, unmodified configurations but may not work " +"for modified or very old setups.\n" +"Verify that your Jetty website works after upgrading, and contact us on " +"IRC if you need assistance." +msgstr "" +"Router akan bermigrasi file konfigurasi jetty.xml untuk setiap situs web " +"Jetty ke setup Jetty 9 baru.\n" +"Ini seharusnya berfungsi di konfigurasi baru yang tidak modifikasi, " +"tetapi mungkin tidak berfungsi untuk setup yang sangat tua atau " +"dimodifikasi.\n" +"Verifikasi bahwa situs web Jetty berfungsi setelah upgrade, dan hubungi " +"kami di IRC jika Anda memerlukan bantuan." + +#: i2p2www/blog/2017/05/03/0.9.30-Release.rst:28 +msgid "" +"Several plugins are not compatible with Jetty 9 and must be updated.\n" +"The following plugins have been updated to work with 0.9.30, and your " +"router should update them after restart:" +msgstr "" +"Beberapa plugin tidak kompatibel dengan Jetty 9 dan harus diperbaharui.\n" +"Plugin berikut telah diperbarui untuk berfungsi dengan 0.9.30, dan router" +" Anda harus memperbarui mereka setelah restart:" + +#: i2p2www/blog/2017/05/03/0.9.30-Release.rst:34 +msgid "" +"The following plugins (with current versions listed) will not work with " +"0.9.30.\n" +"Contact the appropriate plugin developer for the status of new versions:" +msgstr "" +"Plugin berikut (dengan versi terdaftar) tidak akan berfungsi dengan " +"0.9.30.\n" +"Hubungi pengembang plugin yang sesuai untuk status versi baru:" + +#: i2p2www/blog/2017/05/03/0.9.30-Release.rst:40 +msgid "" +"This release also supports migration of old (2014 and earlier) DSA-SHA1 " +"hidden services to the more-secure EdDSA signature type.\n" +"See http://zzz.i2p/topics/2271 for further information, including a guide" +" and FAQ." +msgstr "" +"Rilis ini juga mendukung migrasi hidden service DSA-SHA1 yang tua (2014 " +"dan sebelumnya) menjadi jenis tanda tangan EdDSA yang lebih aman .\n" +"Lihat http://zzz.i2p/topics/2271 untuk informasi lebih lanjut, termasuk " +"panduan dan FAQ." + +#: i2p2www/blog/2017/05/03/0.9.30-Release.rst:45 +msgid "" +"Note: On non-Android ARM platforms such as the Raspberry Pi, the " +"blockfile database will upgrade on restart, which may take several " +"minutes.\n" +"Please be patient." +msgstr "" +"Catatan: Pada platform ARM non-Android seperti Raspberry Pi, database " +"blockfile akan diupgrade saat restart, yang mungkin memakan waktu " +"beberapa menit.\n" +"Harap bersabar." + +#: i2p2www/blog/2017/05/03/0.9.30-Release.rst:60 +msgid "Jetty 9, Tomcat 8" +msgstr "Jety 9, Tomcat 8" + +#: i2p2www/blog/2017/05/03/0.9.30-Release.rst:61 +msgid "Stretch / Zesty support" +msgstr "Dukungan Stretch / Zesty" + +#: i2p2www/blog/2017/05/03/0.9.30-Release.rst:62 +msgid "Migration support for DSA-SHA1 hidden services" +msgstr "Dukungan Migrasi untuk layanan tersembunyi DSA-SHA1" + +#: i2p2www/blog/2017/05/03/0.9.30-Release.rst:63 +msgid "ARM (non-Android) router signature type migration" +msgstr "Migrasi tipe router signature ARM (non-Android)" + +#: i2p2www/blog/2017/05/03/0.9.30-Release.rst:64 +msgid "ARM (non-Android) blockfile format migration" +msgstr "Migrasi formar blockfile ARM (non-Android)" + +#: i2p2www/blog/2017/05/03/0.9.30-Release.rst:65 +msgid "Introducer expiration (proposal 133)" +msgstr "Introducer expiration (proposal 133) " + +#: i2p2www/blog/2017/05/03/0.9.30-Release.rst:70 +msgid "Fix disappearing i2psnark start button" +msgstr "Perbaikan mulai start di i2psnark yang menghilang" + +#: i2p2www/blog/2017/05/03/0.9.30-Release.rst:71 +msgid "Fix saving of libjcpuid.jnilib file on Macs" +msgstr "Perbaikan penyimpanan file libjcpuid.jnilib pada Mac" + +#: i2p2www/blog/2017/05/03/0.9.30-Release.rst:72 +msgid "Fix fallback to 'none' architecture for jbigi" +msgstr "Memperbaikan fallback ke 'none' arsitektur untuk jbigi" + +#: i2p2www/blog/2017/05/03/0.9.30-Release.rst:73 +msgid "Fixes for multiple destinations in SusiDNS" +msgstr "Perbaikan untuk destinasi banyak di SusiDNS" + +#: i2p2www/blog/2017/05/03/0.9.30-Release.rst:74 +msgid "Fix config directory location in Gentoo" +msgstr "Memperbaikan lokasi direktori config di Gentoo" + +#: i2p2www/blog/2017/05/03/0.9.30-Release.rst:75 +msgid "Fix rapid firewalled/not-firewalled transitions" +msgstr "Perbaikan untuk transisi firewall/tidak-firewall cepat" + +#: i2p2www/blog/2017/05/03/0.9.30-Release.rst:76 +msgid "Fix startup crash on very old Android platforms" +msgstr "Perbaikan crash pada startup di versi Android yang sangat tua" + +#: i2p2www/blog/2017/05/03/0.9.30-Release.rst:77 +msgid "Fixes for advanced authentication strings in i2ptunnel" +msgstr "Perbaikan untuk string otentifikasi lanjutan di i2ptunnel" + +#: i2p2www/blog/2017/05/03/0.9.30-Release.rst:78 +msgid "Fix exception caused by corrupt stored i2psnark DHT data" +msgstr "" +"Memperbaikan exeption yang disebabkan oleh data i2psnark DHT tersimpan " +"yang korup" + +#: i2p2www/blog/2017/05/03/0.9.30-Release.rst:79 +msgid "Speed up writes of i2psnark files at shutdown" +msgstr "Mempercepat penulisan file i2psnark saat shutdown" + +#: i2p2www/blog/2017/05/03/0.9.30-Release.rst:84 +msgid "Recognize AMD Ryzen processor" +msgstr "Mengenali prosesor AMD Ryzen" + +#: i2p2www/blog/2017/05/03/0.9.30-Release.rst:85 +msgid "Support for new i2psnark-rpc remote plugin" +msgstr "Dukungan untuk plugin baru remote i2psnark-rpc " + +#: i2p2www/blog/2017/05/03/0.9.30-Release.rst:86 +msgid "Build addressbook as a jar, not a webapp" +msgstr "Membangun addressbook sebagai jar, bukan webapp" + +#: i2p2www/blog/2017/05/03/0.9.30-Release.rst:87 +msgid "Support client registration in app context" +msgstr "Dukungan pendaftaran client dalam konteks aplikasi" + +#: i2p2www/blog/2017/05/03/0.9.30-Release.rst:88 +msgid "Add support for i2psnark-rpc plugin" +msgstr "Menambahkan dukungan untuk plugin i2psnark-rpc" + +#: i2p2www/blog/2017/05/03/0.9.30-Release.rst:89 +msgid "Adjust thresholds for probabalistic throttling on slow platforms" +msgstr "Menyesuaikan batas untuk probabalistic throttling pada platform lambat" + +#: i2p2www/blog/2017/05/03/0.9.30-Release.rst:90 +msgid "Add reset() to I2PSocket API" +msgstr "Menambah reset() ke I2PSocket API" + +#: i2p2www/blog/2017/05/03/0.9.30-Release.rst:91 +msgid "Add date parameter to subscription authentication strings" +msgstr "Menambahkan tanggal parameter ke string otentikasi berlangganan" + +#: i2p2www/blog/2017/05/03/0.9.30-Release.rst:92 +msgid "Add bash completion scripts to Debian packages" +msgstr "Menambahkan skrip bash completion untuk paket-paket Debian" + +#: i2p2www/blog/2017/06/01/Summer-Dev-2017-MOAR-Speed.rst:1 +msgid "" +"================================\n" +"I2P Summer Dev 2017: MOAR Speed!\n" +"================================" +msgstr "" +"================================\n" +"I2P Summer Dev 2017: Kecepatan Lebih Tinggi!\n" +"================================ " + +#: i2p2www/blog/2017/06/01/Summer-Dev-2017-MOAR-Speed.rst:10 +msgid "" +"This year's Summer Dev will be focused on metrics collection and " +"performance improvements for the network." +msgstr "" +"Summer Dev tahun ini akan berfokus pada perbaikan koleksi metrik dan " +"kinerja jaringan." + +#: i2p2www/blog/2017/06/01/Summer-Dev-2017-MOAR-Speed.rst:12 +msgid "" +"It's that time of year again! We're embarking on our summer development\n" +"programme, where we focus on a particular aspect of I2P to push it " +"forward. For\n" +"the next three months, we'll be encouraging both new contributors and " +"existing\n" +"community members to pick a task and have fun with it!" +msgstr "" +"Waktu telah tiba! Kami sedang memulai program pengembangan musim panas, " +"di mana kami berfokus pada aspek tertentu dari I2P untuk mendorong " +"perkembangannya. Dalam tiga bulan ke depan, kami akan mendorong " +"kontributor baru dan anggota lama komunitas untuk memilih tugas dan " +"bersenang-senang dengannya!" + +#: i2p2www/blog/2017/06/01/Summer-Dev-2017-MOAR-Speed.rst:19 +msgid "" +"`Last year`_, we focused on helping users and developers leverage I2P, by" +"\n" +"improving API tooling and giving some love to applications that run over " +"I2P.\n" +"This year, we want to improve the user experience by working on an aspect" +" that\n" +"affects everyone: performance." +msgstr "" +"`Tahun kemarin`_, kami berfous pada mendorng pengguna dan pengembang " +"untuk meningkatkan I2P dengan meningkatkan tool di I2P dan memberikan " +"perhatian kepada aplikasi yang berjalan di dalam I2P.\n" +"Tahun ini, kami ingin meningkatkan pengalaman pengguna dengan mengerjakan" +" aspek yang mempengaruhi setiap orang: kinerja." + +#: i2p2www/blog/2017/06/01/Summer-Dev-2017-MOAR-Speed.rst:26 +msgid "`Last year`" +msgstr "`Tahun kemarin`" + +#: i2p2www/blog/2017/06/01/Summer-Dev-2017-MOAR-Speed.rst:28 +msgid "" +"Despite onion-routing networks often being called \"low-latency\" " +"networks, there\n" +"is significant overhead created by routing traffic through additional " +"computers.\n" +"I2P's unidirectional tunnel design means that by default, a round trip " +"between\n" +"two Destinations will involve twelve participants! Improving the " +"performance of\n" +"these participants will help to both reduce the latency of end-to-end\n" +"connections [1]_, and increase the quality of tunnels network-wide." +msgstr "" +"Meskipun jaringan onion-routing sering disebut jaringan \"latensi-" +"rendah\", ada overhead yang signifikan yang dibuat oleh routing lalu " +"lintas melalui beberapa komputer.\n" +"Desain tunnel I2P yang unidirectional membuat, secara default, lalu " +"lintas bulak balik antara dua destinasi yang melibatkan dua belas " +"peserta! Meningkatkan kinerja para peserta ini akan membantu mengurangi " +"latensi koneksi end-to-end [1]_, dan meningkatkan kualitas tunnel di " +"seluruh jaringan." + +#: i2p2www/blog/2017/06/01/Summer-Dev-2017-MOAR-Speed.rst:37 +msgid "" +"MOAR speed!\n" +"===========" +msgstr "" +"Kecepatan Lebih Tinggi!\n" +"=========== " + +#: i2p2www/blog/2017/06/01/Summer-Dev-2017-MOAR-Speed.rst:42 +msgid "Our development programme this year will have four components:" +msgstr "Program pengembangan kami tahun ini akan memiliki empat komponen:" + +#: i2p2www/blog/2017/06/01/Summer-Dev-2017-MOAR-Speed.rst:46 +msgid "" +"Measure\n" +"-------" +msgstr "" +"Ukuran\n" +"-------" + +#: i2p2www/blog/2017/06/01/Summer-Dev-2017-MOAR-Speed.rst:51 +msgid "" +"We can't tell if we improve performance without a baseline! We'll be " +"creating a\n" +"metrics system for collecting usage and performance data about I2P in a\n" +"privacy-preserving way, as well as porting various benchmarking tools to " +"run\n" +"over I2P (e.g. iperf3_)." +msgstr "" +"Kita tidak bisa mengatakan jika kita meningkatkan kinerja tanpa patokan! " +"Kami akan membuat sebuah sistem metrik untuk mengumpulkan data penggunaan" +" dan kinerja tentang I2P di dalam cara menjaga privasi, serta melakukan " +"porting berbagai tool pembandingan untuk berjalan di dalam I2P (misalnya " +"iperf3_)." + +#: i2p2www/blog/2017/06/01/Summer-Dev-2017-MOAR-Speed.rst:60 +msgid "" +"Optimise\n" +"--------" +msgstr "" +"Optimisasi\n" +"--------" + +#: i2p2www/blog/2017/06/01/Summer-Dev-2017-MOAR-Speed.rst:65 +msgid "" +"There's a lot of scope for improving the performance of our existing " +"code, to\n" +"e.g. reduce the overhead of participating in tunnels. We will be looking " +"at\n" +"potential improvements to:" +msgstr "" +"Ada banyak cakupan untuk meningkatkan kinerja di kode pemograman yang " +"ada, misalnya untuk mengurangi overhead dari partisipasi di dalam tunnel." +" Kita akan mencari potensi perbaikan:" + +#: i2p2www/blog/2017/06/01/Summer-Dev-2017-MOAR-Speed.rst:71 +msgid "Cryptographic primitives" +msgstr "Cryptographic primitives " + +#: i2p2www/blog/2017/06/01/Summer-Dev-2017-MOAR-Speed.rst:72 +msgid "" +"Network transports, both at the link-layer (NTCP_, SSU_) and end-to-end " +"(Streaming_)" +msgstr "" +"Network transport, baik pada link-layer (NTCP_, SSU_) dan end-to-end " +"(Streaming_)" + +#: i2p2www/blog/2017/06/01/Summer-Dev-2017-MOAR-Speed.rst:73 +msgid "Peer profiling" +msgstr "Pembuatan profil peer" + +#: i2p2www/blog/2017/06/01/Summer-Dev-2017-MOAR-Speed.rst:74 +msgid "Tunnel path selection" +msgstr "Pemilihan jalur tunnel" + +#: i2p2www/blog/2017/06/01/Summer-Dev-2017-MOAR-Speed.rst:80 +msgid "" +"Advance\n" +"-------" +msgstr "" +"Kemajuan\n" +"-------" + +#: i2p2www/blog/2017/06/01/Summer-Dev-2017-MOAR-Speed.rst:85 +msgid "" +"We have several open proposals for improving the scalability of the I2P " +"network\n" +"(e.g. Prop115_, Prop123_, Prop124_, Prop125_, Prop138_, Prop140_). We " +"will be\n" +"working on these proposals, and begin implementing the finalised ones in " +"the\n" +"various network routers. The more feedback these proposals receive, the " +"sooner\n" +"we can roll them out, and the sooner I2P services can start using them!" +msgstr "" +"Kami memiliki beberapa usulan yang terbuka untuk meningkatkan " +"skalabilitas jaringan I2P (misalnya Prop115_, Prop123_, Prop124_, " +"Prop125_, Prop138_, Prop140_). Kami akan mengerjakan proposal-proposal " +"tersebut dan mulai menerapkan proposan yang difinalisasi di dalam " +"berbagai router jaringan. Semakin banyak umpan balik yang diterima " +"proposal ini, semakin cepat kita bisa meluncurkannya, dan semakin cepat " +"layanan I2P dapat mulai menggunakannya!" + +#: i2p2www/blog/2017/06/01/Summer-Dev-2017-MOAR-Speed.rst:100 +msgid "" +"Research\n" +"--------" +msgstr "" +"Penelitian\n" +"--------" + +#: i2p2www/blog/2017/06/01/Summer-Dev-2017-MOAR-Speed.rst:105 +msgid "" +"I2P is a packet-switched network, like the internet it runs on top of. " +"This\n" +"gives us significant flexibility in how we route packets, both for " +"performance\n" +"and privacy. The majority of this flexibility is unexplored! We want to\n" +"encourage research into how various clearnet techniques for improving " +"bandwidth\n" +"can be applied to I2P, and how they might affect the privacy of network\n" +"participants." +msgstr "" +"I2p adalah jaringan packet-switched, seperti Internet, yang berjalan di " +"atas Internet. Ini memberikan fleksibilitas besar dalam cara merutekan " +"paket, untuk meningkatkan kinerja dan privasi. Kebanyakan dari " +"fleksibilitas ini belum dijelajahi! Kami ingin mendorong penelitian dalam" +" bagaimana teknik di Internet biasa dalam meningkatkan bandwith, dapat " +"diterapkan di I2P, dan bagaimana teknik tersebut mempengaruhi privasi " +"dari peserta jaringan I2P." + +#: i2p2www/blog/2017/06/01/Summer-Dev-2017-MOAR-Speed.rst:119 +msgid "" +"We have many more ideas for things we'd like to get done in these areas. " +"If\n" +"you're interested in hacking on privacy and anonymity software, designing" +"\n" +"protocols (cryptographic or otherwise), or researching future ideas - " +"come and\n" +"chat with us on IRC or Twitter! We are always happy to welcome newcomers " +"into\n" +"our community, both inside and outside the I2P network. We'll also be " +"sending\n" +"I2P stickers out to all new contributors taking part! If you want to chat" +" about\n" +"a specific idea, contact `@GetI2P`_, `@i2p`_ or `@str4d`_ on Twitter. You" +" can\n" +"also find us in #i2p-dev on OFTC or Freenode." +msgstr "" +"Kami memiliki lebih banyak gagasan untuk hal-hal yang ingin kami lakukan " +"di bidang ini. Jika Anda tertarik untuk meretas perangkat lunak privasi " +"dan anonimitas, merancang protokol (kriptografi atau hal lain), atau " +"meneliti ide masa depan: datang dan mengobrol dengan kami di IRC atau " +"Twitter! Kami selalu senang untuk menyambut pendatang baru ke dalam " +"komunitas, baik di dalam maupun di luar jaringan I2P. Kami akan " +"mengirimkan stiker I2P ke semua kontributor baru! Jika Anda ingin " +"chatting tentang ide tertentu, hubungi `@GetI2P`_, '@i2p`_ atau " +"`@str4d`_ di Twitter. Anda juga dapat menemukan kami di #i2p-dev di OFTC " +"atau FreeNode." + +#: i2p2www/blog/2017/06/01/Summer-Dev-2017-MOAR-Speed.rst:141 +msgid "" +"Low-latency onion-routing networks are vulnerable to traffic confirmation" +" attacks, so it would be reasonable to ask whether improved performance " +"equates to reduced privacy. Some latency can help privacy if applied " +"correctly via random delays or batching (neither of which are currently " +"employed by any general-purpose onion-routing network). However, if a " +"tunnel has uniform overall latency, then traffic confirmation attacks " +"should be just as viable with or without that latency; thus there should " +"be little statistical difference when the latency is reduced uniformly." +msgstr "" +"Jaringan low-latency onion-routing memang rentan terhadap serangan " +"konfirmasi lalu lintas, sehingga akan masuk akal untuk bertanya apakah " +"peningkatan kinerja setara dengan pengurangan privasi. Beberapa tingkat " +"latency dapat membantu privasi jika diterapkan dengan benar melalui " +"penundaan acak atau batching (baik yang saat ini digunakan oleh jaringan " +"onion-routing umum apapun). Namun, jika sebuat tunnel memiliki latensi " +"keseluruhan yang uniform, serangan konfirmasi lalu lintas akan mungkin " +"dilakukan dengan atau tidak dengan latensi; sehingga seharusnya ada " +"sedikit perbedaan statistik ketika latensi dikurang secara sama antar " +"tunnel." + +#: i2p2www/blog/2017/08/07/0.9.31-Release.rst:1 +msgid "" +"==============\n" +"0.9.31 Release\n" +"==============" +msgstr "" +"==============\n" +"Rilis 0.9.31\n" +"==============" + +#: i2p2www/blog/2017/08/07/0.9.31-Release.rst:10 +msgid "0.9.31 with Console Updates" +msgstr "Versi 0.9.31 dirilis dengan pembaruan console" + +#: i2p2www/blog/2017/08/07/0.9.31-Release.rst:17 +msgid "" +"The changes in this release are much more noticeable than usual!\n" +"We have refreshed the router console to make it easier to understand,\n" +"improve accessibility and cross-browser support,\n" +"and generally tidy things up.\n" +"This is the first step in a longer-term plan to make the router console " +"more user-friendly.\n" +"We have also added torrent ratings and comments support to i2psnark." +msgstr "" +"Perubahan dalam rilis ini jauh lebih dirasakan daripada biasanya!\n" +"Kami telah menyesegarkan router console untuk membuatnya lebih mudah " +"dipahami, meningkatkan aksesibilitas dan dukungan cross-browser, dan " +"umumnya membereskan hal-hal lain.\n" +"Ini adalah langkah pertama dalam rencana jangka panjang untuk membuat " +"router console menjadi lebih user-friendly.\n" +"Kami juga telah menambahkan peringkat torrent dan dukungan komentar untuk" +" i2psnark." + +#: i2p2www/blog/2017/08/07/0.9.31-Release.rst:36 +msgid "Console updates" +msgstr "Pembaruan console" + +#: i2p2www/blog/2017/08/07/0.9.31-Release.rst:37 +msgid "i2psnark ratings and comments" +msgstr "Peringkat dan komentar i2psnark" + +#: i2p2www/blog/2017/08/07/0.9.31-Release.rst:43 +msgid "Fix compile error with Jetty 9.2.22" +msgstr "Memperbaiki kesalahan kompilasi dengan Jetty 9.2.22" + +#: i2p2www/blog/2017/08/07/0.9.31-Release.rst:44 +msgid "Preserve CRT parameters for RSA private keys" +msgstr "Melestarikan CRT parameter untuk kunci RSA pribadi" + +#: i2p2www/blog/2017/08/07/0.9.31-Release.rst:45 +msgid "Fix AES NPE on 4-core Rasp. Pi" +msgstr "Memperbaiki AES NPE pada 4-core Rasp. Pi " + +#: i2p2www/blog/2017/08/07/0.9.31-Release.rst:46 +msgid "Fix NPE in GeoIP" +msgstr "Memperbaikan NPE di GeoIP" + +#: i2p2www/blog/2017/08/07/0.9.31-Release.rst:47 +msgid "Fix bencoding for scrape response in zzzot plugin" +msgstr "Perbaikan bencoding untuk scrape response di plugin zzzot" + +#: i2p2www/blog/2017/08/07/0.9.31-Release.rst:48 +msgid "Fix display of default SusiDNS subscription" +msgstr "Memperbaiki tampilan default dari langganan SusiDNS" + +#: i2p2www/blog/2017/08/07/0.9.31-Release.rst:49 +msgid "Fix Debian apparmor profile" +msgstr "Memperbaiki profil Debian apparmor" + +#: i2p2www/blog/2017/08/07/0.9.31-Release.rst:50 +msgid "Improve handling of read-only i2psnark directory" +msgstr "Memperbaiki penanganan direktori i2psnark read-only" + +#: i2p2www/blog/2017/08/07/0.9.31-Release.rst:56 +msgid "Hostname lookup caching improvements" +msgstr "Peningkatan cache dari pencarian hostname" + +#: i2p2www/blog/2017/08/07/0.9.31-Release.rst:57 +msgid "Move blockfile support from i2p.jar to addressbook.jar" +msgstr "Memindahkan dukungan blockfile dari i2p.jar ke addressbook.jar" + +#: i2p2www/blog/2017/08/07/0.9.31-Release.rst:58 +msgid "Locale-independent Jetty directory listing" +msgstr "Daftar direktori Jetty yang independent dari pengaturan lokal bahasa" + diff --git a/i2p2www/translations/nb/LC_MESSAGES/about.po b/i2p2www/translations/nb/LC_MESSAGES/about.po new file mode 100644 index 00000000..b2b7bebd --- /dev/null +++ b/i2p2www/translations/nb/LC_MESSAGES/about.po @@ -0,0 +1,2580 @@ +# Norwegian Bokmål translations for I2P. +# Copyright (C) 2017 ORGANIZATION +# This file is distributed under the same license as the I2P project. +# +# Translators: +# Allan Nordhøy , 2017 +msgid "" +msgstr "" +"Project-Id-Version: I2P\n" +"Report-Msgid-Bugs-To: http://trac.i2p2.de\n" +"POT-Creation-Date: 2017-04-01 23:55+0000\n" +"PO-Revision-Date: 2018-01-19 07:09+0000\n" +"Last-Translator: Allan Nordhøy \n" +"Language-Team: Norwegian Bokmål " +"(http://www.transifex.com/otf/I2P/language/nb/)\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 1.3\n" + +#: i2p2www/pages/site/about/alternative-clients.html:2 +#: i2p2www/pages/site/about/alternative-clients.html:4 +msgid "Alternative I2P clients" +msgstr "Alternative I2P-klienter" + +#: i2p2www/pages/site/about/alternative-clients.html:5 +msgid "" +"The main I2P client implementation uses Java. If for some \n" +"reason you can't use Java on your device, there are alternative " +"implementations\n" +"developed by community members." +msgstr "" + +#: i2p2www/pages/site/about/alternative-clients.html:12 +#, python-format +msgid "" +"i2pd is a I2P client implementation in C++.\n" +"As of early 2016, i2pd is became stable enough to be used in \n" +"production, and since summer 2016 it fully implements all I2P APIs." +msgstr "" + +#: i2p2www/pages/site/about/alternative-clients.html:19 +#, python-format +msgid "" +"Kovri is active i2pd fork developed for Monero " +"cryptocurrency." +msgstr "" + +#: i2p2www/pages/site/about/alternative-clients.html:24 +#, python-format +msgid "" +"Go-I2P is I2P client developed using the\n" +"Go programming language. The project is in " +"early development." +msgstr "" + +#: i2p2www/pages/site/about/browser-config.html:2 +msgid "Web Browser Configuration" +msgstr "" + +#: i2p2www/pages/site/about/browser-config.html:5 +msgid "" +"Your web browser will need to be configured in order to browse eepsites " +"and to\n" +"utilize the outproxies available within I2P. Below are walkthroughs for " +"some of\n" +"the most popular browsers." +msgstr "" + +#: i2p2www/pages/site/about/browser-config.html:11 +msgid "How to configure your browser" +msgstr "Hvordan sette opp din nettleser" + +#: i2p2www/pages/site/about/browser-config.html:17 +#: i2p2www/pages/site/about/browser-config.html:73 +msgid "Outproxy Terms Of Service" +msgstr "" + +#: i2p2www/pages/site/about/browser-config.html:22 +msgid "Internet Explorer 8 or Chrome" +msgstr "" + +#: i2p2www/pages/site/about/browser-config.html:23 +msgid "" +"In the tools menu select the \"Internet Options\" line to open the " +"settings. In the\n" +"settings window choose the connections tab and click on LAN settings for " +"the\n" +"proxy port configuration." +msgstr "" + +#: i2p2www/pages/site/about/browser-config.html:28 +msgid "IE Internet Options" +msgstr "" + +#: i2p2www/pages/site/about/browser-config.html:29 +msgid "" +"Now set the checkmark at \"use a proxy server for your LAN\" and at the " +"\"Bypass\n" +"proxy server for local addresses\". With a click on Advanced-button you " +"open the\n" +"window to open the ports. Enter the values like on the picture, IP " +"127.0.0.1\n" +"and port 4444 for HTTP, port 4445 for HTTPS. With clicks on OK you save " +"the\n" +"settings and your browser is set to use the I2P proxy.\n" +"Note/Privacy tip: Set the FTP proxy to the same settings as the " +"HTTP proxy." +msgstr "" + +#: i2p2www/pages/site/about/browser-config.html:37 +msgid "IE Proxy Settings" +msgstr "" + +#: i2p2www/pages/site/about/browser-config.html:41 +msgid "" +"From the Tools menu, select Options to bring up the Firefox settings " +"panel.\n" +"Click the icon labelled Advanced, then click on the " +"Network\n" +"tab. In the Connections section, click on the Settings button. " +"You'll\n" +"see a Window like the following:" +msgstr "" + +#: i2p2www/pages/site/about/browser-config.html:47 +msgid "Firefox Network Options" +msgstr "" + +#: i2p2www/pages/site/about/browser-config.html:48 +msgid "" +"In the Connection Settings window, click the circle next to " +"Manual\n" +" proxy configuration, then enter 127.0.0.1, port 4444 in the HTTP" +" Proxy\n" +"field. Enter 127.0.0.1, port 4445 in the SSL Proxy field.\n" +"Be sure to enter localhost and 127.0.0.1 into the \"No Proxy for\" box.\n" +"Note/Privacy tip: Set the FTP proxy to the same settings as the " +"HTTP proxy." +msgstr "" + +#: i2p2www/pages/site/about/browser-config.html:55 +msgid "Firefox Proxy Settings" +msgstr "" + +#: i2p2www/pages/site/about/browser-config.html:59 +msgid "" +"From the Settings menu, select Configure Konqueror. In " +"the\n" +"Web Browsing group on the left side, select Proxy, then select the option" +" \"Use manually specified proxy\n" +"configuration\" on the right." +msgstr "" + +#: i2p2www/pages/site/about/browser-config.html:64 +msgid "Konqueror Proxy Options" +msgstr "" + +#: i2p2www/pages/site/about/browser-config.html:65 +msgid "" +"Enter 127.0.0.1 and port 4444 into the HTTP box. Enter 127.0.0.1 and port" +" 4445 into\n" +"HTTPS box. Enter 127.0.0.1,localhost into the Exceptions " +"box. Click Apply then OK\n" +"to close the configuration window.\n" +"Note/Privacy tip: Set the FTP proxy to the same settings as the " +"HTTP proxy." +msgstr "" + +#: i2p2www/pages/site/about/browser-config.html:74 +msgid "" +"Remember: I2P was not designed for creating proxies to the outer " +"Internet.\n" +"Instead, it is meant to be used as an internal network." +msgstr "" + +#: i2p2www/pages/site/about/browser-config.html:78 +msgid "" +"

The I2P project itself does not run any proxies to the " +"Internet. \n" +"The only outproxy is a service from the privacy solutions project. \n" +"Consider donating to them for a continued stable service. Higher " +"bandwidth will \n" +"increase with the founding of the organization. Maybe more outproxies " +"too.

\n" +"http://privacysolutions.no" +msgstr "" + +#: i2p2www/pages/site/about/browser-config.html:86 +#, python-format +msgid "" +"By default, I2P comes with two outproxies configured: " +"%(http)s \n" +"and %(https)s. Even the domain names are different, it's the" +" same outproxy you hit.\n" +"(multi-homed/keyed for better performance)" +msgstr "" + +#: i2p2www/pages/site/about/browser-config.html:91 +msgid "" +"Filtering is active on these outproxies (for example, mibbit and torrent\n" +"tracker access is blocked). Eepsites\n" +"that are accessible via .i2p addresses are also not allowed via the " +"outproxies.\n" +"As a convenience, the outproxy blocks ad servers." +msgstr "" + +#: i2p2www/pages/site/about/browser-config.html:97 +msgid "" +"Tor is good application to use" +" as an\n" +"outproxy to the Internet." +msgstr "" + +#: i2p2www/pages/site/about/glossary.html:2 +msgid "Glossary" +msgstr "" + +#: i2p2www/pages/site/about/glossary.html:4 +msgid "" +"This page lists often-used terminology when discussing I2P and " +"cryptography." +msgstr "" + +#: i2p2www/pages/site/about/hall-of-fame.html:2 +msgid "Hall Of Fame" +msgstr "" + +#: i2p2www/pages/site/about/hall-of-fame.html:5 +#, python-format +msgid "Current balance: as of %(date)s" +msgstr "" + +#: i2p2www/pages/site/about/hall-of-fame.html:8 +#: i2p2www/pages/site/about/hall-of-fame.html:45 +#: i2p2www/pages/site/about/hall-of-fame.html:615 +#: i2p2www/pages/site/about/hall-of-fame.html:616 +#: i2p2www/pages/site/about/hall-of-fame.html:617 +#: i2p2www/pages/site/about/hall-of-fame.html:618 +#: i2p2www/pages/site/about/hall-of-fame.html:620 +#: i2p2www/pages/site/about/hall-of-fame.html:621 +#: i2p2www/pages/site/about/hall-of-fame.html:622 +#: i2p2www/pages/site/about/hall-of-fame.html:625 +#: i2p2www/pages/site/about/hall-of-fame.html:626 +#: i2p2www/pages/site/about/hall-of-fame.html:627 +#: i2p2www/pages/site/about/hall-of-fame.html:630 +#: i2p2www/pages/site/about/hall-of-fame.html:631 +#: i2p2www/pages/site/about/hall-of-fame.html:632 +#: i2p2www/pages/site/about/hall-of-fame.html:633 +#: i2p2www/pages/site/about/hall-of-fame.html:634 +#: i2p2www/pages/site/about/hall-of-fame.html:635 +#: i2p2www/pages/site/about/hall-of-fame.html:636 +#: i2p2www/pages/site/about/hall-of-fame.html:637 +#: i2p2www/pages/site/about/hall-of-fame.html:638 +#: i2p2www/pages/site/about/hall-of-fame.html:639 +#: i2p2www/pages/site/about/hall-of-fame.html:640 +#: i2p2www/pages/site/about/hall-of-fame.html:641 +#: i2p2www/pages/site/about/hall-of-fame.html:642 +#: i2p2www/pages/site/about/hall-of-fame.html:645 +#: i2p2www/pages/site/about/hall-of-fame.html:646 +#: i2p2www/pages/site/about/hall-of-fame.html:647 +#: i2p2www/pages/site/about/hall-of-fame.html:648 +#: i2p2www/pages/site/about/hall-of-fame.html:649 +#: i2p2www/pages/site/about/hall-of-fame.html:650 +#: i2p2www/pages/site/about/hall-of-fame.html:652 +#: i2p2www/pages/site/about/hall-of-fame.html:653 +#: i2p2www/pages/site/about/hall-of-fame.html:656 +#: i2p2www/pages/site/about/hall-of-fame.html:657 +#: i2p2www/pages/site/about/hall-of-fame.html:658 +#: i2p2www/pages/site/about/hall-of-fame.html:659 +#: i2p2www/pages/site/about/hall-of-fame.html:660 +#: i2p2www/pages/site/about/hall-of-fame.html:662 +#: i2p2www/pages/site/about/hall-of-fame.html:663 +#: i2p2www/pages/site/about/hall-of-fame.html:664 +#: i2p2www/pages/site/about/hall-of-fame.html:665 +#: i2p2www/pages/site/about/hall-of-fame.html:666 +#: i2p2www/pages/site/about/hall-of-fame.html:667 +#: i2p2www/pages/site/about/hall-of-fame.html:669 +#: i2p2www/pages/site/about/hall-of-fame.html:670 +#: i2p2www/pages/site/about/hall-of-fame.html:671 +#: i2p2www/pages/site/about/hall-of-fame.html:672 +#: i2p2www/pages/site/about/hall-of-fame.html:674 +#: i2p2www/pages/site/about/hall-of-fame.html:675 +#: i2p2www/pages/site/about/hall-of-fame.html:676 +#: i2p2www/pages/site/about/hall-of-fame.html:677 +#: i2p2www/pages/site/about/hall-of-fame.html:678 +#: i2p2www/pages/site/about/hall-of-fame.html:681 +#: i2p2www/pages/site/about/hall-of-fame.html:682 +#: i2p2www/pages/site/about/hall-of-fame.html:683 +#: i2p2www/pages/site/about/hall-of-fame.html:684 +#: i2p2www/pages/site/about/hall-of-fame.html:686 +#: i2p2www/pages/site/about/hall-of-fame.html:687 +#: i2p2www/pages/site/about/hall-of-fame.html:688 +#: i2p2www/pages/site/about/hall-of-fame.html:690 +#: i2p2www/pages/site/about/hall-of-fame.html:691 +#: i2p2www/pages/site/about/hall-of-fame.html:692 +#: i2p2www/pages/site/about/hall-of-fame.html:693 +#: i2p2www/pages/site/about/hall-of-fame.html:695 +#: i2p2www/pages/site/about/hall-of-fame.html:696 +#: i2p2www/pages/site/about/hall-of-fame.html:697 +#: i2p2www/pages/site/about/hall-of-fame.html:698 +#: i2p2www/pages/site/about/hall-of-fame.html:699 +#: i2p2www/pages/site/about/hall-of-fame.html:705 +#: i2p2www/pages/site/about/hall-of-fame.html:708 +#: i2p2www/pages/site/about/hall-of-fame.html:709 +#: i2p2www/pages/site/about/hall-of-fame.html:710 +#: i2p2www/pages/site/about/hall-of-fame.html:711 +#: i2p2www/pages/site/about/hall-of-fame.html:712 +#: i2p2www/pages/site/about/hall-of-fame.html:714 +#: i2p2www/pages/site/about/hall-of-fame.html:715 +#: i2p2www/pages/site/about/hall-of-fame.html:716 +#: i2p2www/pages/site/about/hall-of-fame.html:721 +#: i2p2www/pages/site/about/hall-of-fame.html:722 +#: i2p2www/pages/site/about/hall-of-fame.html:723 +#: i2p2www/pages/site/about/hall-of-fame.html:724 +#: i2p2www/pages/site/about/hall-of-fame.html:725 +#: i2p2www/pages/site/about/hall-of-fame.html:726 +#: i2p2www/pages/site/about/hall-of-fame.html:727 +#: i2p2www/pages/site/about/hall-of-fame.html:728 +#: i2p2www/pages/site/about/hall-of-fame.html:729 +#: i2p2www/pages/site/about/hall-of-fame.html:730 +#: i2p2www/pages/site/about/hall-of-fame.html:732 +#: i2p2www/pages/site/about/hall-of-fame.html:733 +#: i2p2www/pages/site/about/hall-of-fame.html:743 +#: i2p2www/pages/site/about/hall-of-fame.html:744 +#: i2p2www/pages/site/about/hall-of-fame.html:745 +#: i2p2www/pages/site/about/hall-of-fame.html:746 +#: i2p2www/pages/site/about/hall-of-fame.html:747 +#: i2p2www/pages/site/about/hall-of-fame.html:748 +#: i2p2www/pages/site/about/hall-of-fame.html:749 +#: i2p2www/pages/site/about/hall-of-fame.html:750 +#: i2p2www/pages/site/about/hall-of-fame.html:751 +#: i2p2www/pages/site/about/hall-of-fame.html:752 +#: i2p2www/pages/site/about/hall-of-fame.html:753 +#: i2p2www/pages/site/about/hall-of-fame.html:754 +#: i2p2www/pages/site/about/hall-of-fame.html:755 +#: i2p2www/pages/site/about/hall-of-fame.html:756 +#: i2p2www/pages/site/about/hall-of-fame.html:757 +#: i2p2www/pages/site/about/hall-of-fame.html:758 +#: i2p2www/pages/site/about/hall-of-fame.html:759 +#: i2p2www/pages/site/about/hall-of-fame.html:760 +#: i2p2www/pages/site/about/hall-of-fame.html:761 +#: i2p2www/pages/site/about/hall-of-fame.html:762 +#: i2p2www/pages/site/about/hall-of-fame.html:763 +#: i2p2www/pages/site/about/hall-of-fame.html:767 +#: i2p2www/pages/site/about/hall-of-fame.html:768 +#: i2p2www/pages/site/about/hall-of-fame.html:769 +#: i2p2www/pages/site/about/hall-of-fame.html:770 +#: i2p2www/pages/site/about/hall-of-fame.html:771 +#: i2p2www/pages/site/about/hall-of-fame.html:772 +#: i2p2www/pages/site/about/hall-of-fame.html:773 +#: i2p2www/pages/site/about/hall-of-fame.html:775 +#: i2p2www/pages/site/about/hall-of-fame.html:776 +#: i2p2www/pages/site/about/hall-of-fame.html:777 +#: i2p2www/pages/site/about/hall-of-fame.html:778 +#: i2p2www/pages/site/about/hall-of-fame.html:779 +#: i2p2www/pages/site/about/hall-of-fame.html:780 +#: i2p2www/pages/site/about/hall-of-fame.html:781 +#: i2p2www/pages/site/about/hall-of-fame.html:782 +#: i2p2www/pages/site/about/hall-of-fame.html:783 +#: i2p2www/pages/site/about/hall-of-fame.html:786 +#: i2p2www/pages/site/about/hall-of-fame.html:787 +#: i2p2www/pages/site/about/hall-of-fame.html:788 +#: i2p2www/pages/site/about/hall-of-fame.html:789 +#: i2p2www/pages/site/about/hall-of-fame.html:790 +#: i2p2www/pages/site/about/hall-of-fame.html:792 +#: i2p2www/pages/site/about/hall-of-fame.html:794 +#: i2p2www/pages/site/about/hall-of-fame.html:795 +#: i2p2www/pages/site/about/hall-of-fame.html:796 +#: i2p2www/pages/site/about/hall-of-fame.html:797 +#: i2p2www/pages/site/about/hall-of-fame.html:798 +#: i2p2www/pages/site/about/hall-of-fame.html:799 +#: i2p2www/pages/site/about/hall-of-fame.html:800 +#: i2p2www/pages/site/about/hall-of-fame.html:802 +#: i2p2www/pages/site/about/hall-of-fame.html:803 +#: i2p2www/pages/site/about/hall-of-fame.html:804 +#: i2p2www/pages/site/about/hall-of-fame.html:805 +#: i2p2www/pages/site/about/hall-of-fame.html:806 +#: i2p2www/pages/site/about/hall-of-fame.html:807 +#: i2p2www/pages/site/about/hall-of-fame.html:808 +#: i2p2www/pages/site/about/hall-of-fame.html:809 +#: i2p2www/pages/site/about/hall-of-fame.html:810 +#: i2p2www/pages/site/about/hall-of-fame.html:811 +#: i2p2www/pages/site/about/hall-of-fame.html:812 +#: i2p2www/pages/site/about/hall-of-fame.html:813 +#: i2p2www/pages/site/about/hall-of-fame.html:814 +#: i2p2www/pages/site/about/hall-of-fame.html:815 +#: i2p2www/pages/site/about/hall-of-fame.html:817 +#: i2p2www/pages/site/about/hall-of-fame.html:818 +#: i2p2www/pages/site/about/hall-of-fame.html:819 +#: i2p2www/pages/site/about/hall-of-fame.html:822 +#: i2p2www/pages/site/about/hall-of-fame.html:823 +#: i2p2www/pages/site/about/hall-of-fame.html:826 +#: i2p2www/pages/site/about/hall-of-fame.html:827 +#: i2p2www/pages/site/about/hall-of-fame.html:829 +#: i2p2www/pages/site/about/hall-of-fame.html:830 +#: i2p2www/pages/site/about/hall-of-fame.html:843 +#: i2p2www/pages/site/about/hall-of-fame.html:844 +#: i2p2www/pages/site/about/hall-of-fame.html:845 +#: i2p2www/pages/site/about/hall-of-fame.html:846 +#: i2p2www/pages/site/about/hall-of-fame.html:847 +#: i2p2www/pages/site/about/hall-of-fame.html:848 +#: i2p2www/pages/site/about/hall-of-fame.html:849 +#: i2p2www/pages/site/about/hall-of-fame.html:850 +#: i2p2www/pages/site/about/hall-of-fame.html:851 +#: i2p2www/pages/site/about/hall-of-fame.html:852 +#: i2p2www/pages/site/about/hall-of-fame.html:853 +#: i2p2www/pages/site/about/hall-of-fame.html:854 +#: i2p2www/pages/site/about/hall-of-fame.html:855 +#: i2p2www/pages/site/about/hall-of-fame.html:856 +#: i2p2www/pages/site/about/hall-of-fame.html:857 +#: i2p2www/pages/site/about/hall-of-fame.html:858 +#: i2p2www/pages/site/about/hall-of-fame.html:859 +#: i2p2www/pages/site/about/hall-of-fame.html:860 +#: i2p2www/pages/site/about/hall-of-fame.html:861 +#: i2p2www/pages/site/about/hall-of-fame.html:862 +#: i2p2www/pages/site/about/hall-of-fame.html:863 +#: i2p2www/pages/site/about/hall-of-fame.html:864 +#: i2p2www/pages/site/about/hall-of-fame.html:865 +#: i2p2www/pages/site/about/hall-of-fame.html:866 +#: i2p2www/pages/site/about/hall-of-fame.html:867 +#: i2p2www/pages/site/about/hall-of-fame.html:868 +#: i2p2www/pages/site/about/hall-of-fame.html:869 +#: i2p2www/pages/site/about/hall-of-fame.html:870 +#: i2p2www/pages/site/about/hall-of-fame.html:871 +#: i2p2www/pages/site/about/hall-of-fame.html:872 +#: i2p2www/pages/site/about/hall-of-fame.html:873 +#: i2p2www/pages/site/about/hall-of-fame.html:874 +#: i2p2www/pages/site/about/hall-of-fame.html:875 +#: i2p2www/pages/site/about/hall-of-fame.html:876 +#: i2p2www/pages/site/about/hall-of-fame.html:877 +#: i2p2www/pages/site/about/hall-of-fame.html:879 +#: i2p2www/pages/site/about/hall-of-fame.html:880 +#: i2p2www/pages/site/about/hall-of-fame.html:881 +#: i2p2www/pages/site/about/hall-of-fame.html:882 +#: i2p2www/pages/site/about/hall-of-fame.html:883 +#: i2p2www/pages/site/about/hall-of-fame.html:884 +#: i2p2www/pages/site/about/hall-of-fame.html:885 +#: i2p2www/pages/site/about/hall-of-fame.html:886 +#: i2p2www/pages/site/about/hall-of-fame.html:888 +#: i2p2www/pages/site/about/hall-of-fame.html:889 +#: i2p2www/pages/site/about/hall-of-fame.html:890 +#: i2p2www/pages/site/about/hall-of-fame.html:892 +#: i2p2www/pages/site/about/hall-of-fame.html:893 +#: i2p2www/pages/site/about/hall-of-fame.html:894 +#: i2p2www/pages/site/about/hall-of-fame.html:895 +#: i2p2www/pages/site/about/hall-of-fame.html:896 +#: i2p2www/pages/site/about/hall-of-fame.html:898 +#: i2p2www/pages/site/about/hall-of-fame.html:901 +#: i2p2www/pages/site/about/hall-of-fame.html:902 +#: i2p2www/pages/site/about/hall-of-fame.html:903 +#: i2p2www/pages/site/about/hall-of-fame.html:904 +#: i2p2www/pages/site/about/hall-of-fame.html:905 +#: i2p2www/pages/site/about/hall-of-fame.html:906 +#: i2p2www/pages/site/about/hall-of-fame.html:907 +#: i2p2www/pages/site/about/hall-of-fame.html:908 +#: i2p2www/pages/site/about/hall-of-fame.html:909 +#: i2p2www/pages/site/about/hall-of-fame.html:910 +#: i2p2www/pages/site/about/hall-of-fame.html:911 +#: i2p2www/pages/site/about/hall-of-fame.html:912 +#: i2p2www/pages/site/about/hall-of-fame.html:913 +#: i2p2www/pages/site/about/hall-of-fame.html:914 +#: i2p2www/pages/site/about/hall-of-fame.html:916 +#: i2p2www/pages/site/about/hall-of-fame.html:917 +#: i2p2www/pages/site/about/hall-of-fame.html:918 +#: i2p2www/pages/site/about/hall-of-fame.html:920 +#: i2p2www/pages/site/about/hall-of-fame.html:923 +#: i2p2www/pages/site/about/hall-of-fame.html:924 +#: i2p2www/pages/site/about/hall-of-fame.html:925 +#: i2p2www/pages/site/about/hall-of-fame.html:926 +#: i2p2www/pages/site/about/hall-of-fame.html:927 +#: i2p2www/pages/site/about/hall-of-fame.html:928 +#: i2p2www/pages/site/about/hall-of-fame.html:929 +#: i2p2www/pages/site/about/hall-of-fame.html:930 +#: i2p2www/pages/site/about/hall-of-fame.html:931 +#: i2p2www/pages/site/about/hall-of-fame.html:932 +#: i2p2www/pages/site/about/hall-of-fame.html:933 +#: i2p2www/pages/site/about/hall-of-fame.html:934 +#: i2p2www/pages/site/about/hall-of-fame.html:935 +#: i2p2www/pages/site/about/hall-of-fame.html:936 +#: i2p2www/pages/site/about/hall-of-fame.html:937 +#: i2p2www/pages/site/about/hall-of-fame.html:938 +#: i2p2www/pages/site/about/hall-of-fame.html:939 +#: i2p2www/pages/site/about/hall-of-fame.html:940 +#: i2p2www/pages/site/about/hall-of-fame.html:941 +#: i2p2www/pages/site/about/hall-of-fame.html:943 +#: i2p2www/pages/site/about/hall-of-fame.html:944 +#: i2p2www/pages/site/about/hall-of-fame.html:945 +msgid "General fund" +msgstr "" + +#: i2p2www/pages/site/about/hall-of-fame.html:9 +#: i2p2www/pages/site/about/hall-of-fame.html:12 +#: i2p2www/pages/site/about/hall-of-fame.html:18 +#, python-format +msgid "%(euroval)s € and %(btcval)s BTC" +msgstr "" + +#: i2p2www/pages/site/about/hall-of-fame.html:10 +#, python-format +msgid "%(ltcval)s LTC; and %(xmzval)s XMR" +msgstr "" + +#: i2p2www/pages/site/about/hall-of-fame.html:11 +msgid "Datastorage bounty" +msgstr "" + +#: i2p2www/pages/site/about/hall-of-fame.html:13 +msgid "I2PHex bounty" +msgstr "" + +#: i2p2www/pages/site/about/hall-of-fame.html:14 +#: i2p2www/pages/site/about/hall-of-fame.html:16 +#: i2p2www/pages/site/about/hall-of-fame.html:20 +#, python-format +msgid "%(euroval)s €" +msgstr "" + +#: i2p2www/pages/site/about/hall-of-fame.html:15 +msgid "I2P in debian mirrors" +msgstr "" + +#: i2p2www/pages/site/about/hall-of-fame.html:17 +msgid "Bitcoin client for I2P" +msgstr "" + +#: i2p2www/pages/site/about/hall-of-fame.html:19 +msgid "Unit Tests for I2P router" +msgstr "" + +#: i2p2www/pages/site/about/hall-of-fame.html:21 +msgid "Bounty Robert" +msgstr "" + +#: i2p2www/pages/site/about/hall-of-fame.html:22 +msgid "Bounty Syndie" +msgstr "" + +#: i2p2www/pages/site/about/hall-of-fame.html:23 +msgid "Bounty I2P for CCR Microtic Board" +msgstr "" + +#: i2p2www/pages/site/about/hall-of-fame.html:26 +msgid "Current running costs:" +msgstr "" + +#: i2p2www/pages/site/about/hall-of-fame.html:37 +msgid "Big thanks go to the following people who have donated to I2P!" +msgstr "" + +#: i2p2www/pages/site/about/hall-of-fame.html:38 +#, python-format +msgid "" +"If you have made a donation, please send an email to echelon\n" +"with your name or nick (and optionally homepage) so we can list you here." +msgstr "" + +#: i2p2www/pages/site/about/hall-of-fame.html:43 +msgid "Current monthly subscriptions:" +msgstr "" + +#: i2p2www/pages/site/about/hall-of-fame.html:49 +msgid "2016 donations and costs:" +msgstr "" + +#: i2p2www/pages/site/about/hall-of-fame.html:153 +msgid "2015 donations and costs:" +msgstr "" + +#: i2p2www/pages/site/about/hall-of-fame.html:316 +msgid "2014 donations and costs:" +msgstr "" + +#: i2p2www/pages/site/about/hall-of-fame.html:435 +msgid "2013 donations and costs:" +msgstr "" + +#: i2p2www/pages/site/about/hall-of-fame.html:612 +msgid "2012 donations and costs:" +msgstr "" + +#: i2p2www/pages/site/about/hall-of-fame.html:740 +msgid "2011 donations and costs:" +msgstr "" + +#: i2p2www/pages/site/about/hall-of-fame.html:841 +msgid "Previous to 2011 donations:" +msgstr "" + +#: i2p2www/pages/site/about/intro.html:2 +msgid "Intro" +msgstr "" + +#: i2p2www/pages/site/about/intro.html:4 +msgid "The Invisible Internet Project" +msgstr "The Invisible Internet Project" + +#: i2p2www/pages/site/about/intro.html:5 +#, python-format +msgid "" +"I2P is an anonymous network, exposing a simple layer that applications " +"can \n" +"use to anonymously and securely send messages to each other. The network " +"itself is \n" +"strictly message based (a la IP), but there is a \n" +"library available to allow reliable streaming communication on top of it " +"(a la \n" +"TCP). \n" +"All communication is end to end encrypted (in total there are four layers" +" of \n" +"encryption used when sending a message), and even the end points " +"(\"destinations\") \n" +"are cryptographic identifiers (essentially a pair of public keys)." +msgstr "" + +#: i2p2www/pages/site/about/intro.html:18 +msgid "How does it work?" +msgstr "Hvordan fungerer det?" + +#: i2p2www/pages/site/about/intro.html:20 +#, python-format +msgid "" +"To anonymize the messages sent, each client application has their I2P " +"\"router\"\n" +"build a few inbound and outbound \"tunnels\" - a \n" +"sequence of peers that pass messages in one direction (to and from the " +"client, \n" +"respectively). In turn, when a client wants to send a message to another" +" client, \n" +"the client passes that message out one of their outbound tunnels " +"targeting one of the \n" +"other client's inbound tunnels, eventually reaching the destination. " +"Every \n" +"participant in the network chooses the length of these tunnels, and in " +"doing so, \n" +"makes a tradeoff between anonymity, latency, and throughput according to " +"their \n" +"own needs. The result is that the number of peers relaying each end to " +"end \n" +"message is the absolute minimum necessary to meet both the sender's and " +"the \n" +"receiver's threat model." +msgstr "" + +#: i2p2www/pages/site/about/intro.html:34 +#, python-format +msgid "" +"The first time a client wants to contact another client, they make a " +"query \n" +"against the fully distributed \"network \n" +"database\" - a custom structured \n" +"distributed hash table (DHT) based off the \n" +"Kademlia algorithm. This is done \n" +"to find the other client's inbound tunnels efficiently, but subsequent " +"messages \n" +"between them usually includes that data so no further network database " +"lookups \n" +"are required." +msgstr "" + +#: i2p2www/pages/site/about/intro.html:47 +#, python-format +msgid "More details about how I2P works are available." +msgstr "" + +#: i2p2www/pages/site/about/intro.html:51 +msgid "What can you do with it?" +msgstr "" + +#: i2p2www/pages/site/about/intro.html:53 +#, python-format +msgid "" +"Within the I2P network, applications are not restricted in how they can \n" +"communicate - those that typically use UDP can make use of the base I2P \n" +"functionality, and those that typically use TCP can use the TCP-like " +"streaming\n" +"library. We have a generic TCP/I2P bridge application \n" +"(\"I2PTunnel\") that enables people to " +"forward TCP streams\n" +"into the I2P network as well as to receive streams out of the network and" +" \n" +"forward them towards a specific TCP/IP address." +msgstr "" + +#: i2p2www/pages/site/about/intro.html:63 +#, python-format +msgid "" +"I2PTunnel is currently used to let people run their own anonymous website" +" \n" +"(\"eepsite\") by running a normal webserver and pointing an I2PTunnel " +"'server' \n" +"at it, which people can access anonymously over I2P with a normal web " +"browser \n" +"by running an I2PTunnel HTTP proxy (\"eepproxy\"). In addition, we use " +"the same \n" +"technique to run an anonymous IRC network (where the IRC server is hosted" +" \n" +"anonymously, and standard IRC clients use an I2PTunnel to contact it). " +"There \n" +"are other application development efforts going on as well, such as one " +"to \n" +"build an optimized swarming file transfer application (a la \n" +"BitTorrent), a \n" +"distributed data store (a la Freenet / \n" +"MNet), and a blogging system (a fully \n" +"distributed LiveJournal), but those are \n" +"not ready for use yet." +msgstr "" + +#: i2p2www/pages/site/about/intro.html:82 +#, python-format +msgid "" +"I2P is not inherently an \"outproxy\" network - the client you send a " +"message \n" +"to is the cryptographic identifier, not some IP address, so the message " +"must \n" +"be addressed to someone running I2P. However, it is possible for that " +"client\n" +"to be an outproxy, allowing you to anonymously make use of their Internet" +" \n" +"connection. To demonstrate this, the \"eepproxy\" will accept normal " +"non-I2P \n" +"URLs (e.g. \"http://www.i2p.net\") and forward them to a specific " +"destination\n" +"that runs a squid HTTP proxy, allowing \n" +"simple anonymous browsing of the normal web. Simple outproxies like that" +" are \n" +"not viable in the long run for several reasons (including the cost of " +"running \n" +"one as well as the anonymity and security issues they introduce), but in" +" \n" +"certain circumstances the technique could be appropriate." +msgstr "" + +#: i2p2www/pages/site/about/intro.html:96 +#, python-format +msgid "" +"The I2P development team is an open group, " +"welcome to all \n" +"who are interested in getting involved, and" +" all of \n" +"the code is open source. The core I2P SDK " +"and the \n" +"current router implementation is done in Java (currently working with " +"both \n" +"sun and kaffe, gcj support planned for later), and there is a \n" +"simple socket based API for accessing the network" +" from \n" +"other languages (with a C library available, and both Python and Perl in" +" \n" +"development). The network is actively being developed and has not yet " +"reached \n" +"the 1.0 release, but the current roadmap " +"describes \n" +"our schedule." +msgstr "" + +#: i2p2www/pages/site/about/media.html:2 +msgid "Presentations on I2P" +msgstr "" + +#: i2p2www/pages/site/about/media.html:5 +#, python-format +msgid "" +"Following are links to presentations, videos, and tutorials about I2P. " +"Links to research papers on I2P are available here." +msgstr "" + +#: i2p2www/pages/site/about/media.html:8 +#, python-format +msgid "To request an addition to this page, please send to %(email)s." +msgstr "" + +#: i2p2www/pages/site/about/media.html:11 +msgid "" +"\n" +"Newest links are at the bottom of each section." +msgstr "" + +#: i2p2www/pages/site/about/media.html:16 +msgid "Presentations" +msgstr "" + +#: i2p2www/pages/site/about/media.html:19 +#, python-format +msgid "" +"IIP Presentation at CodeCon\n" +"MP3 audio\n" +"transcript\n" +"Lance James (0x90), February 2002." +msgstr "" + +#: i2p2www/pages/site/about/media.html:27 +#, python-format +msgid "" +"IIP Presentation at ToorCon\n" +"MP3 audio\n" +"slides\n" +"Lance James (0x90), September 2002." +msgstr "" + +#: i2p2www/pages/site/about/media.html:35 +#, python-format +msgid "" +"To Be or I2P\n" +"(Youtube Video)\n" +"An introduction into anonymous communication with I2P.\n" +"To Be or I2P (PDF presentation),\n" +"Jens Kubieziel, 24C3 Berlin, December 28, 2007." +msgstr "" + +#: i2p2www/pages/site/about/media.html:44 +#, python-format +msgid "" +"Video of I2P talk at Chemnitz Linux Tag,\n" +"Lars Schimmer,\n" +"March 14-15, 2009" +msgstr "" + +#: i2p2www/pages/site/about/media.html:50 +#, python-format +msgid "" +"HOPE New York July 17, 2010 - Brief overview of I2P by zzz, at the end of" +" Adrian Hong's talk\n" +"\"Hackers for Human Rights\".\n" +"MP3 audio" +msgstr "" + +#: i2p2www/pages/site/about/media.html:56 +#, python-format +msgid "" +"Into the I2P Darknet: Welcome to Cipherspace\n" +"Adrian Crenshaw. Schmoocon Firetalk, January 2011" +msgstr "" + +#: i2p2www/pages/site/about/media.html:61 +#, python-format +msgid "" +"Using techhnology to advance liberty\n" +"(Youtube Video)\n" +"Eric Johnson.\n" +"Agora I/O Unconference, March 27," +" 2011.\n" +"I2P covered from 10:00 to 20:00 in the video." +msgstr "" + +#: i2p2www/pages/site/about/media.html:69 +#, python-format +msgid "" +"The Bright side of darknets, FOSSCOMM Patras May " +"2011" +msgstr "" + +#: i2p2www/pages/site/about/media.html:73 +#, python-format +msgid "" +"Common Darknet Weaknesses\n" +"(Youtube Video)\n" +"Adrian Crenshaw, AIDE, July " +"11-15, 2011." +msgstr "" + +#: i2p2www/pages/site/about/media.html:79 +#, python-format +msgid "" +"I2P / Tor Workshop Notes\n" +"Adrian Crenshaw. DEF CON 19, Las Vegas, August 6, 2011." +msgstr "" + +#: i2p2www/pages/site/about/media.html:84 +#, python-format +msgid "" +"Cipherspaces/Darknets: An Overview Of Attack " +"Strategies -\n" +"DEF CON Live version (Youtube Video),\n" +"\"Studio\" version (Youtube Video),\n" +"Slides (ppt)\n" +"Adrian Crenshaw. DEF CON 19, Las Vegas, August 7, 2011." +msgstr "" + +#: i2p2www/pages/site/about/media.html:94 +msgid "" +"Modern cipherspace ecosystems, 0x375 " +"0x06 (Thessaloniki Tech Talk Sessions), November 4, 2011." +msgstr "" + +#: i2p2www/pages/site/about/media.html:98 +#, python-format +msgid "" +"I2P - The Anonymous Network\n" +"(Youtube Video)\n" +"Blair Dick, University of Abertay, Dundee Ethical Hacking Society, " +"January 25, 2012." +msgstr "" + +#: i2p2www/pages/site/about/media.html:104 +#, python-format +msgid "" +"I2PCon 2015\n" +"Toronto, August 15-16, 2015" +msgstr "" + +#: i2p2www/pages/site/about/media.html:109 +#, python-format +msgid "" +"I2P - Still alive! (pdf)\n" +"(video)\n" +"echelon, 32C3 (You Broke the Internet Assembly), Hamburg, December 28, " +"2015" +msgstr "" + +#: i2p2www/pages/site/about/media.html:116 +#, python-format +msgid "" +"Replacing Weary Crypto: Upgrading the I2P network with stronger " +"primitives\n" +"(pdf)\n" +"(odp)\n" +"str4d, Real World Crypto, Stanford, January 8, 2016" +msgstr "" + +#: i2p2www/pages/site/about/media.html:124 +#, python-format +msgid "" +"Onions and Garlic: the protocols of I2P\n" +"(pdf)\n" +"(odp)\n" +"str4d, COMPSCI 460: Computer Networking, University of Wisconsin " +"Whitewater, February 17, 2016" +msgstr "" + +#: i2p2www/pages/site/about/media.html:134 +msgid "Tutorials" +msgstr "" + +#: i2p2www/pages/site/about/media.html:137 +#, python-format +msgid "" +"I2P Windows Tutorial\n" +"(Youtube Video)\n" +"This guide will show you how to install I2P in Windows XP.\n" +"By Telecomix" +msgstr "" + +#: i2p2www/pages/site/about/media.html:144 +#, python-format +msgid "" +"I2P Debian Tutorial\n" +"(Youtube Video)\n" +"This will guide you through how to install I2P on a Debian Linux System.\n" +"By Telecomix" +msgstr "" + +#: i2p2www/pages/site/about/media.html:151 +#, python-format +msgid "" +"How to set up anonymous site in I2P\n" +"(Youtube Video)\n" +"How to set up an anonymous web site in I2P.\n" +"By Telecomix" +msgstr "" + +#: i2p2www/pages/site/about/media.html:158 +#, python-format +msgid "" +"I2P Tutorial Mac OS X\n" +"(Youtube Video)\n" +"A tutorial on how to run i2p on Mac OS X and how to connect to " +"irc.telecomix.i2p.\n" +"By Telecomix" +msgstr "" + +#: i2p2www/pages/site/about/media.html:165 +#, python-format +msgid "" +"Felix Atari explains the basic principles of I2P" +"\n" +"(Youtube Video)\n" +"Agent Felix Atari of the Telecomix Crypto Munitions Bureau.\n" +"By Telecomix" +msgstr "" + +#: i2p2www/pages/site/about/media.html:172 +#, python-format +msgid "" +"How to get onto I2P, the anonymous P2P Darknet " +"(Windows Install)\n" +"(Youtube Video)\n" +"This tutorial shows how to install and configure software needed to " +"access I2P." +msgstr "" + +#: i2p2www/pages/site/about/media.html:178 +#, python-format +msgid "" +"How to connect to I2P\n" +"(Youtube Video)\n" +"How to install I2P on Ubuntu." +msgstr "" + +#: i2p2www/pages/site/about/media.html:184 +#, python-format +msgid "" +"Installing the I2P darknet software in Linux\n" +"(Video)\n" +"Adrian Crenshaw.\n" +"January 2011" +msgstr "" + +#: i2p2www/pages/site/about/media.html:191 +#, python-format +msgid "" +"Short garlic routing animation\n" +"(Youtube Video)\n" +"Adrian Crenshaw.\n" +msgstr "" + +#: i2p2www/pages/site/about/media.html:199 +msgid "Articles and Interviews" +msgstr "" + +#: i2p2www/pages/site/about/media.html:202 +#, python-format +msgid "" +"Lance James (0x90) Interviewed by DistributedCity\n" +"Part 1\n" +"Part 2\n" +"July 26, 2002." +msgstr "" + +#: i2p2www/pages/site/about/media.html:210 +#, python-format +msgid "" +"Lance James (0x90) Interviewed by El País\n" +"(original in Spanish)\n" +"English translation\n" +"October 31, 2002." +msgstr "" + +#: i2p2www/pages/site/about/media.html:217 +#, python-format +msgid "" +"2003 Business Week article referencing " +"invisiblenet\n" +"September 14, 2003." +msgstr "" + +#: i2p2www/pages/site/about/media.html:222 +#, python-format +msgid "" +"Netzwelt.de article about being anonymous in the " +"Internet\n" +"(German)\n" +"November 2007." +msgstr "" + +#: i2p2www/pages/site/about/media.html:228 +#, python-format +msgid "" +"zzz interviewed by gulli.com\n" +"March 2009\n" +"German translation" +msgstr "" + +#: i2p2www/pages/site/about/media.html:235 +#, python-format +msgid "" +"zzz interviewed on the InfoSec Daily Podcast Ep. 454 " +"(mp3)\n" +"August 18, 2011\n" +"(link dead, seeded inside I2P at postman's" +" tracker)" +msgstr "" + +#: i2p2www/pages/site/about/media.html:241 +#, python-format +msgid "" +"I2P - Anonymity for the Masses,\n" +"Jonathan Cox,\n" +"November 11, 2011." +msgstr "" + +#: i2p2www/pages/site/about/media.html:247 +#, python-format +msgid "" +"zzz and Lance James interviewed on the InfoSec Daily " +"Podcast Ep. 596 (mp3)\n" +"February 16, 2012\n" +"(link dead, seeded inside I2P at postman's" +" tracker)" +msgstr "" + +#: i2p2www/pages/site/about/media.html:253 +#, python-format +msgid "" +"Jeff and Str4d interviewed on the Brakeing Down " +"Security Podcast Ep. 2015-010 (mp3)\n" +"Part 1, February 28, 2015" +msgstr "" + +#: i2p2www/pages/site/about/media.html:258 +#, python-format +msgid "" +"Jeff and Str4d interviewed on the Brakeing Down " +"Security Podcast Ep. 2015-011 (mp3)\n" +"Part 2, March 6, 2015" +msgstr "" + +#: i2p2www/pages/site/about/media.html:265 +msgid "Other" +msgstr "Annet" + +#: i2p2www/pages/site/about/media.html:268 +msgid "" +"I2P mentioned in Netflix's \"House of Cards\" Season 2 Episode 2,\n" +"February 14, 2014" +msgstr "" + +#: i2p2www/pages/site/about/team.html:2 +msgid "I2P Project Members" +msgstr "" + +#: i2p2www/pages/site/about/team.html:5 +#, python-format +msgid "" +"We are a small group of people spread around several continents, working " +"to\n" +"advance different aspects of the project and discussing the design of the" +"\n" +"network.\n" +"Get involved!" +msgstr "" + +#: i2p2www/pages/site/about/team.html:14 +msgid "Admin" +msgstr "" + +#: i2p2www/pages/site/about/team.html:15 +msgid "Project Manager" +msgstr "" + +#: i2p2www/pages/site/about/team.html:17 +msgid "point of contact of last resort" +msgstr "" + +#: i2p2www/pages/site/about/team.html:20 +msgid "Treasurer" +msgstr "" + +#: i2p2www/pages/site/about/team.html:22 +msgid "manage donations / accounts / bounties" +msgstr "" + +#: i2p2www/pages/site/about/team.html:25 +msgid "PR manager" +msgstr "" + +#: i2p2www/pages/site/about/team.html:27 +msgid "press contact, manages public relations and affairs" +msgstr "" + +#: i2p2www/pages/site/about/team.html:30 +msgid "Assistant PR manager" +msgstr "" + +#: i2p2www/pages/site/about/team.html:32 +msgid "Public speaking, public relations assistance" +msgstr "" + +#: i2p2www/pages/site/about/team.html:35 +msgid "Technical PR advisor" +msgstr "" + +#: i2p2www/pages/site/about/team.html:37 +msgid "Public relations assistance" +msgstr "" + +#: i2p2www/pages/site/about/team.html:40 +#, python-format +msgid "Forum admin" +msgstr "" + +#: i2p2www/pages/site/about/team.html:42 +msgid "manage the public user forum" +msgstr "" + +#: i2p2www/pages/site/about/team.html:45 +msgid "Download mirrors admin" +msgstr "" + +#: i2p2www/pages/site/about/team.html:47 +msgid "manage the mirrors for the download files" +msgstr "" + +#: i2p2www/pages/site/about/team.html:50 +msgid "Website mirrors admin" +msgstr "" + +#: i2p2www/pages/site/about/team.html:51 i2p2www/pages/site/about/team.html:81 +#: i2p2www/pages/site/about/team.html:86 i2p2www/pages/site/about/team.html:91 +#: i2p2www/pages/site/about/team.html:101 +#: i2p2www/pages/site/about/team.html:121 +#: i2p2www/pages/site/about/team.html:126 +#: i2p2www/pages/site/about/team.html:166 +#: i2p2www/pages/site/about/team.html:183 +#: i2p2www/pages/site/about/team.html:188 +#: i2p2www/pages/site/about/team.html:198 +#: i2p2www/pages/site/about/team.html:203 +#: i2p2www/pages/site/about/team.html:213 +#: i2p2www/pages/site/about/team.html:218 +#: i2p2www/pages/site/about/team.html:223 +#: i2p2www/pages/site/about/team.html:233 +#: i2p2www/pages/site/about/team.html:238 +#: i2p2www/pages/site/about/team.html:285 +msgid "vacant" +msgstr "" + +#: i2p2www/pages/site/about/team.html:52 +msgid "manage the mirrors for the website" +msgstr "" + +#: i2p2www/pages/site/about/team.html:55 +#, python-format +msgid "Monotone guru" +msgstr "" + +#: i2p2www/pages/site/about/team.html:57 +msgid "manage the public monotone repositories" +msgstr "" + +#: i2p2www/pages/site/about/team.html:60 +msgid "Packager; Linux" +msgstr "" + +#: i2p2www/pages/site/about/team.html:62 +msgid "Linux (Debian/Ubuntu) distribution packager" +msgstr "" + +#: i2p2www/pages/site/about/team.html:65 +msgid "Packager; Windows" +msgstr "" + +#: i2p2www/pages/site/about/team.html:67 +msgid "Windows installer packager" +msgstr "" + +#: i2p2www/pages/site/about/team.html:70 +msgid "Release Manager" +msgstr "" + +#: i2p2www/pages/site/about/team.html:72 +msgid "Builds and signs the releases" +msgstr "" + +#: i2p2www/pages/site/about/team.html:75 +msgid "Release Manager Alternates" +msgstr "" + +#: i2p2www/pages/site/about/team.html:77 +msgid "Backup release managers" +msgstr "" + +#: i2p2www/pages/site/about/team.html:80 +msgid "Tails Maintainer" +msgstr "" + +#: i2p2www/pages/site/about/team.html:82 +msgid "Maintain the I2P package in Tails" +msgstr "" + +#: i2p2www/pages/site/about/team.html:85 +msgid "CI admin" +msgstr "" + +#: i2p2www/pages/site/about/team.html:87 +msgid "Maintain the Continuous Integration infrastructure" +msgstr "" + +#: i2p2www/pages/site/about/team.html:90 +msgid "Update admin" +msgstr "" + +#: i2p2www/pages/site/about/team.html:92 +msgid "Monitors and recruits in-network update hosts" +msgstr "" + +#: i2p2www/pages/site/about/team.html:95 +msgid "Reseed admin" +msgstr "" + +#: i2p2www/pages/site/about/team.html:97 +msgid "Monitors, advises and recruits reseed hosts" +msgstr "" + +#: i2p2www/pages/site/about/team.html:100 +msgid "Security expert" +msgstr "" + +#: i2p2www/pages/site/about/team.html:102 +msgid "threat model / crypto expert" +msgstr "" + +#: i2p2www/pages/site/about/team.html:107 +msgid "Manage the project bug tracker" +msgstr "" + +#: i2p2www/pages/site/about/team.html:112 +#: i2p2www/pages/site/about/team.html:132 +msgid "manage the public project webservers" +msgstr "" + +#: i2p2www/pages/site/about/team.html:115 +msgid "Translation admins" +msgstr "" + +#: i2p2www/pages/site/about/team.html:120 +msgid "User Advocate" +msgstr "" + +#: i2p2www/pages/site/about/team.html:122 +msgid "gather, prioritize, advocate for user needs" +msgstr "" + +#: i2p2www/pages/site/about/team.html:125 +msgid "Web Designer" +msgstr "" + +#: i2p2www/pages/site/about/team.html:127 +msgid "manage the public project website content design" +msgstr "" + +#: i2p2www/pages/site/about/team.html:130 +#, python-format +msgid "Webserver admin" +msgstr "" + +#: i2p2www/pages/site/about/team.html:135 +#, python-format +msgid "Website admin" +msgstr "" + +#: i2p2www/pages/site/about/team.html:137 +msgid "manage the public project website content" +msgstr "" + +#: i2p2www/pages/site/about/team.html:140 +msgid "News Admin" +msgstr "" + +#: i2p2www/pages/site/about/team.html:142 +msgid "manage router console news feed" +msgstr "" + +#: i2p2www/pages/site/about/team.html:145 +msgid "Backup News Admin" +msgstr "" + +#: i2p2www/pages/site/about/team.html:147 +msgid "manage the backup news feed" +msgstr "" + +#: i2p2www/pages/site/about/team.html:165 +msgid "Director of passion" +msgstr "" + +#: i2p2www/pages/site/about/team.html:167 +msgid "community motivator" +msgstr "" + +#: i2p2www/pages/site/about/team.html:171 +msgid "Dev" +msgstr "" + +#: i2p2www/pages/site/about/team.html:172 +msgid "Core Lead" +msgstr "" + +#: i2p2www/pages/site/about/team.html:174 +msgid "lead dev for the SDK and router" +msgstr "" + +#: i2p2www/pages/site/about/team.html:177 +#, python-format +msgid "I2P mail lead" +msgstr "" + +#: i2p2www/pages/site/about/team.html:179 +msgid "organize and develop the i2p mail system" +msgstr "" + +#: i2p2www/pages/site/about/team.html:182 +#, python-format +msgid "I2Host lead" +msgstr "" + +#: i2p2www/pages/site/about/team.html:184 +msgid "I2Host addressbook application" +msgstr "" + +#: i2p2www/pages/site/about/team.html:187 +#, python-format +msgid "BOB lead" +msgstr "" + +#: i2p2www/pages/site/about/team.html:189 +msgid "Basic Open Bridge" +msgstr "" + +#: i2p2www/pages/site/about/team.html:192 +#, python-format +msgid "I2P-Bote lead" +msgstr "" + +#: i2p2www/pages/site/about/team.html:194 +msgid "I2P-Bote plugin" +msgstr "" + +#: i2p2www/pages/site/about/team.html:197 +#, python-format +msgid "Robert lead" +msgstr "" + +#: i2p2www/pages/site/about/team.html:199 +msgid "Robert BitTorrent client" +msgstr "" + +#: i2p2www/pages/site/about/team.html:202 +#, python-format +msgid "I2Phex lead" +msgstr "" + +#: i2p2www/pages/site/about/team.html:204 +msgid "I2Phex Gnutella client" +msgstr "" + +#: i2p2www/pages/site/about/team.html:207 +#, python-format +msgid "I2PSnark lead" +msgstr "" + +#: i2p2www/pages/site/about/team.html:209 +msgid "Maintains the integrated Bittorrent client" +msgstr "" + +#: i2p2www/pages/site/about/team.html:212 +#, python-format +msgid "iMule lead" +msgstr "" + +#: i2p2www/pages/site/about/team.html:214 +msgid "eMule client over I2P" +msgstr "" + +#: i2p2www/pages/site/about/team.html:217 +#, python-format +msgid "Syndie lead" +msgstr "" + +#: i2p2www/pages/site/about/team.html:219 +msgid "Syndie development" +msgstr "" + +#: i2p2www/pages/site/about/team.html:222 +msgid "Susimail lead" +msgstr "" + +#: i2p2www/pages/site/about/team.html:224 +msgid "Susimail development" +msgstr "" + +#: i2p2www/pages/site/about/team.html:227 +msgid "Android lead" +msgstr "" + +#: i2p2www/pages/site/about/team.html:229 +msgid "Android development" +msgstr "" + +#: i2p2www/pages/site/about/team.html:232 +msgid "Console" +msgstr "Konsoll" + +#: i2p2www/pages/site/about/team.html:234 +msgid "Router console HTML/CSS design" +msgstr "" + +#: i2p2www/pages/site/about/team.html:237 +msgid "SAM" +msgstr "" + +#: i2p2www/pages/site/about/team.html:239 +msgid "SAM maintainer" +msgstr "" + +#: i2p2www/pages/site/about/team.html:242 +msgid "I2Pd lead" +msgstr "" + +#: i2p2www/pages/site/about/team.html:244 +#: i2p2www/pages/site/about/team.html:249 +msgid "C++ Router" +msgstr "" + +#: i2p2www/pages/site/about/team.html:247 +msgid "I2Pd Assistant lead" +msgstr "" + +#: i2p2www/pages/site/about/team.html:252 +msgid "Translators" +msgstr "" + +#: i2p2www/pages/site/about/team.html:253 +msgid "many many people!" +msgstr "" + +#: i2p2www/pages/site/about/team.html:258 +msgid "Contributors" +msgstr "" + +#: i2p2www/pages/site/about/team.html:260 +msgid "fire2pe dev, console enhancements" +msgstr "" + +#: i2p2www/pages/site/about/team.html:264 +msgid "desktopgui, dijjer port" +msgstr "" + +#: i2p2www/pages/site/about/team.html:268 +msgid "Debian/Ubuntu Packager and PPA maintainer" +msgstr "" + +#: i2p2www/pages/site/about/team.html:272 +msgid "Routerconsole backend and UI work, website revamp, unit tests work" +msgstr "" + +#: i2p2www/pages/site/about/team.html:276 +msgid "The improved WSGI reseed script" +msgstr "" + +#: i2p2www/pages/site/about/team.html:280 +msgid "" +"The ICToopie twist of itoopie (the new color mix for\n" +" Purple I2P)" +msgstr "" + +#: i2p2www/pages/site/about/team.html:286 +msgid "Help needed on many fronts!" +msgstr "" + +#: i2p2www/pages/site/about/team.html:290 +msgid "Past contributors" +msgstr "" + +#: i2p2www/pages/site/about/team.html:292 +msgid "I2PTunnel development, ministreaming library" +msgstr "" + +#: i2p2www/pages/site/about/team.html:296 +msgid "Project lead, Syndie lead" +msgstr "" + +#: i2p2www/pages/site/about/team.html:300 +msgid "Project lead, Syndie lead, I2Phex, support guru" +msgstr "" + +#: i2p2www/pages/site/about/team.html:304 +msgid "iMule lead" +msgstr "" + +#: i2p2www/pages/site/about/team.html:308 +#: i2p2www/pages/site/about/team.html:312 +#: i2p2www/pages/site/about/team.html:316 +msgid "I2Phex work" +msgstr "" + +#: i2p2www/pages/site/about/team.html:320 +msgid "Python SAM library, attack simulations" +msgstr "" + +#: i2p2www/pages/site/about/team.html:324 +msgid "i2pmail development" +msgstr "" + +#: i2p2www/pages/site/about/team.html:328 +msgid "Syndie help" +msgstr "" + +#: i2p2www/pages/site/about/team.html:332 +msgid "i2p mail,susimail and susidns apps" +msgstr "" + +#: i2p2www/pages/site/about/team.html:336 +msgid "I2Phex (port of Phex to I2P)" +msgstr "" + +#: i2p2www/pages/site/about/team.html:340 +msgid "addressbook,i2p-bt,syndie client" +msgstr "" + +#: i2p2www/pages/site/about/team.html:344 +msgid "organize and develop the i2p-bt BitTorrent port" +msgstr "" + +#: i2p2www/pages/site/about/team.html:348 +msgid "addressbook, i2p-bt, syndie client development" +msgstr "" + +#: i2p2www/pages/site/about/team.html:352 +msgid "encryption and signature routines, I2PIM" +msgstr "" + +#: i2p2www/pages/site/about/team.html:356 +msgid "SAM jython code, work on stasher (DHT) and v2v (VoI2P)" +msgstr "" + +#: i2p2www/pages/site/about/team.html:360 +msgid "installer, systray, bogobot" +msgstr "" + +#: i2p2www/pages/site/about/team.html:364 +msgid "jbigi development, wiki migration, doc cleanup" +msgstr "" + +#: i2p2www/pages/site/about/team.html:368 +msgid "java debugging and client development on I2PTunnel and the router console" +msgstr "" + +#: i2p2www/pages/site/about/team.html:372 +msgid "SAM perl module" +msgstr "" + +#: i2p2www/pages/site/about/team.html:376 +msgid "i2psnark work" +msgstr "" + +#: i2p2www/pages/site/about/team.html:380 +msgid "java cleanup" +msgstr "" + +#: i2p2www/pages/site/about/team.html:384 +msgid "docs. wiki migration" +msgstr "" + +#: i2p2www/pages/site/about/team.html:388 +msgid "translations into French" +msgstr "" + +#: i2p2www/pages/site/about/team.html:392 +msgid "C port of jcpuid" +msgstr "" + +#: i2p2www/pages/site/about/team.html:396 +msgid "C# SAM library, pants, fortuna integration" +msgstr "" + +#: i2p2www/pages/site/about/team.html:400 +msgid "libSAM" +msgstr "" + +#: i2p2www/pages/site/about/team.html:404 +#: i2p2www/pages/site/about/team.html:408 +msgid "i2p-bt tracker development" +msgstr "" + +#: i2p2www/pages/site/about/team.html:412 +msgid "Console and website themes" +msgstr "" + +#: i2p2www/pages/site/about/team.html:442 +msgid "… and many others" +msgstr "" + +#: i2p2www/pages/site/about/i2pcon/2015.html:6 +msgid "" +"I2PCon 2015 was the first event of its kind. It had two short-term goals." +"\n" +"First, to provide the general public with an event where knowledge about " +"privacy could be obtained.\n" +"Second, to further the I2P project and its community with technical " +"discussions\n" +"about cryptography, anonymity and I2P-centric topics." +msgstr "" + +#: i2p2www/pages/site/about/i2pcon/2015.html:15 +msgid "" +"A a larger and more long-term goal of this event was to build a\n" +"commnutiy of privacy-conscious individuals. By connecting people who " +"recognize\n" +"the importance of privacy, we wanted to provide a forum where this " +"community can grow." +msgstr "" + +#: i2p2www/pages/site/about/i2pcon/2015.html:23 +msgid "" +"The idea for this event was first spawned by our wonderful friends at\n" +"Toronto Crypto.\n" +"The venue was provided by Hacklab.to." +"\n" +"The marketing was spearheaded by @YrB1rd and Siew.\n" +"Without them this event would not have been possible." +msgstr "" + +#: i2p2www/pages/site/about/i2pcon/2015.html:32 +msgid "Slides and Video" +msgstr "" + +#: i2p2www/pages/site/about/i2pcon/2015.html:34 +msgid "Slides are also available as an in-I2P torrent." +msgstr "" + +#: i2p2www/pages/site/about/i2pcon/2015.html:41 +msgid "Note: Video links will be posted as they become available." +msgstr "" + +#: i2p2www/pages/site/about/i2pcon/2015.html:44 +msgid "" +"Note that in-I2P torrents may also be available on the clearnet due to " +"bridging by Vuze clients." +msgstr "" + +#: i2p2www/pages/site/about/i2pcon/2015.html:50 +msgid "Licenses" +msgstr "Lisenser" + +#: i2p2www/pages/site/about/i2pcon/2015.html:52 +msgid "All videos are by z3r0fox." +msgstr "" + +#: i2p2www/pages/site/about/i2pcon/2015.html:56 +msgid "License" +msgstr "Lisens" + +#: i2p2www/pages/site/about/i2pcon/2015.html:60 +msgid "Slides by psi: Public domain." +msgstr "" + +#: i2p2www/pages/site/about/i2pcon/2015.html:65 +msgid "Slides by str4d and zzz:" +msgstr "" + +#: i2p2www/pages/site/about/i2pcon/2015.html:71 +msgid "Slides by others: Contact the author for license information." +msgstr "" + +#: i2p2www/pages/site/about/i2pcon/2015.html:77 +msgid "Speakers" +msgstr "" + +#: i2p2www/pages/site/about/i2pcon/2015.html:79 +msgid "" +"Colin Mahns has a strong interest in the use of anonymity and encryption " +"technology to help preserve human rights in the digital age." +msgstr "" + +#: i2p2www/pages/site/about/i2pcon/2015.html:85 +msgid "" +"David Dagon is a postdoc researcher at Georgia Tech focused on botnets, " +"malware, network security, and DNS.\n" +"His interest in I2P is centered on preserving user privacy, autonomous " +"filtering, and anti-abuse." +msgstr "" + +#: i2p2www/pages/site/about/i2pcon/2015.html:89 +#: i2p2www/pages/site/about/i2pcon/2015.html:105 +msgid "More info" +msgstr "" + +#: i2p2www/pages/site/about/i2pcon/2015.html:92 +msgid "J is the head of Toronto Crypto." +msgstr "" + +#: i2p2www/pages/site/about/i2pcon/2015.html:98 +msgid "" +"Lance James is the founder of the Invisibile IRC Project, the predecessor" +" to I2P, back in 2002.\n" +"He founded his own cyber threat intelligence company in 2003.\n" +"He's been focused on network security, malware research, and information " +"security ever since.\n" +"During 2011-2013, he was Director of Threat Intelligence for The " +"Vigilant, which was acquired by Deloitte in 2013.\n" +"He recently left Deloitte to do consulting through his company The James " +"Group." +msgstr "" + +#: i2p2www/pages/site/about/i2pcon/2015.html:109 +msgid "Nicholas D. is a member of Hacklab Toronto." +msgstr "" + +#: i2p2www/pages/site/about/i2pcon/2015.html:115 +msgid "" +"Nicholas Johnston is a Professor of Information Security in Sheridan " +"College's School of Applied Computing in the InfoSec Bachelor's degree " +"program.\n" +"His previous professional career was in digital forensics and " +"investigations.\n" +"He is also a contractor specializing in incident response.\n" +"His research areas include secure software development and data analytics." +msgstr "" + +#: i2p2www/pages/site/about/i2pcon/2015.html:124 +msgid "Psi is an I2P developer." +msgstr "" + +#: i2p2www/pages/site/about/i2pcon/2015.html:130 +msgid "Str4d is an I2P developer." +msgstr "" + +#: i2p2www/pages/site/about/i2pcon/2015.html:136 +msgid "Zzz is an I2P developer." +msgstr "" + +#: i2p2www/pages/site/about/i2pcon/2015.html:143 +msgid "Press" +msgstr "" + +#: i2p2www/pages/site/about/i2pcon/2015.html:146 +msgid "Toronto Star article on Nicholas Johnston's talk" +msgstr "" + +#: i2p2www/pages/site/about/i2pcon/2015.html:152 +msgid "Day 1" +msgstr "" + +#: i2p2www/pages/site/about/i2pcon/2015.html:155 +#: i2p2www/pages/site/about/i2pcon/2015.html:235 +msgid "Talk" +msgstr "" + +#: i2p2www/pages/site/about/i2pcon/2015.html:156 +#: i2p2www/pages/site/about/i2pcon/2015.html:236 +msgid "Presenter" +msgstr "" + +#: i2p2www/pages/site/about/i2pcon/2015.html:157 +#: i2p2www/pages/site/about/i2pcon/2015.html:237 +msgid "Video" +msgstr "" + +#: i2p2www/pages/site/about/i2pcon/2015.html:158 +#: i2p2www/pages/site/about/i2pcon/2015.html:238 +msgid "Slides" +msgstr "" + +#: i2p2www/pages/site/about/i2pcon/2015.html:232 +msgid "Day 2" +msgstr "" + +#: i2p2www/pages/site/about/i2pcon/index.html:4 +msgid "" +"The first conference dedicated to I2P was held in Toronto on August " +"15-16, 2015.\n" +"See the link below for more information and links to slides and videos.\n" +"We hope to host another conference in Toronto in Summer 2016." +msgstr "" + +#: i2p2www/pages/site/about/i2pcon/index.html:10 +msgid "Past years" +msgstr "" + +#: i2p2www/pages/site/about/performance/future.html:2 +msgid "Future Performance Improvements" +msgstr "" + +#: i2p2www/pages/site/about/performance/future.html:3 +msgid "August 2010" +msgstr "" + +#: i2p2www/pages/site/about/performance/future.html:7 +msgid "" +"There are a few major techniques that can be done to improve the " +"perceived\n" +"performance of I2P - some of the following are CPU related, others " +"bandwidth\n" +"related, and others still are protocol related. However, all of those\n" +"dimensions affect the latency, throughput, and perceived performance of " +"the\n" +"network, as they reduce contention for scarce resources. This list is of" +" course\n" +"not comprehensive, but it does cover the major ones that are seen." +msgstr "" + +#: i2p2www/pages/site/about/performance/future.html:15 +#: i2p2www/pages/site/about/performance/index.html:106 +#, python-format +msgid "" +"For past performance improvements see the \n" +"Performance History." +msgstr "" + +#: i2p2www/pages/site/about/performance/future.html:20 +msgid "Better peer profiling and selection" +msgstr "" + +#: i2p2www/pages/site/about/performance/future.html:21 +#, python-format +msgid "" +"Probably one of the most important parts of getting faster performance " +"will\n" +"be improving how routers choose the peers that they build their tunnels " +"through\n" +"- making sure they don't use peers with slow links or ones with fast " +"links that\n" +"are overloaded, etc. In addition, we've got to make sure we don't expose" +"\n" +"ourselves to a Sybil attack\n" +"from a powerful adversary with lots of fast machines." +msgstr "" + +#: i2p2www/pages/site/about/performance/future.html:30 +msgid "Network database tuning" +msgstr "" + +#: i2p2www/pages/site/about/performance/future.html:31 +msgid "" +"We're going to want to be more efficient with the network database's " +"healing\n" +"and maintenance algorithms - rather than constantly explore the keyspace " +"for new\n" +"peers - causing a significant number of network messages and router load " +"- we\n" +"can slow down or even stop exploring until we detect that there's " +"something new\n" +"worth finding (e.g. decay the exploration rate based upon the last time " +"someone\n" +"gave us a reference to someone we had never heard of). We can also do " +"some\n" +"tuning on what we actually send - how many peers we bounce back (or even " +"if we\n" +"bounce back a reply), as well as how many concurrent searches we perform." +msgstr "" + +#: i2p2www/pages/site/about/performance/future.html:42 +msgid "Session Tag Tuning and Improvements" +msgstr "" + +#: i2p2www/pages/site/about/performance/future.html:43 +#, python-format +msgid "" +"The way the ElGamal/AES+SessionTag " +"algorithm\n" +"works is by managing a set of random one-time-use 32 byte arrays, and " +"expiring\n" +"them if they aren't used quickly enough. If we expire them too soon, " +"we're\n" +"forced to fall back on a full (expensive) ElGamal encryption, but if we " +"don't\n" +"expire them quickly enough, we've got to reduce their quantity so that we" +" don't\n" +"run out of memory (and if the recipient somehow gets corrupted and loses " +"some\n" +"tags, even more encryption failures may occur prior to detection). With " +"some\n" +"more active detection and feedback driven algorithms, we can safely and " +"more\n" +"efficiently tune the lifetime of the tags, replacing the ElGamal " +"encryption with\n" +"a trivial AES operation." +msgstr "" + +#: i2p2www/pages/site/about/performance/future.html:55 +#, python-format +msgid "" +"Additional ideas for improving Session Tag delivery are described on the\n" +"ElGamal/AES+SessionTag page." +msgstr "" + +#: i2p2www/pages/site/about/performance/future.html:61 +msgid "Migrate sessionTag to synchronized PRNG" +msgstr "" + +#: i2p2www/pages/site/about/performance/future.html:62 +#, python-format +msgid "" +"Right now, our ElGamal/AES+SessionTag \n" +"algorithm works by tagging each encrypted message with a unique random \n" +"32 byte nonce (a \"session tag\"), identifying that message as being " +"encrypted \n" +"with the associated AES session's key. This prevents peers from " +"distinguishing \n" +"messages that are part of the same session, since each message has a " +"completely \n" +"new random tag. To accomplish this, every few messages bundle a whole \n" +"new set of session tags within the encrypted message itself, " +"transparently \n" +"delivering a way to identify future messages. We then have to keep track" +" \n" +"of what messages are successfully delivered so that we know what tags \n" +"we may use." +msgstr "" + +#: i2p2www/pages/site/about/performance/future.html:74 +msgid "" +"This works fine and is fairly robust, however it is inefficient in terms" +" \n" +"of bandwidth usage, as it requires the delivery of these tags ahead of \n" +"time (and not all tags may be necessary, or some may be wasted, due to \n" +"their expiration). On average though, predelivering the session tag costs" +" \n" +"32 bytes per message (the size of a tag). As Taral suggested though, that" +" \n" +"size can be avoided by replacing the delivery of the tags with a " +"synchronized \n" +"PRNG - when a new session is established (through an ElGamal encrypted \n" +"block), both sides seed a PRNG for use and generate the session tags on \n" +"demand (with the recipient precalculating the next few possible values \n" +"to handle out of order delivery)." +msgstr "" + +#: i2p2www/pages/site/about/performance/future.html:87 +msgid "Longer lasting tunnels" +msgstr "" + +#: i2p2www/pages/site/about/performance/future.html:88 +msgid "" +"The current default tunnel duration of 10 minutes is fairly arbitrary, " +"though\n" +"it \"feels okay\". Once we've got tunnel healing code and more effective" +" failure\n" +"detection, we'll be able to more safely vary those durations, reducing " +"the\n" +"network and CPU load (due to expensive tunnel creation messages)." +msgstr "" + +#: i2p2www/pages/site/about/performance/future.html:95 +msgid "" +"This appears to be an easy fix for high load on the big-bandwidth " +"routers, but\n" +"we should not resort to it until we've tuned the tunnel building " +"algorithms further.\n" +"However, the 10 minute tunnel lifetime is hardcoded in quite a few " +"places,\n" +"so substantial effort would be required to change the duration.\n" +"Also, it would be difficult to maintain backward compatibility with such " +"a change." +msgstr "" + +#: i2p2www/pages/site/about/performance/future.html:102 +msgid "" +"Currently, since the network average tunnel build success rate is fairly " +"high,\n" +"there are no current plans to extend tunnel lifetime." +msgstr "" + +#: i2p2www/pages/site/about/performance/future.html:108 +msgid "Adjust the timeouts" +msgstr "" + +#: i2p2www/pages/site/about/performance/future.html:109 +msgid "" +"Yet another of the fairly arbitrary but \"okay feeling\" things we've got" +" are the\n" +"current timeouts for various activities. Why do we have a 60 second " +"\"peer\n" +"unreachable\" timeout? Why do we try sending through a different tunnel " +"that a\n" +"LeaseSet advertises after 10 seconds? Why are the network database " +"queries\n" +"bounded by 60 or 20 second limits? Why are destinations configured to " +"ask for a\n" +"new set of tunnels every 10 minutes? Why do we allow 60 seconds for a " +"peer to\n" +"reply to our request that they join a tunnel? Why do we consider a " +"tunnel that\n" +"doesn't pass our test within 60 seconds \"dead\"?" +msgstr "" + +#: i2p2www/pages/site/about/performance/future.html:119 +msgid "" +"Each of those imponderables can be addressed with more adaptive code, as " +"well\n" +"as tunable parameters to allow for more appropriate tradeoffs between\n" +"bandwidth, latency, and CPU usage." +msgstr "" + +#: i2p2www/pages/site/about/performance/future.html:125 +msgid "Full streaming protocol improvements" +msgstr "" + +#: i2p2www/pages/site/about/performance/future.html:128 +msgid "" +"Perhaps re-enable the interactive stream profile (the \n" +"current implementation only uses the bulk stream profile)." +msgstr "" + +#: i2p2www/pages/site/about/performance/future.html:134 +msgid "" +"Client level bandwidth limiting (in either or both directions on a " +"stream, \n" +"or possibly shared across multiple streams). This would be in addition to" +" \n" +"the router's overall bandwidth limiting, of course." +msgstr "" + +#: i2p2www/pages/site/about/performance/future.html:141 +msgid "" +"Access control lists (only allowing streams to or from certain other " +"known \n" +"destinations)." +msgstr "" + +#: i2p2www/pages/site/about/performance/future.html:147 +msgid "" +"Web controls and monitoring the health of the various streams, as well \n" +"as the ability to explicitly close or throttle them." +msgstr "" + +#: i2p2www/pages/site/about/performance/future.html:153 +#, python-format +msgid "" +"Additional ideas for improving the streaming library are described on the" +"\n" +"streaming library page." +msgstr "" + +#: i2p2www/pages/site/about/performance/history.html:2 +msgid "Performance History" +msgstr "" + +#: i2p2www/pages/site/about/performance/history.html:4 +#, python-format +msgid "" +"Notable performance improvements have been made using the techniques " +"below.\n" +"There is more to do, see the Performance " +"page\n" +"for current issues and thoughts." +msgstr "" + +#: i2p2www/pages/site/about/performance/history.html:10 +msgid "Native math" +msgstr "" + +#: i2p2www/pages/site/about/performance/history.html:11 +#: i2p2www/pages/site/about/performance/history.html:67 +#: i2p2www/pages/site/about/performance/history.html:82 +#: i2p2www/pages/site/about/performance/history.html:105 +#: i2p2www/pages/site/about/performance/history.html:133 +msgid "implemented" +msgstr "" + +#: i2p2www/pages/site/about/performance/history.html:12 +#, python-format +msgid "" +"When I last profiled the I2P code, the vast majority of time was spent " +"within\n" +"one function: java.math.BigInteger's\n" +"modPow.\n" +"Rather than try to tune this method, we'll call out to\n" +"GNU MP - an insanely fast math library\n" +"(with tuned assembler for many architectures). (Editor: see\n" +"NativeBigInteger for faster public key " +"cryptography)" +msgstr "" + +#: i2p2www/pages/site/about/performance/history.html:23 +msgid "" +"\n" +"ugha and duck are working on the C/JNI glue code, and the existing java " +"code\n" +"is already deployed with hooks for that whenever its ready. Preliminary " +"results\n" +"look fantastic - running the router with the native GMP modPow is " +"providing over\n" +"a 800% speedup in encryption performance, and the load was cut in " +"half. This\n" +"was just on one user's machine, and things are nowhere near ready for " +"packaging\n" +"and deployment, yet." +msgstr "" + +#: i2p2www/pages/site/about/performance/history.html:32 +msgid "Garlic wrapping a \"reply\" LeaseSet" +msgstr "" + +#: i2p2www/pages/site/about/performance/history.html:33 +msgid "implemented but needs tuning" +msgstr "" + +#: i2p2www/pages/site/about/performance/history.html:34 +msgid "" +"This algorithm tweak will only be relevant for applications that want " +"their\n" +"peers to reply to them (though that includes everything that uses " +"I2PTunnel or\n" +"mihi's ministreaming lib):" +msgstr "" + +#: i2p2www/pages/site/about/performance/history.html:39 +msgid "" +"Previously, when Alice sent Bob a message, when Bob replied he had to do " +"a\n" +"lookup in the network database - sending out a few requests to get " +"Alice's\n" +"current LeaseSet. If he already has Alice's current LeaseSet, he can " +"instead\n" +"just send his reply immediately - this is (part of) why it typically " +"takes a\n" +"little longer talking to someone the first time you connect, but " +"subsequent\n" +"communication is faster. Currently - for all clients - we wrap\n" +"the sender's current LeaseSet in the garlic that is delivered to the " +"recipient,\n" +"so that when they go to reply, they'll always have the LeaseSet " +"locally\n" +"stored - completely removing any need for a network database lookup on " +"replies.\n" +"This trades off a large portion of the sender's bandwidth for that faster" +" reply.\n" +"If we didn't do this very often,\n" +"overall network bandwidth usage would decrease, since the recipient " +"doesn't\n" +"have to do the network database lookup." +msgstr "" + +#: i2p2www/pages/site/about/performance/history.html:54 +msgid "" +"For unpublished LeaseSets such as \"shared clients\", this is the only " +"way to\n" +"get the LeaseSet to Bob. Unfortunately this bundling every time adds\n" +"almost 100% overhead to a high-bandwidth connection, and much more to" +"\n" +"a connection with smaller messages." +msgstr "" + +#: i2p2www/pages/site/about/performance/history.html:60 +msgid "" +"Changes scheduled for release 0.6.2 will bundle the LeaseSet only when\n" +"necessary, at the beginning of a connection or when the LeaseSet changes." +"\n" +"This will substantially reduce the total overhead of I2P messaging." +msgstr "" + +#: i2p2www/pages/site/about/performance/history.html:66 +msgid "More efficient TCP rejection" +msgstr "" + +#: i2p2www/pages/site/about/performance/history.html:68 +msgid "" +"At the moment, all TCP connections do all of their peer validation after\n" +"going through the full (expensive) Diffie-Hellman handshaking to " +"negotiate a\n" +"private session key. This means that if someone's clock is really wrong," +" or\n" +"their NAT/firewall/etc is improperly configured (or they're just running " +"an\n" +"incompatible version of the router), they're going to consistently " +"(though not\n" +"constantly, thanks to the banlist) cause a futile expensive cryptographic" +"\n" +"operation on all the peers they know about. While we will want to keep " +"some\n" +"verification/validation within the encryption boundary, we'll want to " +"update the\n" +"protocol to do some of it first, so that we can reject them cleanly\n" +"without wasting much CPU or other resources." +msgstr "" + +#: i2p2www/pages/site/about/performance/history.html:81 +msgid "Adjust the tunnel testing" +msgstr "" + +#: i2p2www/pages/site/about/performance/history.html:83 +msgid "" +"Rather than going with the fairly random scheme we have now, we should " +"use a\n" +"more context aware algorithm for testing tunnels. e.g. if we already " +"know its\n" +"passing valid data correctly, there's no need to test it, while if we " +"haven't\n" +"seen any data through it recently, perhaps its worthwhile to throw some " +"data its\n" +"way. This will reduce the tunnel contention due to excess messages, as " +"well as\n" +"improve the speed at which we detect - and address - failing tunnels." +msgstr "" + +#: i2p2www/pages/site/about/performance/history.html:92 +msgid "Persistent Tunnel / Lease Selection" +msgstr "" + +#: i2p2www/pages/site/about/performance/history.html:93 +msgid "" +"Outbound tunnel selection implemented in 0.6.1.30, inbound lease " +"selection \n" +"implemented in release 0.6.2." +msgstr "" + +#: i2p2www/pages/site/about/performance/history.html:97 +msgid "" +"Selecting tunnels and leases at random for every message creates a large" +" \n" +"incidence of out-of-order delivery, which prevents the streaming lib from" +" \n" +"increasing its window size as much as it could. By persisting with the \n" +"same selections for a given connection, the transfer rate is much faster." +msgstr "" + +#: i2p2www/pages/site/about/performance/history.html:104 +msgid "Compress some data structures" +msgstr "" + +#: i2p2www/pages/site/about/performance/history.html:106 +msgid "" +"The I2NP messages and the data they contain is already defined in a " +"fairly\n" +"compact structure, though one attribute of the RouterInfo structure is " +"not -\n" +"\"options\" is a plain ASCII name = value mapping. Right now, we're " +"filling it\n" +"with those published statistics - around 3300 bytes per peer. Trivial to" +"\n" +"implement GZip compression would nearly cut that to 1/3 its size, and " +"when you\n" +"consider how often RouterInfo structures are passed across the network, " +"that's\n" +"significant savings - every time a router asks another router for a " +"networkDb\n" +"entry that the peer doesn't have, it sends back 3-10 RouterInfo of them." +msgstr "" + +#: i2p2www/pages/site/about/performance/history.html:117 +msgid "Update the ministreaming protocol" +msgstr "" + +#: i2p2www/pages/site/about/performance/history.html:118 +msgid "replaced by full streaming protocol" +msgstr "" + +#: i2p2www/pages/site/about/performance/history.html:119 +msgid "" +"Currently mihi's ministreaming library has a fairly simple stream " +"negotiation\n" +"protocol - Alice sends Bob a SYN message, Bob replies with an ACK " +"message, then\n" +"Alice and Bob send each other some data, until one of them sends the " +"other a\n" +"CLOSE message. For long lasting connections (to an IRC server, for " +"instance),\n" +"that overhead is negligible, but for simple one-off request/response " +"situations\n" +"(an HTTP request/reply, for instance), that's more than twice as many " +"messages as\n" +"necessary. If, however, Alice piggybacked her first payload in with the " +"SYN\n" +"message, and Bob piggybacked his first reply with the ACK - and perhaps " +"also\n" +"included the CLOSE flag - transient streams such as HTTP requests could " +"be\n" +"reduced to a pair of messages, instead of the " +"SYN+ACK+request+response+CLOSE." +msgstr "" + +#: i2p2www/pages/site/about/performance/history.html:132 +msgid "Implement full streaming protocol" +msgstr "" + +#: i2p2www/pages/site/about/performance/history.html:134 +msgid "" +"The ministreaming protocol takes advantage of a poor design decision in " +"the\n" +"I2P client protocol (I2CP) - the exposure of \"mode=GUARANTEED\", " +"allowing what\n" +"would otherwise be an unreliable, best-effort, message based protocol to " +"be used\n" +"for reliable, blocking operation (under the covers, its still all " +"unreliable and\n" +"message based, with the router providing delivery guarantees by garlic " +"wrapping\n" +"an \"ACK\" message in with the payload, so once the data gets to the " +"target, the\n" +"ACK message is forwarded back to us [through tunnels, of course])." +msgstr "" + +#: i2p2www/pages/site/about/performance/history.html:143 +#, python-format +msgid "" +"As I've said, having\n" +"I2PTunnel (and the ministreaming lib) go this route was the best thing " +"that\n" +"could be done, but more efficient mechanisms are available. When we rip " +"out the\n" +"\"mode=GUARANTEED\" functionality, we're essentially leaving ourselves " +"with an\n" +"I2CP that looks like an anonymous IP layer, and as such, we'll be able to" +"\n" +"implement the streaming library to take advantage of the design " +"experiences of\n" +"the TCP layer - selective ACKs, congestion detection, nagle, etc." +msgstr "" + +#: i2p2www/pages/site/about/performance/index.html:2 +msgid "Performance" +msgstr "Ytelse" + +#: i2p2www/pages/site/about/performance/index.html:5 +msgid "" +"How does I2P work, why is it slow, and why does it not use my full " +"bandwidth?" +msgstr "" + +#: i2p2www/pages/site/about/performance/index.html:7 +msgid "" +"Probably one of the most frequent things people ask is \"how fast is " +"I2P?\",\n" +"and no one seems to like the answer - \"it depends\". After trying out " +"I2P, the\n" +"next thing they ask is \"will it get faster?\", and the answer to that is" +" a most\n" +"emphatic yes." +msgstr "" + +#: i2p2www/pages/site/about/performance/index.html:14 +msgid "" +"I2P is a full dynamic network. Each client is known to other nodes and " +"tests local known nodes for reachability and capacity.\n" +"Only reachable and capable nodes are saved to a local NetDB (This is " +"generally only a portion of the network, around 500-1000).\n" +"When I2P builds tunnels, it selects the best resource from this pool. For" +" example, a small subset of 20-50 nodes are only available to build " +"tunnels with.\n" +"Because testing happens every minute, the pool of used nodes changes " +"every minute.\n" +"Each I2P node knows a different part of the net, meaning that each router" +" has a different set of I2P nodes to be used for tunnels.\n" +"Even if two routers have the same subset of known nodes, the tests for " +"reachability and capacity will likely show different results, as the " +"other routers could be under load just as one router tests, but be free " +"if the second router tests." +msgstr "" + +#: i2p2www/pages/site/about/performance/index.html:23 +msgid "" +"The above describes why each I2P node has different nodes to build " +"tunnels.\n" +"Because every I2P node has a different latency and bandwith, tunnels " +"(which are built via those nodes) have different latency and bandwidth " +"values.\n" +"And because every I2P node has different tunnels built, no two I2P nodes " +"have the same tunnel sets." +msgstr "" + +#: i2p2www/pages/site/about/performance/index.html:29 +msgid "" +"A server/client is known as a \"destination\" and each destination has at" +" least one inbound and one outbound tunnel. The default is 3 hops per " +"tunnel.\n" +"This adds up to 12 hops (aka 12 different I2P nodes) for a full roundtrip" +" client-server-client." +msgstr "" + +#: i2p2www/pages/site/about/performance/index.html:34 +msgid "" +"Each data package is sent through 6 other I2P nodes until it reaches the " +"server:" +msgstr "" + +#: i2p2www/pages/site/about/performance/index.html:40 +msgid "and on way back 6 different I2P nodes:" +msgstr "" + +#: i2p2www/pages/site/about/performance/index.html:47 +msgid "" +"As most traffic on I2P (www, torrent,...) needs ack packages until new " +"data is sent, it needs to wait until a ack package returns from the " +"server.\n" +"In the end: send data, wait for ack, send more data, wait for ack,..\n" +"As the RTT (RoundTripTime) adds up from the latency of each individual " +"I2P node and each connection on this roundtrip, it takes usually 1-3 " +"seconds until a ack package comes back to the client.\n" +"With some internals of TCP and I2P transport, a data package has a " +"limited size and cannot be as large as we want it to be.\n" +"Together these conditions set a limit of max bandwidth per tunnel of " +"20-50 kbyte/sec.\n" +"But if ONLY ONE hop in the tunnel has only 5 kb/sec bandwidth to spend, " +"the whole tunnel is limited to 5 kb/sec, independent of the \n" +"latency and other limitations." +msgstr "" + +#: i2p2www/pages/site/about/performance/index.html:57 +msgid "" +"Due to encryption used and other setups in I2P (howto built up tunnels, " +"latency, ...) it is quite expensive in CPU time to build a tunnel. This " +"is \n" +"why a destination is only allowed to have a max of 6 IN and 6 OUT tunnels" +" to transport data. With a max of 50 kb/sec per tunnel, a destination " +"could \n" +"use roughly 300 kb/sec traffic combined ( in reality it could be more if " +"shorter tunnels are used with low or no anonymity available).\n" +"Used tunnels are discarded every 10 minutes and new ones are built up.\n" +"This change of tunnels (and sometimes clients that shutdown hard due to " +"usage of \"shut down at once\" or situations where there is power loss) " +"does \n" +"sometimes break tunnels and connections, as seen on the IRC2P Network in " +"loss of connection (ping timeout) or on when using eepget." +msgstr "" + +#: i2p2www/pages/site/about/performance/index.html:66 +msgid "" +"With a limited set of destinations and a limited set of tunnels per " +"destination, one I2P node only uses a limited set of tunnels across other" +" I2P nodes.\n" +"For example, if an I2P node is \"hop1\" in the small example above, we " +"only see 1 participating tunnel originating from the client.\n" +"If we sum up the whole I2P network, only a rather limited number of " +"participating tunnels could be built with a limited amount of bandwidth " +"all together.\n" +"If one distributes these limited numbers across the number of I2P nodes, " +"there is only a fraction of available bandwidth/capacity available for " +"use." +msgstr "" + +#: i2p2www/pages/site/about/performance/index.html:73 +msgid "" +"To remain anonymous one router should not be used by the whole network " +"for building tunnels.\n" +"If one router does act as a tunnel router for ALL I2P nodes, it becomes a" +" very real central point of failure as well as a central point to grab " +"IPs and data from the clients. This is not good.\n" +"I2P attempts to spread the load across a lot of I2P nodes because of this" +" reason." +msgstr "" + +#: i2p2www/pages/site/about/performance/index.html:79 +msgid "" +"Another point is the full mesh network. Each connection hop-hop utilizes " +"one TCP or UDP connection on the I2P nodes. With 1000 connections, one " +"sees \n" +"1000 TCP connections. That is quite a lot and some home and small office " +"routers (DSL, cable,..) only allow a small number of connections (or just" +" go mad if you use more than X connections).\n" +"I2P tries to limit these connections to be under 1500 per UDP and per TCP" +" type.\n" +"This limits the amount of traffic routed across your I2P node as well." +msgstr "" + +#: i2p2www/pages/site/about/performance/index.html:86 +msgid "" +"In summary, I2P is very complex and there is no easy way to pinpoint why " +"your node is not used.\n" +"If your node is reachable and has a bandwidth setting of >128 kbyte/sec " +"shared and is reachable 24/7, it should be used after some time for " +"participating traffic.\n" +"If it is down in between, the testing of your I2P node done by other " +"nodes will tell them: you are not reachable. This blocks your node for at" +" least \n" +"24h on other nodes. So, the other nodes which tested you as down will not" +" use your node for 24h for building tunnels. This is why your traffic " +"will \n" +"be lower after a restart/shutdown for a minimum of 24h." +msgstr "" + +#: i2p2www/pages/site/about/performance/index.html:94 +msgid "" +"Also: other I2P nodes needs to know your I2P router to test it for " +"reachability and capacity. It takes time for other nodes to get known to " +"your node. \n" +"It will be faster if you use I2P and build more tunnels, e.g. use a " +"torrent or www for some time." +msgstr "" + +#: i2p2www/pages/site/about/performance/index.html:99 +msgid "Performance Improvements" +msgstr "" + +#: i2p2www/pages/site/about/performance/index.html:101 +#, python-format +msgid "" +"For possible future performance improvements see\n" +"Future Performance Improvements." +msgstr "" + diff --git a/i2p2www/translations/nb/LC_MESSAGES/priority.po b/i2p2www/translations/nb/LC_MESSAGES/priority.po new file mode 100644 index 00000000..fee7944e --- /dev/null +++ b/i2p2www/translations/nb/LC_MESSAGES/priority.po @@ -0,0 +1,2620 @@ +# Norwegian Bokmål translations for I2P. +# Copyright (C) 2017 ORGANIZATION +# This file is distributed under the same license as the I2P project. +# +# Translators: +# Allan Nordhøy , 2017 +# Mikal , 2017 +msgid "" +msgstr "" +"Project-Id-Version: I2P\n" +"Report-Msgid-Bugs-To: http://trac.i2p2.de\n" +"POT-Creation-Date: 2017-09-08 12:54+0000\n" +"PO-Revision-Date: 2018-01-19 07:09+0000\n" +"Last-Translator: Mikal \n" +"Language-Team: Norwegian Bokmål " +"(http://www.transifex.com/otf/I2P/language/nb/)\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 1.3\n" + +#: i2p2www/pages/blog/category.html:2 +msgid "Blog Category" +msgstr "Bloggkategori" + +#: i2p2www/pages/blog/category.html:4 +#, python-format +msgid "I2P Blog ATOM Feed for Category: %(category)s" +msgstr "I2P Blogg ATOM strøm for Kategori: %(category)s" + +#: i2p2www/pages/blog/index.html:2 i2p2www/pages/blog/post.html:3 +#: i2p2www/pages/global/nav.html:78 +msgid "Blog" +msgstr "Blogg" + +#: i2p2www/pages/blog/index.html:4 i2p2www/pages/site/index.html:80 +msgid "I2P Blog ATOM Feed" +msgstr "I2P Blogg ATOM strøm" + +#: i2p2www/pages/blog/index.html:18 +#, python-format +msgid "Posted %(date)s by %(author)s" +msgstr "Postet %(date)s av %(author)s" + +#: i2p2www/pages/blog/latest.html:5 +msgid "More blog posts…" +msgstr "Flere blogg poster…" + +#: i2p2www/pages/blog/post.html:12 +msgid "Posted:" +msgstr "Postet:" + +#: i2p2www/pages/blog/post.html:13 +msgid "Author:" +msgstr "Forfatter:" + +#: i2p2www/pages/downloads/debian.html:4 +msgid "Debian I2P Packages" +msgstr "Debian I2P Pakker" + +#: i2p2www/pages/downloads/debian.html:6 +msgid "" +"The Debian packages\n" +"have been tested and should work on x86/x86_64 platforms running:" +msgstr "" + +#: i2p2www/pages/downloads/debian.html:11 +msgid "Ubuntu (Precise 12.04 and newer)" +msgstr "" + +#: i2p2www/pages/downloads/debian.html:13 +msgid "Debian Linux (Wheezy and newer)" +msgstr "" + +#: i2p2www/pages/downloads/debian.html:17 +#, python-format +msgid "" +"The I2P packages may work on systems not listed above. Please " +"report any issues\n" +"with these packages on Trac at\n" +"https://trac.i2p2.de." +msgstr "" + +#: i2p2www/pages/downloads/debian.html:23 +msgid "" +"Option 1: Recent versions of Ubuntu and its " +"derivatives (Try this if you're not using Debian)" +msgstr "" + +#: i2p2www/pages/downloads/debian.html:24 +msgid "Option 2: Debian (including Debian-derivatives)" +msgstr "" + +#: i2p2www/pages/downloads/debian.html:27 +msgid "" +"Instructions for Ubuntu 12.04 Precise Pangolin (and newer) and " +"derivatives like Linux Mint & Trisquel" +msgstr "" + +#: i2p2www/pages/downloads/debian.html:28 +msgid "Adding the PPA via the command line and installing I2P" +msgstr "Legge til PPA via kommandolinjen og installer I2P" + +#: i2p2www/pages/downloads/debian.html:31 +msgid "Open a terminal and enter:" +msgstr "Åpne en terminal og skriv inn:" + +#: i2p2www/pages/downloads/debian.html:33 +msgid "" +"This command will add the PPA to /etc/apt/sources.list.d and fetch the\n" +"gpg key that the repository has been signed with. The GPG key ensures\n" +"that the packages have not been tampered with since being built." +msgstr "" + +#: i2p2www/pages/downloads/debian.html:40 +msgid "Notify your package manager of the new PPA by entering:" +msgstr "" + +#: i2p2www/pages/downloads/debian.html:42 +msgid "" +"This command will retrieve the latest list of software from each\n" +"repository that is enabled on your system, including the I2P PPA that\n" +"was added with the earlier command." +msgstr "" + +#: i2p2www/pages/downloads/debian.html:48 +msgid "You are now ready to install I2P!" +msgstr "Du er nå klar for å installere I2P!" + +#: i2p2www/pages/downloads/debian.html:52 +msgid "Adding the PPA Using Synaptic" +msgstr "" + +#: i2p2www/pages/downloads/debian.html:55 +msgid "" +"Open Synaptic (System -> Administration -> Synaptic Package " +"Manager)." +msgstr "" + +#: i2p2www/pages/downloads/debian.html:60 +msgid "" +"Once Synaptic opens, select Repositories from the " +"Settings menu." +msgstr "" + +#: i2p2www/pages/downloads/debian.html:65 +msgid "" +"Click the Other Sources tab and click Add. Paste " +"ppa:i2p-maintainers/i2p into the APT-line field and click " +"Add Source. Click the Close button then " +"Reload." +msgstr "" + +#: i2p2www/pages/downloads/debian.html:70 +msgid "" +"In the Quick Filter box, type in i2p and press enter. When " +"i2p is returned in the results list, right click " +"i2p and select Mark for Installation. After doing " +"so you may see a Mark additional required changes? popup. If so," +" click Mark then Apply." +msgstr "" + +#: i2p2www/pages/downloads/debian.html:76 +msgid "" +"After the installation process completes you can move on to the next\n" +"part of starting I2P and configuring " +"it for your system." +msgstr "" + +#: i2p2www/pages/downloads/debian.html:81 +msgid "Instructions for Debian" +msgstr "Instruksjoner for Debian" + +#: i2p2www/pages/downloads/debian.html:85 +msgid "" +"Note: The steps below should be performed with root access (i.e., " +"switching\n" +"user to root with \"su\" or by prefixing each command with \"sudo\")." +msgstr "" + +#: i2p2www/pages/downloads/debian.html:90 +#, python-format +msgid "Add lines like the following to %(file)s." +msgstr "" + +#: i2p2www/pages/downloads/debian.html:127 +#, python-format +msgid "" +"Download the key used to sign the repository" +" and add it to apt:" +msgstr "" + +#: i2p2www/pages/downloads/debian.html:134 +msgid "Notify your package manager of the new repository by entering" +msgstr "" + +#: i2p2www/pages/downloads/debian.html:136 +msgid "" +"This command will retrieve the latest list of software from every\n" +"repository enabled on your system, including the I2P repository added in " +"step\n" +"1." +msgstr "" + +#: i2p2www/pages/downloads/debian.html:142 +msgid "" +"You are now ready to install I2P! Installing the i2p-keyring" +"\n" +"package will ensure that you receive updates to the repository's GPG key." +msgstr "" + +#: i2p2www/pages/downloads/debian.html:150 +msgid "" +"After the installation process completes you can move on to the next part" +" of starting I2P and configuring it " +"for your system." +msgstr "" + +#: i2p2www/pages/downloads/debian.html:156 +msgid "Note: If the https address does not work, either:" +msgstr "" + +#: i2p2www/pages/downloads/debian.html:161 +msgid "Change the repository address to http://deb.i2p2.no/" +msgstr "Endre repository addressen til http://deb.i2p2.no/" + +#: i2p2www/pages/downloads/debian.html:167 +#: i2p2www/pages/downloads/post-install.html:1 +msgid "Post-install work" +msgstr "" + +#: i2p2www/pages/downloads/debian.html:169 +msgid "" +"Using these I2P packages the I2P router can be started in the following\n" +"three ways:" +msgstr "" + +#: i2p2www/pages/downloads/debian.html:175 +msgid "" +""on demand" using the i2prouter script. Simply run " +""i2prouter\n" +"start" from a command prompt. (Note: Do " +"not use\n" +"sudo or run it as root!)" +msgstr "" + +#: i2p2www/pages/downloads/debian.html:182 +msgid "" +""on demand" without the java service wrapper\n" +"(needed on non-Linux/non-x86 systems) by running \"i2prouter-" +"nowrapper\".\n" +"(Note: Do not\n" +"use sudo or run it as root!)" +msgstr "" + +#: i2p2www/pages/downloads/debian.html:190 +msgid "" +"as a service that automatically runs when your system boots, even\n" +"before logging in. The service can be enabled with \"dpkg-" +"reconfigure\n" +"i2p\" as root or using sudo. This is the recommended means of " +"operation." +msgstr "" + +#: i2p2www/pages/downloads/debian.html:198 +msgid "" +"When installing for the first time, please remember to adjust your " +"NAT/firewall\n" +"if you can. The ports to forward can be found on the \n" +"network configuration page in the router console. If guidance with " +"respect to forwarding ports is needed,\n" +"you may find portforward.com to be" +" helpful." +msgstr "" + +#: i2p2www/pages/downloads/debian.html:205 +msgid "" +"Please review and adjust the bandwidth settings on the\n" +"configuration page,\n" +"as the default settings of 96 KB/s down / 40 KB/s up are fairly " +"conservative." +msgstr "" + +#: i2p2www/pages/downloads/debian.html:211 +#: i2p2www/pages/downloads/post-install.html:34 +#, python-format +msgid "" +"If you want to reach eepsites via your browser, have a look on the browser proxy setup page for an easy " +"howto." +msgstr "" + +#: i2p2www/pages/downloads/list.html:6 i2p2www/pages/downloads/select.html:15 +#: i2p2www/pages/global/nav.html:3 +msgid "Download" +msgstr "Last ned" + +#: i2p2www/pages/downloads/list.html:14 +msgid "Source package" +msgstr "Kilde pakke" + +#: i2p2www/pages/downloads/list.html:15 i2p2www/pages/downloads/list.html:160 +msgid "Automatic updates" +msgstr "Automatisk oppdateringer" + +#: i2p2www/pages/downloads/list.html:16 +msgid "Manual updates" +msgstr "Manuell oppdatering" + +#: i2p2www/pages/downloads/list.html:21 +msgid "Dependency" +msgstr "Avhengighet" + +#: i2p2www/pages/downloads/list.html:22 +#, python-format +msgid "" +"\n" +"Java Runtime Version 7 or higher.\n" +"(Oracle,\n" +"OpenJDK, or\n" +"IcedTea\n" +"Java Version 7 or 8 recommended,\n" +"except Raspberry Pi: Oracle JDK 8 for ARM,\n" +"PowerPC: IBM Java SE 7 or 8)\n" +"
\n" +"Determine your installed Java version here\n" +"or type java -version at your command prompt.\n" +msgstr "" + +#: i2p2www/pages/downloads/list.html:39 +msgid "" +"Java 9 support is in development and it is not recommended for general " +"use." +msgstr "Java 9 support er under utvikling og er ikke anbefalt for generelt bruk." + +#: i2p2www/pages/downloads/list.html:46 i2p2www/pages/downloads/list.html:48 +msgid "Release Notes" +msgstr "Versjonsnotater" + +#: i2p2www/pages/downloads/list.html:50 +msgid "Change Log" +msgstr "Endrings historikk" + +#: i2p2www/pages/downloads/list.html:52 +msgid "Debian Change Log" +msgstr "Debian endrings historikk" + +#: i2p2www/pages/downloads/list.html:54 +msgid "Android Change Log" +msgstr "Android endrings historikk" + +#: i2p2www/pages/downloads/list.html:59 +msgid "Clean installs" +msgstr "Reine installasjoner." + +#: i2p2www/pages/downloads/list.html:63 +msgid "Download that file and run it." +msgstr "Last ned den filen og kjør den." + +#: i2p2www/pages/downloads/list.html:69 +#, python-format +msgid "" +"Download that file and double-click it (if that works) or\n" +" type java -jar i2pinstall_%(i2pversion)s.jar in a " +"terminal to run the\n" +" installer.\n" +" You may be able to right-click and select\n" +" "Open with Java"." +msgstr "" + +#: i2p2www/pages/downloads/list.html:77 i2p2www/pages/downloads/list.html:93 +msgid "Command line (headless) install:" +msgstr "Kommandolinje (ikke-grafisk) installasjon:" + +#: i2p2www/pages/downloads/list.html:78 +#, python-format +msgid "" +"Download the %(i2pversion)s OSX graphical installer file above and\n" +" run java -jar i2pinstall_%(i2pversion)s.jar -console " +"from the command line." +msgstr "" + +#: i2p2www/pages/downloads/list.html:85 +#, python-format +msgid "" +"Download that file and double-click it (if that works) or\n" +" type java -jar i2pinstall_%(i2pversion)s.jar in a " +"terminal to run the\n" +" installer.\n" +" On some platforms you may be able to right-click and select\n" +" "Open with Java"." +msgstr "" + +#: i2p2www/pages/downloads/list.html:94 +#, python-format +msgid "" +"Download the graphical installer file above and\n" +" run java -jar i2pinstall_%(i2pversion)s.jar -console " +"from the command line." +msgstr "" + +#: i2p2www/pages/downloads/list.html:102 +msgid "Packages for Debian & Ubuntu are available." +msgstr "Pakker for Debian & Ubuntu er tilgjengelig." + +#: i2p2www/pages/downloads/list.html:108 +msgid "" +"Requires Android 2.3 (Gingerbread) or higher. If you earlier installed\n" +" I2P, you need to reinstall because we have also changed the release" +" keys." +msgstr "" + +#: i2p2www/pages/downloads/list.html:112 +msgid "512 MB RAM minimum; 1 GB recommended." +msgstr "512 MB RAM minimum; 1 GB anbefalt." + +#: i2p2www/pages/downloads/list.html:115 +msgid "" +"The release and dev versions of the I2P APK are not compatible, as they\n" +" are signed by zzz and str4d respectively. Uninstall one before " +"installing\n" +" the other." +msgstr "" + +#: i2p2www/pages/downloads/list.html:124 +#, python-format +msgid "" +"Alternately, you can fetch the source from monotone\n" +" or via Git from git.repo.i2p or Github.\n" +"
\n" +" Run (tar xjvf i2psource_%(i2pversion)s.tar.bz2 ; cd " +"i2p-%(i2pversion)s ; ant pkg) then either\n" +" run the GUI installer or headless install as above." +msgstr "" + +#: i2p2www/pages/downloads/list.html:134 +#, python-format +msgid "" +"Android source is in monotone\n" +" and on Github.\n" +" Android builds require the I2P source.\n" +" See the documentation in the Android source for additional build " +"requirements and instructions." +msgstr "" + +#: i2p2www/pages/downloads/list.html:145 +#, python-format +msgid "" +"The files are signed by %(signer)s,\n" +"whose key is here." +msgstr "" + +#: i2p2www/pages/downloads/list.html:154 +msgid "Updates from earlier releases:" +msgstr "Oppdateringer fra tidligere utgaver:" + +#: i2p2www/pages/downloads/list.html:156 +msgid "Both automatic and manual upgrades are available for the release." +msgstr "" + +#: i2p2www/pages/downloads/list.html:161 +msgid "" +"If you are running 0.7.5 or later, your router should detect the\n" +"new release. To upgrade simply click the 'Download Update' button on your" +" router console\n" +"when it appears." +msgstr "" + +#: i2p2www/pages/downloads/list.html:167 +msgid "" +"Since 0.9.23, some releases are signed by str4d, whose signing key has " +"been in the router\n" +"since 0.9.9. Routers older than 0.9.9 will fail to verify update files " +"signed by str4d,\n" +"and will need to be manually updated using the process below." +msgstr "" + +#: i2p2www/pages/downloads/list.html:178 +msgid "" +"Download that file to your I2P\n" +" installation directory and rename as i2pupdate.zip.\n" +" (alternately, you can get the source as above and run \"ant " +"updater\", then copy the\n" +" resulting i2pupdate.zip to your I2P installation directory). You do" +" \n" +" NOT need to unzip that file." +msgstr "" + +#: i2p2www/pages/downloads/list.html:187 +msgid "Click \"Restart\"" +msgstr "" +"Klikk \"Restart\" " +"" + +#: i2p2www/pages/downloads/list.html:192 +msgid "Grab a cup of coffee and come back in 11 minutes" +msgstr "Ta en kopp kaffe og kom tilbake om 11 minutter" + +#: i2p2www/pages/downloads/list.html:199 +#, python-format +msgid "" +"The file is signed by %(signer)s,\n" +"whose key is here." +msgstr "" + +#: i2p2www/pages/downloads/list.html:205 +msgid "Previous Releases" +msgstr "Tidligere utgaver" + +#: i2p2www/pages/downloads/list.html:207 +#, python-format +msgid "" +"Previous releases are available on Google " +"Code\n" +"and Launchpad\n" +"and within the I2P network on %(echelon)s." +msgstr "" + +#: i2p2www/pages/downloads/post-install.html:3 +msgid "" +"After running the installer on windows, simply click on the \"Start I2P\"" +" button\n" +"which will bring up the router console,\n" +"which has further instructions." +msgstr "" + +#: i2p2www/pages/downloads/post-install.html:9 +msgid "" +"On Unix-like systems, I2P can be started as a service\n" +"using the \"i2prouter\" script, located in the directory you selected for" +" I2P.\n" +"Changing to that directory in a console and issuing \"sh i2prouter " +"status\"\n" +"should tell you the router's status. The arguments \"start\", \"stop\" " +"and \"restart\"\n" +"control the service. The router console\n" +"can be accessed at its usual location.\n" +"For users on OpenSolaris and other systems for which the wrapper (i2psvc)" +" is not supported,\n" +"start the router with \"sh runplain.sh\" instead." +msgstr "" + +#: i2p2www/pages/downloads/post-install.html:20 +#, python-format +msgid "" +"When installing for the first time, please remember to adjust your " +"NAT/firewall\n" +"if you can, bearing in mind the Internet-facing ports I2P uses,\n" +"described here among other ports.\n" +"If you have successfully opened your port to inbound TCP, also enable " +"inbound TCP on the\n" +"configuration page." +msgstr "" + +#: i2p2www/pages/downloads/post-install.html:28 +msgid "" +"Also, please review and adjust the bandwidth settings on the\n" +"configuration page,\n" +"as the default settings of 96 KBps down / 40 KBps up are fairly slow." +msgstr "" + +#: i2p2www/pages/downloads/redirect.html:2 +msgid "Downloading..." +msgstr "Laster ned..." + +#: i2p2www/pages/downloads/redirect.html:8 +#, python-format +msgid "" +"Your download will begin shortly. If it doesn't start within 5 seconds, " +"click here." +msgstr "" + +#: i2p2www/pages/downloads/select.html:2 i2p2www/pages/downloads/select.html:4 +msgid "Mirror selection" +msgstr "" + +#: i2p2www/pages/downloads/select.html:5 +msgid "File:" +msgstr "Fil:" + +#: i2p2www/pages/downloads/select.html:10 +msgid "Any mirror" +msgstr "" + +#: i2p2www/pages/global/bounty.html:19 +msgid "" +"To claim the bounty the author must not be paid by other organizations\n" +"or teams for this work (e.g. GSoC students are not valid)." +msgstr "" + +#: i2p2www/pages/global/bounty.html:29 +#, python-format +msgid "" +"Bounty amounts may be increased by further donations. Do\n" +"you think these are important? Add in your " +"donation, \n" +"marking the amount for the %(donatename)s bounty!" +msgstr "" + +#: i2p2www/pages/global/error_404.html:3 +msgid "Not found" +msgstr "Ikke funnet" + +#: i2p2www/pages/global/error_404.html:9 +msgid "" +"Yep... the resource, you were searching for, is named differently, " +"doesn't exist or was removed." +msgstr "" + +#: i2p2www/pages/global/error_500.html:5 +msgid "Server error" +msgstr "Tjener feil" + +#: i2p2www/pages/global/error_500.html:13 +msgid "500 Server error" +msgstr "500 Tjener feil" + +#: i2p2www/pages/global/error_500.html:17 +msgid "Umm... the server encountered some sort of error." +msgstr "" + +#: i2p2www/pages/global/footer.html:17 i2p2www/pages/global/nav.html:126 +msgid "Donate" +msgstr "Doner" + +#: i2p2www/pages/global/layout.html:35 +msgid "Skip navigation" +msgstr "" + +#: i2p2www/pages/global/layout.html:38 +msgid "I2P Logo" +msgstr "I2P Logo" + +#: i2p2www/pages/global/layout.html:38 i2p2www/pages/site/index.html:3 +msgid "The Invisible Internet Project" +msgstr "The Invisible Internet Project" + +#: i2p2www/pages/global/layout.html:80 +#, python-format +msgid "" +"This page was last updated in %(lastupdated)s and is accurate for router " +"version %(accuratefor)s." +msgstr "" + +#: i2p2www/pages/global/layout.html:84 +#, python-format +msgid "This page was last updated in %(lastupdated)s." +msgstr "Denne siden var sist oppdatert %(lastupdated)s." + +#: i2p2www/pages/global/layout.html:88 +#, python-format +msgid "This page is accurate for router version %(accuratefor)s." +msgstr "" + +#: i2p2www/pages/global/macros:25 +msgid "Previous" +msgstr "Forrige" + +#: i2p2www/pages/global/macros:40 +msgid "Next" +msgstr "Neste" + +#: i2p2www/pages/global/macros:53 +msgid "Posted in" +msgstr "Postet in" + +#: i2p2www/pages/global/nav.html:4 +msgid "About" +msgstr "Om" + +#: i2p2www/pages/global/nav.html:6 +msgid "Introduction to I2P" +msgstr "Introduksjon til I2P" + +#: i2p2www/pages/global/nav.html:7 +msgid "Comparisons" +msgstr "" + +#: i2p2www/pages/global/nav.html:9 +msgid "Overview of comparisons" +msgstr "" + +#: i2p2www/pages/global/nav.html:13 +msgid "Other anonymous networks" +msgstr "Andre anonyme nettverk" + +#: i2p2www/pages/global/nav.html:16 +msgid "Documentation" +msgstr "Dokumentasjon" + +#: i2p2www/pages/global/nav.html:18 +msgid "Documentation index" +msgstr "" + +#: i2p2www/pages/global/nav.html:19 +msgid "How does it work?" +msgstr "Hvordan fungerer det?" + +#: i2p2www/pages/global/nav.html:21 +msgid "Gentle intro" +msgstr "Liten introduksjon" + +#: i2p2www/pages/global/nav.html:22 +msgid "Tech intro" +msgstr "Teknisk introduksjon" + +#: i2p2www/pages/global/nav.html:23 +msgid "Threat model" +msgstr "Trussel modell" + +#: i2p2www/pages/global/nav.html:24 +msgid "Garlic routing" +msgstr "Garlic routing" + +#: i2p2www/pages/global/nav.html:25 +msgid "Network database" +msgstr "Nettverk database" + +#: i2p2www/pages/global/nav.html:26 +msgid "Tunnel routing" +msgstr "" + +#: i2p2www/pages/global/nav.html:27 +msgid "Peer selection" +msgstr "" + +#: i2p2www/pages/global/nav.html:28 +msgid "Cryptography" +msgstr "Kryptografi" + +#: i2p2www/pages/global/nav.html:29 +msgid "ElGamal/AES+SessionTags" +msgstr "ElGamal/AES+SessionTags" + +#: i2p2www/pages/global/nav.html:32 +msgid "Specifications" +msgstr "Spesifikasjoner" + +#: i2p2www/pages/global/nav.html:33 +msgid "Proposals" +msgstr "Forslag" + +#: i2p2www/pages/global/nav.html:34 +msgid "API" +msgstr "API" + +#: i2p2www/pages/global/nav.html:40 +msgid "Streaming library" +msgstr "" + +#: i2p2www/pages/global/nav.html:41 +msgid "Datagrams" +msgstr "Datagrams" + +#: i2p2www/pages/global/nav.html:45 i2p2www/pages/global/nav.html:109 +msgid "Applications" +msgstr "Applikasjoner" + +#: i2p2www/pages/global/nav.html:47 +msgid "Supported applications" +msgstr "Støttet applikasjoner" + +#: i2p2www/pages/global/nav.html:48 +msgid "Bittorrent" +msgstr "Bittorrent" + +#: i2p2www/pages/global/nav.html:51 +msgid "Protocols" +msgstr "Protokoller" + +#: i2p2www/pages/global/nav.html:53 +msgid "Protocol stack" +msgstr "" + +#: i2p2www/pages/global/nav.html:58 +msgid "Transports" +msgstr "Overføringer" + +#: i2p2www/pages/global/nav.html:60 +msgid "Transport layer overview" +msgstr "Transport lag oversikt" + +#: i2p2www/pages/global/nav.html:65 +msgid "Tunnels" +msgstr "Tunneler" + +#: i2p2www/pages/global/nav.html:67 +msgid "Tunnel implementation" +msgstr "Tunell implementasjon" + +#: i2p2www/pages/global/nav.html:68 +msgid "Unidirectional tunnels" +msgstr "" + +#: i2p2www/pages/global/nav.html:69 +msgid "Old implementation" +msgstr "Gammel implementasjon" + +#: i2p2www/pages/global/nav.html:72 +msgid "Naming and addressbook" +msgstr "Navngiving og addressebok" + +#: i2p2www/pages/global/nav.html:73 +msgid "Plugins" +msgstr "Programtillegg" + +#: i2p2www/pages/global/nav.html:74 +msgid "Reseed" +msgstr "Omså" + +#: i2p2www/pages/global/nav.html:77 +msgid "Team" +msgstr "" + +#: i2p2www/pages/global/nav.html:79 +msgid "Hall of Fame" +msgstr "" + +#: i2p2www/pages/global/nav.html:80 +msgid "Academic papers and peer review" +msgstr "" + +#: i2p2www/pages/global/nav.html:82 +msgid "Presentations, tutorials and articles" +msgstr "" + +#: i2p2www/pages/global/nav.html:83 +msgid "Contact us" +msgstr "Kontakt oss" + +#: i2p2www/pages/global/nav.html:84 i2p2www/pages/site/links.html:2 +msgid "Links" +msgstr "Linker" + +#: i2p2www/pages/global/nav.html:85 +msgid "Impressum" +msgstr "" + +#: i2p2www/pages/global/nav.html:88 +msgid "Help" +msgstr "Hjelp" + +#: i2p2www/pages/global/nav.html:90 +msgid "FAQ" +msgstr "OSS" + +#: i2p2www/pages/global/nav.html:91 +msgid "How to browse I2P" +msgstr "" + +#: i2p2www/pages/global/nav.html:92 +msgid "Glossary" +msgstr "" + +#: i2p2www/pages/global/nav.html:93 +msgid "Performance" +msgstr "Ytelse" + +#: i2p2www/pages/global/nav.html:94 i2p2www/pages/site/contact.html:43 +msgid "Forums" +msgstr "Forum" + +#: i2p2www/pages/global/nav.html:95 +msgid "Verify I2P" +msgstr "" + +#: i2p2www/pages/global/nav.html:97 +msgid "Release signing keys" +msgstr "" + +#: i2p2www/pages/global/nav.html:98 +msgid "Signed keys" +msgstr "Signerte nøkler" + +#: i2p2www/pages/global/nav.html:99 +msgid "Developers keys" +msgstr "Utvikler nøkler" + +#: i2p2www/pages/global/nav.html:104 +msgid "Volunteer" +msgstr "" + +#: i2p2www/pages/global/nav.html:106 +msgid "Get involved!" +msgstr "" + +#: i2p2www/pages/global/nav.html:107 +msgid "Develop" +msgstr "" + +#: i2p2www/pages/global/nav.html:110 +msgid "Licenses" +msgstr "Lisenser" + +#: i2p2www/pages/global/nav.html:111 +msgid "Bug tracker" +msgstr "Feilsporer" + +#: i2p2www/pages/global/nav.html:114 +msgid "Academic research" +msgstr "" + +#: i2p2www/pages/global/nav.html:115 +msgid "Open research questions" +msgstr "" + +#: i2p2www/pages/global/nav.html:116 +msgid "Guides" +msgstr "Guider" + +#: i2p2www/pages/global/nav.html:118 +msgid "New developers" +msgstr "Nye utviklere" + +#: i2p2www/pages/global/nav.html:119 +msgid "Using an IDE with I2P" +msgstr "" + +#: i2p2www/pages/global/nav.html:120 +msgid "Developer guidelines and coding style" +msgstr "" + +#: i2p2www/pages/global/nav.html:121 +msgid "Monotone" +msgstr "Monotone" + +#: i2p2www/pages/global/nav.html:122 +msgid "New translators" +msgstr "Nye oversettere" + +#: i2p2www/pages/global/nav.html:125 +msgid "Bounties" +msgstr "" + +#: i2p2www/pages/global/nav.html:127 +msgid "Meetings" +msgstr "Møter" + +#: i2p2www/pages/global/nav.html:128 +msgid "Roadmap" +msgstr "" + +#: i2p2www/pages/global/nav.html:129 +msgid "Task list" +msgstr "Oppgave liste" + +#: i2p2www/pages/global/nav.html:132 +msgid "Language" +msgstr "Språk" + +#: i2p2www/pages/meetings/index.html:2 +msgid "Logs of past I2P meetings" +msgstr "" + +#: i2p2www/pages/meetings/index.html:4 +msgid "I2P Meetings ATOM Feed" +msgstr "" + +#: i2p2www/pages/meetings/index.html:7 +#, python-format +msgid "" +"Regularly scheduled project meetings are held on the first Tuesday of " +"every month at 8 PM UTC.\n" +"Anyone can schedule and\n" +"run a meeting, by posting the agenda in\n" +"the meetings forum." +msgstr "" + +#: i2p2www/pages/meetings/index.html:14 +#, python-format +msgid "" +"If you have something to discuss, please find the developers on IRC in " +"#i2p-dev.\n" +"Status updates from developers are also " +"available." +msgstr "" + +#: i2p2www/pages/meetings/show.html:2 +#, python-format +msgid "I2P Development Meeting %(id)s" +msgstr "" + +#: i2p2www/pages/meetings/show.html:10 +msgid "Full IRC Log" +msgstr "" + +#: i2p2www/pages/papers/list.html:28 +msgid "By topic" +msgstr "" + +#: i2p2www/pages/papers/list.html:34 +msgid "By date" +msgstr "" + +#: i2p2www/pages/papers/list.html:40 +msgid "By author" +msgstr "" + +#: i2p2www/pages/papers/list.html:69 +#, python-format +msgid "" +"Please send new or corrected entries to\n" +"%(email)s.
\n" +"If you can, please format them as BibTeX; see our\n" +"BibTeX source page for examples.
\n" +"Remember to include URLs if possible:\n" +"offline papers are less useful." +msgstr "" + +#: i2p2www/pages/papers/list.html:80 +#, python-format +msgid "" +"The source code for this page was adapted from\n" +"Free Haven's anonymity bibliography." +msgstr "" + +#: i2p2www/pages/site/contact.html:2 +msgid "Contact" +msgstr "Kontakt" + +#: i2p2www/pages/site/contact.html:4 +msgid "Email" +msgstr "E-post" + +#: i2p2www/pages/site/contact.html:5 +msgid "" +"Please do not use these email addresses for support requests.\n" +"These are not public email lists.\n" +"We do not provide help via email." +msgstr "" + +#: i2p2www/pages/site/contact.html:25 +msgid "" +"Our primary IRC network is the Irc2P network within I2P; a default tunnel" +" to this network is set up with new router installs.\n" +" We are also present on multiple standard networks like OFTC,\n" +" EIN and Freenode.\n" +" All I2P-related channels on all these network are linked to the main " +"channels on Irc2P via relay bots." +msgstr "" + +#: i2p2www/pages/site/contact.html:33 +msgid "Channel list:" +msgstr "Kanal liste:" + +#: i2p2www/pages/site/contact.html:35 +msgid "General i2p discussion and help channel" +msgstr "Generell I2P diskusjon og hjelp kanal" + +#: i2p2www/pages/site/contact.html:36 +msgid "Offtopic" +msgstr "" + +#: i2p2www/pages/site/contact.html:37 +msgid "Development talk" +msgstr "Utvikler prat" + +#: i2p2www/pages/site/contact.html:38 +msgid "Purple I2P (I2Pd) Development talk" +msgstr "Purple I2P (I2Pd) utvikler prat" + +#: i2p2www/pages/site/contact.html:39 +msgid "Abscond browser bundle discussion and development" +msgstr "" + +#: i2p2www/pages/site/contact.html:44 +#, python-format +msgid "" +"Most of the discussion about I2P's development happens on the I2P developer forum. This is usually the best" +" place to start with inquiries, if the dev IRC channel is inactive." +msgstr "" + +#: i2p2www/pages/site/contact.html:48 +msgid "Mailing lists" +msgstr "Epost lister" + +#: i2p2www/pages/site/contact.html:49 +msgid "" +"I2P does have a mailing list, but it is rarely used as the current small " +"team of developers prefer to communicate via IRC or the developer forum. " +"This may change in future." +msgstr "" + +#: i2p2www/pages/site/contact.html:54 +msgid "Subscribing" +msgstr "Abonnere" + +#: i2p2www/pages/site/contact.html:55 +msgid "" +"To subscribe to a mailing list, go to the list information page (linked " +"below) and fill out the form. I2P-internal email addresses " +"(foobar@mail.i2p) can be used." +msgstr "" + +#: i2p2www/pages/site/contact.html:59 +msgid "Unsubscribing" +msgstr "" + +#: i2p2www/pages/site/contact.html:60 +msgid "" +"To unsubscribe from a mailing list or edit your subscription options, go " +"to the list information page (linked below) and enter your subscription " +"email address." +msgstr "" + +#: i2p2www/pages/site/contact.html:64 +msgid "Lists" +msgstr "Lister" + +#: i2p2www/pages/site/contact.html:67 i2p2www/pages/site/contact.html:71 +msgid "Archive" +msgstr "Akriv" + +#: i2p2www/pages/site/contact.html:68 +msgid "I2P developer discussions - anything related to development of I2P" +msgstr "" + +#: i2p2www/pages/site/contact.html:72 +msgid "" +"General I2P discussion - anything that doesn't fit in a different list " +"goes here" +msgstr "" + +#: i2p2www/pages/site/contact.html:78 +msgid "" +"You don't like mailing lists? Then this is for you. All mailing lists are" +" available via NNTP as well." +msgstr "" + +#: i2p2www/pages/site/contact.html:83 +msgid "Group-List-mapping:" +msgstr "" + +#: i2p2www/pages/site/contact.html:88 +msgid "Servers:" +msgstr "Tjenere:" + +#: i2p2www/pages/site/faq.html:2 +msgid "Frequently Asked Questions" +msgstr "Ofte-Stilte-Spørsmål" + +#: i2p2www/pages/site/faq.html:6 +msgid "General" +msgstr "Generelt" + +#: i2p2www/pages/site/faq.html:8 i2p2www/pages/site/faq.html:53 +msgid "What systems will I2P run on?" +msgstr "" + +#: i2p2www/pages/site/faq.html:9 +msgid "Whats an \"eepsite\" and how do I configure my browser so I can use them?" +msgstr "" + +#: i2p2www/pages/site/faq.html:10 i2p2www/pages/site/faq.html:266 +msgid "My router has very few active peers, is this OK?" +msgstr "" + +#: i2p2www/pages/site/faq.html:11 i2p2www/pages/site/faq.html:501 +msgid "What do the Active x/y numbers mean in the router console?" +msgstr "" + +#: i2p2www/pages/site/faq.html:12 i2p2www/pages/site/faq.html:228 +msgid "" +"My active peers / known peers / participating tunnels / connections / " +"bandwidth vary dramatically over time! Is anything wrong?" +msgstr "" + +#: i2p2www/pages/site/faq.html:13 i2p2www/pages/site/faq.html:351 +msgid "Is using an outproxy safe?" +msgstr "" + +#: i2p2www/pages/site/faq.html:14 i2p2www/pages/site/faq.html:377 +msgid "Most of the eepsites within I2P are down?" +msgstr "" + +#: i2p2www/pages/site/faq.html:15 i2p2www/pages/site/faq.html:530 +msgid "What ports does I2P use?" +msgstr "Hvilke porter bruker I2P?" + +#: i2p2www/pages/site/faq.html:16 +msgid "Why is I2P listening for connections on port 32000?" +msgstr "" + +#: i2p2www/pages/site/faq.html:17 i2p2www/pages/site/faq.html:64 +msgid "I think I found a bug, where can I report it?" +msgstr "" + +#: i2p2www/pages/site/faq.html:18 i2p2www/pages/site/faq.html:110 +msgid "What happened to *.i2p.net? What happened to jrandom? Is I2P dead?" +msgstr "" + +#: i2p2www/pages/site/faq.html:19 i2p2www/pages/site/faq.html:875 +msgid "Is installing Java required to use I2P?" +msgstr "" + +#: i2p2www/pages/site/faq.html:20 i2p2www/pages/site/faq.html:884 +msgid "I have a question!" +msgstr "" + +#: i2p2www/pages/site/faq.html:22 +msgid "Setup" +msgstr "Oppsett" + +#: i2p2www/pages/site/faq.html:24 i2p2www/pages/site/faq.html:235 +msgid "" +"My router has been up for several minutes and has zero or very few " +"connections" +msgstr "" + +#: i2p2www/pages/site/faq.html:25 i2p2www/pages/site/faq.html:393 +msgid "Why is I2P so slow?" +msgstr "" + +#: i2p2www/pages/site/faq.html:26 i2p2www/pages/site/faq.html:81 +msgid "" +"I'm missing lots of hosts in my addressbook. What are some good " +"subscription links?" +msgstr "" + +#: i2p2www/pages/site/faq.html:27 i2p2www/pages/site/faq.html:386 +msgid "How do I set up my own eepsite?" +msgstr "" + +#: i2p2www/pages/site/faq.html:28 i2p2www/pages/site/faq.html:419 +msgid "Bittorrent / I2PSnark / Azureus I2P Plugin Questions?" +msgstr "" + +#: i2p2www/pages/site/faq.html:29 i2p2www/pages/site/faq.html:426 +msgid "How do I connect to IRC within I2P?" +msgstr "" + +#: i2p2www/pages/site/faq.html:30 i2p2www/pages/site/faq.html:284 +msgid "I can't access regular Internet sites through I2P." +msgstr "" + +#: i2p2www/pages/site/faq.html:31 i2p2www/pages/site/faq.html:299 +msgid "I can't access https:// or ftp:// sites through I2P." +msgstr "" + +#: i2p2www/pages/site/faq.html:32 i2p2www/pages/site/faq.html:509 +msgid "Is it possible to use I2P as a SOCKS proxy?" +msgstr "" + +#: i2p2www/pages/site/faq.html:33 i2p2www/pages/site/faq.html:492 +msgid "How do I configure my browser?" +msgstr "" + +#: i2p2www/pages/site/faq.html:34 i2p2www/pages/site/faq.html:437 +msgid "" +"How can I access the web console from my other machines or password " +"protect it?" +msgstr "" + +#: i2p2www/pages/site/faq.html:35 i2p2www/pages/site/faq.html:477 +msgid "How can I use applications from my other machines?" +msgstr "" + +#: i2p2www/pages/site/faq.html:36 i2p2www/pages/site/faq.html:751 +msgid "How do I reseed manually?" +msgstr "" + +#: i2p2www/pages/site/faq.html:37 i2p2www/pages/site/faq.html:127 +msgid "My router is using too much CPU?!?" +msgstr "" + +#: i2p2www/pages/site/faq.html:39 +msgid "Misconception" +msgstr "" + +#: i2p2www/pages/site/faq.html:41 i2p2www/pages/site/faq.html:369 +msgid "" +"How do I access IRC, BitTorrent, or other services on the regular " +"Internet?" +msgstr "" + +#: i2p2www/pages/site/faq.html:42 +msgid "" +"Is my router an \"exit node\"(outproxy) to the regular Internet? I don't " +"want it to be." +msgstr "" + +#: i2p2www/pages/site/faq.html:43 i2p2www/pages/site/faq.html:191 +msgid "" +"I am opposed to certain types of content. How do I keep from " +"distributing, storing, or accessing them?" +msgstr "" + +#: i2p2www/pages/site/faq.html:45 +msgid "Errors and Their Solutions" +msgstr "" + +#: i2p2www/pages/site/faq.html:47 i2p2www/pages/site/faq.html:816 +msgid "" +"I'm using FreeBSD and when I start I2P I receive an error about " +"libm.so.4!" +msgstr "" + +#: i2p2www/pages/site/faq.html:48 +msgid "" +"In wrapper.log I see an error stating Protocol family " +"unavailable when I2P is loading" +msgstr "" + +#: i2p2www/pages/site/faq.html:54 i2p2www/pages/site/faq.html:65 +#: i2p2www/pages/site/faq.html:82 i2p2www/pages/site/faq.html:111 +#: i2p2www/pages/site/faq.html:128 i2p2www/pages/site/faq.html:192 +#: i2p2www/pages/site/faq.html:229 i2p2www/pages/site/faq.html:236 +#: i2p2www/pages/site/faq.html:267 i2p2www/pages/site/faq.html:276 +#: i2p2www/pages/site/faq.html:285 i2p2www/pages/site/faq.html:300 +#: i2p2www/pages/site/faq.html:352 i2p2www/pages/site/faq.html:370 +#: i2p2www/pages/site/faq.html:378 i2p2www/pages/site/faq.html:387 +#: i2p2www/pages/site/faq.html:394 i2p2www/pages/site/faq.html:420 +#: i2p2www/pages/site/faq.html:427 i2p2www/pages/site/faq.html:438 +#: i2p2www/pages/site/faq.html:478 i2p2www/pages/site/faq.html:485 +#: i2p2www/pages/site/faq.html:493 i2p2www/pages/site/faq.html:502 +#: i2p2www/pages/site/faq.html:510 i2p2www/pages/site/faq.html:531 +#: i2p2www/pages/site/faq.html:739 i2p2www/pages/site/faq.html:752 +#: i2p2www/pages/site/faq.html:817 i2p2www/pages/site/faq.html:849 +#: i2p2www/pages/site/faq.html:876 i2p2www/pages/site/faq.html:885 +msgid "link" +msgstr "" + +#: i2p2www/pages/site/faq.html:55 +#, python-format +msgid "" +"While I2P has been reported to run PCs as meagre as a low-end Pentium II " +"with 64 MB of RAM, you'll have a much better experience on a Pentium III " +"(or better) with 128MB of RAM (or more). A chart " +"comparing the performance of the various JREs can be found at %(chart)s, but in short: it's at all possible, use" +" Sun/Oracle Java or OpenJDK." +msgstr "" + +#: i2p2www/pages/site/faq.html:59 +msgid "" +"I2P has been tested on Windows, Linux, FreeBSD (see the note below), OSX, and OpenSolaris. There is work " +"underway to bring I2P to the Android platform." +msgstr "" + +#: i2p2www/pages/site/faq.html:67 +msgid "Here are some places, pick one or more." +msgstr "" + +#: i2p2www/pages/site/faq.html:73 +msgid "Discuss with the developers on IRC in #i2p-dev" +msgstr "" + +#: i2p2www/pages/site/faq.html:77 +msgid "Please include relevant information from the router logs and wrapper logs." +msgstr "" + +#: i2p2www/pages/site/faq.html:83 +msgid "" +"The default subscription is to http://www.i2p2.i2p/hosts.txt which is " +"updated rarely.\n" +"If you don't have another subscription, you may often have to use " +"\"jump\" links which\n" +"is annoying." +msgstr "" + +#: i2p2www/pages/site/faq.html:89 +msgid "" +"Here are some other public addressbook subscription links. You may wish " +"to add one or two\n" +"to your susidns " +"subscription list.\n" +"You don't need to add all of them, as they sync with each other " +"periodically.\n" +"The links using a cgi-bin application employ various strategies to " +"minimize\n" +"the number of duplicate addresses delivered, so they should be more " +"efficient.\n" +"Note that subscribing to a hosts.txt service is an act of \"trust\", as a" +" malicious\n" +"subscription could give you incorrect addresses. So think about whether " +"you\n" +"want to trust any of these.\n" +"The operators of these services may have various policies for listing " +"hosts.\n" +"Presence on this list does not imply endorsement." +msgstr "" + +#: i2p2www/pages/site/faq.html:112 +msgid "" +"Jrandom was the lead developer of I2P and\n" +"Syndie for several years.\n" +"We do not know if or when jrandom will return.\n" +"The *.i2p.net domains were left in a non-functioning state after a power\n" +"outage at the hosting company." +msgstr "" + +#: i2p2www/pages/site/faq.html:120 +#, python-format +msgid "" +"See this page for jrandom's parting message " +"and additional information\n" +"on the migration of *.i2p.net to this website." +msgstr "" + +#: i2p2www/pages/site/faq.html:125 +msgid "I2P remains in active development." +msgstr "" + +#: i2p2www/pages/site/faq.html:129 +msgid "There are many possible causes of high CPU usage. Here is a checklist:" +msgstr "" + +#: i2p2www/pages/site/faq.html:134 +msgid "" +"Try to use either OpenJDK or Sun/Oracle Java if it's available for your " +"system. You can check \n" +"which version of java you have installed by typing java " +"-version at a \n" +"command/shell prompt. Performance tends to suffer with other " +"implementations of java." +msgstr "" + +#: i2p2www/pages/site/faq.html:141 +msgid "" +"Are you running a BitTorrent client over I2P? Try reducing the number of " +"torrents, the bandwidth limits,\n" +"or try turning it off completely to see if that helps." +msgstr "" + +#: i2p2www/pages/site/faq.html:147 +msgid "" +"Are your bandwidth limits set too high? It is possible that too much " +"traffic is going through your\n" +"I2P router and it is overloaded. Try reducing the setting for share " +"bandwidth percentage on the configuration page." +msgstr "" + +#: i2p2www/pages/site/faq.html:152 +msgid "" +"Make sure that you're running the latest version of I2P to get the " +"benefits of increased performance and bug fixes." +msgstr "" + +#: i2p2www/pages/site/faq.html:157 +msgid "" +"Has enough memory been set aside for use by I2P? Look at the memory graph" +" on the graphs page to see\n" +"if the memory usage is \"pegged\"—the JVM is spending most of its " +"time in\n" +"garbage collection. Increase the setting " +"wrapper.java.maxmemory in the file " +"wrapper.config." +msgstr "" + +#: i2p2www/pages/site/faq.html:164 +msgid "" +"Is the CPU usage simply higher than you would like, or is it pegged at " +"100% for a long time?\n" +"If it's pegged, this could be a bug. Look in the logs for clues." +msgstr "" + +#: i2p2www/pages/site/faq.html:170 +#, python-format +msgid "" +"You may be using the Java-based BigInteger library instead of the native " +"version,\n" +"especially if you are running on a new or unusual OS or hardware " +"(OpenSolaris, mipsel, etc.).\n" +"See the jbigi page for instructions on\n" +"diagnosing, building, and testing methods." +msgstr "" + +#: i2p2www/pages/site/faq.html:178 +msgid "" +"If your native jbigi library is working fine, the biggest user of\n" +"CPU may be routing traffic for participating tunnels. This uses CPU\n" +"because at each hop a layer of encryption must be decoded.\n" +"You can limit participating traffic in two ways - by reducing the\n" +"share bandwidth on\n" +"confignet.jsp,\n" +"or by setting router.maxParticipatingTunnels=nnn on\n" +"configadvanced.jsp." +msgstr "" + +#: i2p2www/pages/site/faq.html:193 +msgid "" +"Hmm. I2P is an anonymous network, so that's a tricky one.\n" +"I2P is designed to withstand censorship, providing a means for everyone " +"to communicate freely. \n" +"The best way to keep your PC free of (encrypted) traffic that you dislike" +" is to not use I2P.\n" +"Freedom of speech has some costs.\n" +"But let's address your question in three parts:" +msgstr "" + +#: i2p2www/pages/site/faq.html:202 +msgid "" +"Distribution - All traffic on I2P is encrypted in multiple layers." +" You don't know\n" +"a message's contents, source, or destination.\n" +"All traffic you route is internal to the I2P network, you are not an exit node (outproxy).\n" +"Your only alternative is to refuse to route\n" +"any traffic, by setting your share bandwidth or maximum " +"participating tunnels to 0 (see above).\n" +"It would be nice if you didn't do this, you should help the network by " +"routing traffic for others.\n" +"Over 95% of users route traffic for others." +msgstr "" + +#: i2p2www/pages/site/faq.html:213 +msgid "" +"Storage - I2P does not do distributed storage of content. You must" +" be thinking of\n" +"Freenet.\n" +"Nobody's content is being stored on your computer by running I2P." +msgstr "" + +#: i2p2www/pages/site/faq.html:220 +msgid "" +"Access - If there are some eepsites you don't like, don't go " +"there.\n" +"Or, use a blocking proxy like Privoxy or some type of \"net nanny\"." +msgstr "" + +#: i2p2www/pages/site/faq.html:230 +msgid "" +"No. This is normal.\n" +"All routers adjust dynamically to changing network conditions and demands." +msgstr "" + +#: i2p2www/pages/site/faq.html:237 +msgid "" +"You may need to reseed your I2P router. With recent versions of I2P you " +"can go to http://localhost:7657/configreseed" +" and click the Save Changes and Reseed Now button. If this " +"method doesn't work—or you're using a very old version—you " +"may need to reseed manually." +msgstr "" + +#: i2p2www/pages/site/faq.html:240 +msgid "" +"The reseed URL changed a few years ago. If this is your first install and" +" you have installed\n" +"an old (0.6.1.30 or earlier) release, or\n" +"you have not run I2P in a long time, you must change the URL and then\n" +"click \"Reseed\" on the console to find other routers.\n" +"After your router is running,\n" +"on configadvanced.jsp," +"\n" +"add the line i2p.reseedURL=http://netdb.i2p2.de/\n" +"OR i2p.reseedURL=http://i2pdb.tin0.de/netDb/ (either should " +"work),\n" +"then click \"Apply\", then click the \"reseed\" link on the left." +msgstr "" + +#: i2p2www/pages/site/faq.html:251 +#, python-format +msgid "" +"This works if you are running 0.6.1.27 or later.\n" +"If you are running release 0.6.1.31 or later, you probably don't need to " +"do this.\n" +"If you are running release 0.6.1.26 or earlier, either follow the\n" +"manual reseed instructions below\n" +"or install the latest release.\n" +"Possible alternate method - add\n" +"wrapper.java.additional.5=-Di2p.reseedURL=http://netdb.i2p2.de/\n" +"to wrapper.config, shutdown the router completely, then start again, then" +" click \"reseed\".\n" +"Let us know if this works." +msgstr "" + +#: i2p2www/pages/site/faq.html:262 +#, python-format +msgid "" +"...but you *really* should upgrade to " +"the latest version." +msgstr "" + +#: i2p2www/pages/site/faq.html:268 +msgid "" +"If your router has 10 or more active peers, everything is fine. Changes " +"in releases 0.6.1.31 and 0.6.1.32 improved the\n" +"efficiency of the router and effectively reduced the number of active " +"peers.\n" +"The router should maintain connections to a few peers at all " +"times.\n" +"The best way to stay \"better-connected\" to the network is to share more bandwidth." +msgstr "" + +#: i2p2www/pages/site/faq.html:275 +msgid "" +"Is my router an \"exit node\" to the regular Internet? I don't want it to" +" be." +msgstr "" + +#: i2p2www/pages/site/faq.html:277 +msgid "" +"No. Unlike Tor,\n" +"\"exit nodes\" or \"outproxies\" are not an inherent part of the network." +"\n" +"Only volunteers who set up and run separate applications will relay " +"traffic to the regular Internet.\n" +"There are very, very few of these." +msgstr "" + +#: i2p2www/pages/site/faq.html:286 +msgid "" +"See above. There are very few HTTP \"outproxies\", they are not an " +"inherent part of the network,\n" +"and they may not be up.\n" +"In addition, the old outproxies squid.i2p, true.i2p, and krabs.i2p have " +"vanished.\n" +"The only outproxy at the moment is false.i2p.\n" +"To use it, edit your i2ptunnel " +"settings for eepProxy\n" +"and set your outproxy list to 'false.i2p' (only).\n" +"Then stop and restart the eepProxy.\n" +"If it doesn't work, the outproxy is not up. It is not I2P's fault.\n" +"If your primary reason to use an anonymous network is to anonymously " +"access sites\n" +"on the regular Internet, you should probably try Tor." +msgstr "" + +#: i2p2www/pages/site/faq.html:301 +msgid "" +"Within I2P, there is no need for HTTPS, as all traffic is encrypted end-" +"to-end.\n" +"FTP is not supported for technical reasons." +msgstr "" + +#: i2p2www/pages/site/faq.html:305 +msgid "" +"There are no FTP \"outproxies\" to the Internet—it may not even be " +"possible to set up one.\n" +"Any other kind of outproxy may work if it's set up with a standard " +"tunnel. \n" +"If you would like to set up some type of outproxy, carefully research the" +" potential risks.\n" +"The I2P community may or may not be able to help with the technical " +"aspects, feel free to ask." +msgstr "" + +#: i2p2www/pages/site/faq.html:311 +msgid "" +"As explained several times above, any existing outproxy isn't a core part" +" of the network.\n" +"They are services run by individuals and they may or may not\n" +"be operational at any given time." +msgstr "" + +#: i2p2www/pages/site/faq.html:316 +msgid "" +"Update: Thanks to the work of h2ik, there is an https outproxy " +"available for use via I2P. Starting with I2P 0.8.4 the tunnel is " +"configured out of the box.
\n" +"In case the https outproxy is not available in your version of I2P, you " +"can add it easily by doing the following:" +msgstr "" + +#: i2p2www/pages/site/faq.html:322 +msgid "" +"Open i2p tunnel " +"manager. Scroll down to the bottom." +msgstr "" + +#: i2p2www/pages/site/faq.html:327 +msgid "" +"Choose CONNECT from New Client Tunnel dropdown list, click " +"Create" +msgstr "" + +#: i2p2www/pages/site/faq.html:332 +#, python-format +msgid "" +"In the new page, name and describe your new https tunnel as" +" you like.\n" +"The Access Point is your local port for the new https proxy " +"recommended port's 4445.\n" +"Outproxy should be the outproxy's .i2p address which supports " +"https. \n" +"See this forum post of h2ik's for the " +"address. \n" +"Make sure Shared Client, Delay Connect, AutoStart " +"are checked.\n" +"Other options should be left at the defaults. Click Save. In tunnel " +"manger, click the Start button next to your new tunnel." +msgstr "" + +#: i2p2www/pages/site/faq.html:342 +msgid "" +"In firefox, click through " +"Tools>Options>Advanced>Network>Setting." +"\n" +"Untick Use this proxy for all protocol, set SSL proxy: to " +"localhost:4445." +msgstr "" + +#: i2p2www/pages/site/faq.html:347 +msgid "Done." +msgstr "" + +#: i2p2www/pages/site/faq.html:353 +#, python-format +msgid "" +"\n" +"This is a question that only you can answer because the correct answer " +"depends on your behaviours, your\n" +"threat model, and how much you trust the " +"outproxy operator." +msgstr "" + +#: i2p2www/pages/site/faq.html:357 +msgid "" +"Like Tor, I2P does not magically encrypt the Internet.\n" +"You are vulnerable to snooping by the outproxy operators.\n" +"The Tor" +" FAQ\n" +"does a good job of explaining this." +msgstr "" + +#: i2p2www/pages/site/faq.html:363 +#, python-format +msgid "" +"In addition, you may be vulnerable to collusion between the outproxy " +"operator\n" +"and operators of other I2P services, if you use the same tunnels " +"(\"shared clients\").\n" +"There is additional discussion about this on %(zzz)s." +msgstr "" + +#: i2p2www/pages/site/faq.html:371 +msgid "" +"Unless an outproxy has been set up for the service you want to connect " +"to, this cannot be done.\n" +"There are only three types of outproxies running right now: HTTP, HTTPS, " +"and email. Note that there is not a SOCKS outproxy.\n" +"If this type of service is required, try Tor." +msgstr "" + +#: i2p2www/pages/site/faq.html:379 +#, python-format +msgid "" +"If you consider every eepsite that has ever been created, yes, most of " +"them are down.\n" +"People and eepsites come and go.\n" +"A good way to get started in I2P is check out a list of eepsites that are" +" currently up.\n" +"%(eepstatus)s tracks active eepsites." +msgstr "" + +#: i2p2www/pages/site/faq.html:388 +msgid "" +"Click on the Website link\n" +"at the top of your router console for instructions." +msgstr "" + +#: i2p2www/pages/site/faq.html:395 +msgid "" +"Why are downloads, torrents, web browsing, and everything else so slow on" +" I2P?\n" +"The encryption and routing within the I2P network adds a substantial " +"amount of overhead and limits bandwidth.\n" +"Anonymity isn't free." +msgstr "" + +#: i2p2www/pages/site/faq.html:400 +msgid "" +"In addition, you and everybody else probably need to increase your " +"bandwidth limits.\n" +"Two key settings are the inbound and outbound bandwidth limiters on\n" +"the configuration page.\n" +"With the default settings of 32KBps you will generally get no better than" +" 15KBps data transfer in I2PSnark.\n" +"Increasing the settings (but keeping within your actual connection " +"limitations)\n" +"will increase the potential transfer rate for I2PSnark and all other " +"applications." +msgstr "" + +#: i2p2www/pages/site/faq.html:408 +msgid "" +"Also, do you have sufficient share bandwidth configured to allow " +"participating tunnels\n" +"to route through your router? Believe it or not, allowing participating " +"traffic\n" +"keeps you well-integrated in the network and helps your own transfer " +"speeds." +msgstr "" + +#: i2p2www/pages/site/faq.html:413 +#, python-format +msgid "" +"I2P is a work in progress. Lots of improvements and fixes are being " +"implemented, and\n" +"generally speaking, running the latest release will help your " +"performance.\n" +"If you haven't, install the latest " +"release." +msgstr "" + +#: i2p2www/pages/site/faq.html:421 +#, python-format +msgid "" +"See the\n" +"I2P Bittorrent FAQ" +msgstr "" + +#: i2p2www/pages/site/faq.html:428 +msgid "" +"\n" +"A tunnel to the main IRC server within I2P, Irc2P, is created when I2P is" +" installed (see\n" +"the I2PTunnel " +"configuration page),\n" +"and is automatically started when the I2P router starts. To connect to " +"it, tell your IRC\n" +"client to connect to localhost 6668. XChat-like client users" +" can create a\n" +"new network with the server localhost/6668 (remember to tick" +" "Bypass\n" +"proxy server" if you have a proxy server configured)." +msgstr "" + +#: i2p2www/pages/site/faq.html:439 +msgid "" +"For security purposes, the router's admin console by default only listens" +"\n" +"for connections on the local interface. However, with a little hacking,\n" +"you can make it reachable remotely:" +msgstr "" + +#: i2p2www/pages/site/faq.html:447 +msgid "" +"Open ~/.i2p/clients.config and replace
\n" +"clientApp.0.args=7657 ::1,127.0.0.1 ./webapps/
\n" +"with
\n" +"clientApp.0.args=7657 0.0.0.0 ./webapps/" +msgstr "" + +#: i2p2www/pages/site/faq.html:455 +msgid "" +"Go to http://localhost:7657/configui" +"\n" +"and add a console username and password if desired." +msgstr "" + +#: i2p2www/pages/site/faq.html:461 +msgid "" +"Go to http://localhost:7657/index.jsp" +"\n" +"and hit \"Graceful restart\", which restarts the JVM and reloads the " +"client applications" +msgstr "" + +#: i2p2www/pages/site/faq.html:468 +msgid "" +"After that fires up, you should now be able to reach your console " +"remotely. Reload the router at\n" +"http://127.0.0.1:7657 and you will be prompted for the username and " +"password you specified in step 2\n" +"above if your browser supports the authentication popup. Note: the\n" +"0.0.0.0 above specifies an interface, not a network " +"or netmask. 0.0.0.0\n" +"means \"bind to all interfaces\", so it can be reachable on " +"127.0.0.1:7657 as well as\n" +"any LAN/WAN IP." +msgstr "" + +#: i2p2www/pages/site/faq.html:479 +msgid "" +"By default, the router I2CP interface (port 7654) binds to address " +"127.0.0.1. To bind to 0.0.0.0, set the\n" +"router advanced configuration option " +"i2cp.tcp.bindAllInterfaces=true and restart." +msgstr "" + +#: i2p2www/pages/site/faq.html:484 +msgid "Whats an \"eepsite\"?" +msgstr "" + +#: i2p2www/pages/site/faq.html:486 +msgid "" +"An eepsite is a website that is hosted anonymously - you can access it by" +"\n" +"setting your web browser's HTTP proxy to use the web proxy (typically it\n" +"listens on localhost port 4444), and browsing to the site." +msgstr "" + +#: i2p2www/pages/site/faq.html:494 +#, python-format +msgid "" +"The proxy config for different browsers is on a \n" +"separate page with screenshots. More advanced configs with external " +"tools\n" +"are possible but could introduce leaks in your setup." +msgstr "" + +#: i2p2www/pages/site/faq.html:503 +msgid "" +"x is the number of peers you've sent or received a message from\n" +"successfully in the last minute, y is the number of peers seen in the " +"last\n" +"hour or so." +msgstr "" + +#: i2p2www/pages/site/faq.html:511 +msgid "" +"The SOCKS proxy is working as of release 0.7.1. SOCKS 4/4a/5 are " +"supported.\n" +"There is no SOCKS outproxy so it is of limited use." +msgstr "" + +#: i2p2www/pages/site/faq.html:515 +msgid "" +"In addition, many applications leak sensitive\n" +"information that could identify you on the Internet. I2P only filters\n" +"connection data, but if the program you intend to run sends this\n" +"information as content, I2P has no way to protect your anonymity. For\n" +"example, some mail applications will send the IP address of the machine\n" +"they are running on to a mail server. There is no way for I2P to filter\n" +"this, thus using I2P to 'socksify' existing applications is possible, but" +"\n" +"extremely dangerous." +msgstr "" + +#: i2p2www/pages/site/faq.html:525 +#, python-format +msgid "" +"If you would like more information on the socks proxy application anyway," +"\n" +"there are some helpful hints on the socks page." +msgstr "" + +#: i2p2www/pages/site/faq.html:532 +msgid "" +"Okay, here's a rundown of the default ports (everything is configurable\n" +"through various settings, of course):" +msgstr "" + +#: i2p2www/pages/site/faq.html:541 +msgid "" +"Internet-facing ports\n" +"Note: New installs as of release 0.7.8 do not use port 8887; they select " +"a random port\n" +"between 9000 and 31000 when the program is run for the first time.\n" +"The selected port is shown on the router configuration page." +msgstr "" + +#: i2p2www/pages/site/faq.html:549 +msgid "" +"Outbound UDP from the random port noted on the configuration page to " +"arbitrary remote UDP ports, allowing replies\n" +" " +msgstr "" + +#: i2p2www/pages/site/faq.html:554 +msgid "" +"Outbound TCP from random high ports to arbitrary remote TCP ports\n" +" " +msgstr "" + +#: i2p2www/pages/site/faq.html:559 +msgid "" +"(optional, but recommended) Inbound UDP to the port noted on configuration page from " +"arbitrary locations\n" +" " +msgstr "" + +#: i2p2www/pages/site/faq.html:564 +msgid "" +"(optional, but recommended) Inbound TCP to the port noted on configuration page from " +"arbitrary locations
\n" +"Inbound TCP may be disabled on the configuration page." +msgstr "" + +#: i2p2www/pages/site/faq.html:570 +msgid "" +"Outbound UDP on port 123, allowing replies
\n" +"This is necessary for I2P's internal time sync (via SNTP - \n" +"querying a random SNTP host in pool.ntp.org or another\n" +"server you specify)" +msgstr "" + +#: i2p2www/pages/site/faq.html:581 +msgid "" +"Local I2P ports, listening only to local connections by default,\n" +"except where noted:" +msgstr "" + +#: i2p2www/pages/site/faq.html:587 +msgid "" +"1900: UPnP SSDP UDP multicast listener.\n" +"Cannot be changed. Binds to all interfaces.\n" +"May be disabled on confignet.jsp." +msgstr "" + +#: i2p2www/pages/site/faq.html:594 +msgid "" +"2827: BOB bridge, a higher level socket API for clients\n" +"Disabled by default.\n" +"May be enabled/disabled on configclients.jsp.\n" +"May be changed in the bob.config file." +msgstr "" + +#: i2p2www/pages/site/faq.html:602 +msgid "" +"4444: HTTP proxy\n" +"May be disabled or changed on the i2ptunnel page in the router " +"console.\n" +"May also be configured to be bound to a specific interface or all " +"interfaces." +msgstr "" + +#: i2p2www/pages/site/faq.html:609 +msgid "" +"4445: HTTPS proxy\n" +"May be disabled or changed on the i2ptunnel page in the router " +"console.\n" +"May also be configured to be bound to a specific interface or all " +"interfaces." +msgstr "" + +#: i2p2www/pages/site/faq.html:616 +msgid "" +"6668: IRC proxy\n" +"May be disabled or changed on the i2ptunnel page in the router " +"console.\n" +"May also be configured to be bound to a specific interface or all " +"interfaces." +msgstr "" + +#: i2p2www/pages/site/faq.html:623 +msgid "" +"7652: UPnP HTTP TCP event listener.\n" +"Binds to the LAN address.\n" +"May be changed with advanced config i2np.upnp.HTTPPort=nnnn.\n" +"May be disabled on confignet.jsp." +msgstr "" + +#: i2p2www/pages/site/faq.html:631 +msgid "" +"7653: UPnP SSDP UDP search response listener.\n" +"Binds to all interfaces.\n" +"May be changed with advanced config i2np.upnp.SSDPPort=nnnn.\n" +"May be disabled on confignet.jsp." +msgstr "" + +#: i2p2www/pages/site/faq.html:639 +msgid "" +"7654: I2P Client Protocol port, used by client apps.\n" +"May be changed to a different port on\n" +"configclients.jsp" +"\n" +"but this is not recommended.\n" +"May be to bind to a different interface or all interfaces, or disabled, " +"on\n" +"configclients.jsp." +msgstr "" + +#: i2p2www/pages/site/faq.html:649 +msgid "" +"7655: UDP for SAM bridge, a higher level socket API for clients\n" +"Only opened when a SAM V3 client requests a UDP session.\n" +"May be enabled/disabled on configclients.jsp.\n" +"May be changed in the clients.config file with the SAM command line " +"option sam.udp.port=nnnn." +msgstr "" + +#: i2p2www/pages/site/faq.html:657 +msgid "" +"7656: SAM bridge, a higher level socket API for clients\n" +"Disabled by default for new installs as of release 0.6.5.\n" +"May be enabled/disabled on configclients.jsp.\n" +"May be changed in the clients.config file." +msgstr "" + +#: i2p2www/pages/site/faq.html:665 +msgid "" +"7657: Your router console\n" +"May be disabled in the clients.config file.\n" +"May also be configured to be bound to a specific interface or all " +"interfaces in that file." +msgstr "" + +#: i2p2www/pages/site/faq.html:672 +msgid "" +"7658: Your eepsite\n" +"May be disabled in the clients.config file.\n" +"May also be configured to be bound to a specific interface or all " +"interfaces in the jetty.xml file." +msgstr "" + +#: i2p2www/pages/site/faq.html:679 +msgid "" +"7659: Outgoing mail to smtp.postman.i2p\n" +"May be disabled or changed on the i2ptunnel page in the router " +"console.\n" +"May also be configured to be bound to a specific interface or all " +"interfaces." +msgstr "" + +#: i2p2www/pages/site/faq.html:686 +msgid "" +"7660: Incoming mail from pop.postman.i2p\n" +"May be disabled or changed on the i2ptunnel page in the router " +"console.\n" +"May also be configured to be bound to a specific interface or all " +"interfaces." +msgstr "" + +#: i2p2www/pages/site/faq.html:693 +msgid "" +"8998: mtn.i2p2.i2p (Monotone - disabled by default)\n" +"May be disabled or changed on the i2ptunnel page in the router " +"console.\n" +"May also be configured to be bound to a specific interface or all " +"interfaces." +msgstr "" + +#: i2p2www/pages/site/faq.html:700 +msgid "" +"31000: Local connection to the wrapper control channel port.\n" +"Outbound to 32000 only, does not listen on this port.\n" +"Starts at 31000 and will increment until 31999 looking for a free port.\n" +"To change, see the\n" +"wrapper documentation.\n" +"For more information see below." +msgstr "" + +#: i2p2www/pages/site/faq.html:710 +msgid "" +"32000: Local control channel for the service wrapper.\n" +"To change, see the\n" +"wrapper documentation.\n" +"For more information see below." +msgstr "" + +#: i2p2www/pages/site/faq.html:722 +msgid "" +"The local I2P ports and the I2PTunnel ports do not need to be reachable " +"from \n" +"remote machines, but *should* be reachable locally. You can also create" +" \n" +"additional ports for I2PTunnel instances via " +"http://localhost:7657/i2ptunnel/ \n" +"(and in turn, would need to get your firewall to allow you local access, " +"but \n" +"not remote access, unless desired)." +msgstr "" + +#: i2p2www/pages/site/faq.html:730 +msgid "" +"So, to summarize, nothing needs to be reachable by unsolicited remote " +"peers, but\n" +"if you can configure your NAT/firewall to allow inbound UDP and TCP the " +"outbound facing port, you'll" +"\n" +"get better performance. You will also need to be able to send outbound " +"UDP packets\n" +"to arbitrary remote peers (blocking IPs randomly with something like " +"PeerGuardian\n" +"only hurts you - don't do it)." +msgstr "" + +#: i2p2www/pages/site/faq.html:738 +msgid "Why is I2P listening on port 32000?" +msgstr "" + +#: i2p2www/pages/site/faq.html:740 +msgid "" +"The Tanuki java service wrapper that we use opens this port—bound " +"to localhost—in order \n" +"to communicate with software running inside the JVM. When the JVM is " +"launched it is given a key \n" +"so it can connect to the wrapper. After the JVM establishes its " +"connection \n" +"to the wrapper, the wrapper refuses any additional connections." +msgstr "" + +#: i2p2www/pages/site/faq.html:746 +msgid "" +"More information can be found in the \n" +"wrapper documentation." +msgstr "" + +#: i2p2www/pages/site/faq.html:753 +msgid "" +"An I2P router only needs to be seeded once, to join the network for the " +"first\n" +"time. Reseeding involves fetching multiple \"RouterInfo\" files (bundled " +"into a\n" +"signed zip-file) from at least two predefined server URLs picked from a\n" +"volunteer-run group of clearnet HTTPS servers." +msgstr "" + +#: i2p2www/pages/site/faq.html:760 +msgid "" +"A typical symptom of a failed reseed is the \"Known\" indicator (on the " +"left\n" +"sidebar of the router console) displaying a very small value (often less " +"than\n" +"5) which does not increase. This can occur, among other things, if your " +"local\n" +"firewall limits outbound traffic or if the reseed request is blocked " +"entirely." +msgstr "" + +#: i2p2www/pages/site/faq.html:767 +msgid "" +"If you are stuck behind an ISP firewall or filter, you can use the " +"following\n" +"manual method (non-automated technical solution) to join the I2P network." +msgstr "" + +#: i2p2www/pages/site/faq.html:772 +msgid "Joining the I2P Network using a reseed file" +msgstr "" + +#: i2p2www/pages/site/faq.html:773 +msgid "" +"Please contact a known trustworthy friend who has a running I2P router, " +"and ask\n" +"them for help with reseeding your I2P router. Request that they send you " +"a\n" +"reseed file exported from their running I2P router. It is vital that the " +"file is\n" +"exchanged over a secure channel, e.g. encrypted to avoid external " +"tampering (PGP\n" +"Sign, Encrypt and Verified with a trusted public key). The file itself is" +"\n" +"unsigned, so please accept files only from known trusted friends. Never " +"import\n" +"a reseed file if you can not verify its source." +msgstr "" + +#: i2p2www/pages/site/faq.html:783 +#, python-format +msgid "To import the received %(filename)s file into your local I2P router:" +msgstr "" + +#: i2p2www/pages/site/faq.html:785 i2p2www/pages/site/faq.html:797 +#, python-format +msgid "Go to %(url)s" +msgstr "" + +#: i2p2www/pages/site/faq.html:786 +msgid "Under \"Manual Reseed from File\" click \"Browse...\"" +msgstr "" + +#: i2p2www/pages/site/faq.html:787 +#, python-format +msgid "Select the %(filename)s file" +msgstr "" + +#: i2p2www/pages/site/faq.html:788 +msgid "Click \"Reseed from File\"" +msgstr "" + +#: i2p2www/pages/site/faq.html:790 +#, python-format +msgid "Check the log for the following message:" +msgstr "" + +#: i2p2www/pages/site/faq.html:794 +msgid "Sharing a reseed file" +msgstr "" + +#: i2p2www/pages/site/faq.html:795 +msgid "" +"For trusted friends you can use your local I2P router to give them a jump" +" start:" +msgstr "" + +#: i2p2www/pages/site/faq.html:798 +msgid "Under \"Create Reseed File\" click \"Create reseed file\"" +msgstr "" + +#: i2p2www/pages/site/faq.html:799 +#, python-format +msgid "Securely send the %(filename)s file to your friend" +msgstr "" + +#: i2p2www/pages/site/faq.html:801 +msgid "" +"Do not reveal this file in any case to unknown users, since it contains\n" +"sensitive private data (100 RouterInfo) from your own I2P router! In " +"order to\n" +"protect your anonymity: you may wait a few random hours/days before you " +"share\n" +"the file with your trusted friend. It is also advisable to use this " +"procedure\n" +"sparingly (< 2 per week)." +msgstr "" + +#: i2p2www/pages/site/faq.html:809 +msgid " General guidelines for manual reseeding of I2P " +msgstr "" + +#: i2p2www/pages/site/faq.html:811 +msgid "" +"Do not publicly publish the reseed file or share these files with a " +"friend of a friend!" +msgstr "" + +#: i2p2www/pages/site/faq.html:812 +msgid "This file should be used only for a very limited number of friends (< 3)!" +msgstr "" + +#: i2p2www/pages/site/faq.html:813 +msgid "The file is valid only a few days (< 20)!" +msgstr "" + +#: i2p2www/pages/site/faq.html:819 +msgid "" +"When trying to start the router using \"i2prouter start\", you may see " +"output like the following:" +msgstr "" + +#: i2p2www/pages/site/faq.html:824 +msgid "" +"\n" +"In order to be inclusive and try to ensure that I2P will run on as many " +"systems \n" +"as possible, up until I2P 0.8.9 we used a java wrapper \n" +"compiled for FreeBSD 6.x. If you're receiving this error you most likely " +"are missing the necessary compatibility libraries.\n" +"These libraries may be installed by performing the following steps:" +msgstr "" + +#: i2p2www/pages/site/faq.html:832 +msgid "" +"Switch to the root user with su or log in as " +"root." +msgstr "" + +#: i2p2www/pages/site/faq.html:838 +#, python-format +msgid "" +"If you cannot install these compatibility libraries (or do not want to), " +"other\n" +"possibilities would be to compile the wrapper for your\n" +"system, starting I2P with the runplain.sh script, or you" +" can\n" +"replace the wrapper with one from the source tarball." +msgstr "" + +#: i2p2www/pages/site/faq.html:844 +msgid "" +"For the 0.8.9 release of I2P, the wrapper was upgraded to v3.5.12 and " +"compiled on systems running FreeBSD 7.2." +msgstr "" + +#: i2p2www/pages/site/faq.html:848 +msgid "" +"In wrapper.log I see an error that states \"Protocol " +"family unavailable\" when loading the Router Console" +msgstr "" + +#: i2p2www/pages/site/faq.html:850 +msgid "" +"Often this error will occur with any network enabled java software on " +"some systems that are configured to use IPv6 by default. There are a few " +"ways to solve this:" +msgstr "" + +#: i2p2www/pages/site/faq.html:855 +msgid "" +"On Linux based systems, you can echo 0 > " +"/proc/sys/net/ipv6/bindv6only" +msgstr "" + +#: i2p2www/pages/site/faq.html:857 +msgid "Look for the following lines in wrapper.config." +msgstr "" + +#: i2p2www/pages/site/faq.html:861 +msgid "" +"If the lines are there, uncomment them by removing the \"#\"s. If the " +"lines are not there, add them without the \"#\"s." +msgstr "" + +#: i2p2www/pages/site/faq.html:864 +msgid "" +"Another option would be to remove the ::1 from " +"~/.i2p/clients.config" +msgstr "" + +#: i2p2www/pages/site/faq.html:868 +msgid "" +"WARNING: For any changes to wrapper.config " +"to take effect, you must completely\n" +"stop the router and the wrapper. Clicking Restart on your\n" +"router console will NOT reread this file! You must\n" +"click Shutdown, wait 11 minutes, then start I2P." +msgstr "" + +#: i2p2www/pages/site/faq.html:877 +#, python-format +msgid "" +"While the main I2P client implementation requires Java, there are several" +"\n" +"alternative clients which don't require Java." +msgstr "" + +#: i2p2www/pages/site/faq.html:886 +#, python-format +msgid "" +"Great! Find us on IRC irc.freenode.net #i2p or post to\n" +"the forum and we'll post it here (with\n" +"the answer, hopefully)." +msgstr "" + +#: i2p2www/pages/site/impressum.html:4 +msgid "German laws" +msgstr "" + +#: i2p2www/pages/site/index.html:2 +msgid "I2P Anonymous Network" +msgstr "" + +#: i2p2www/pages/site/index.html:4 +msgid "" +"Anonymous peer-to-peer distributed communication layer built with open " +"source tools and designed to run any traditional Internet service such as" +" email, IRC or web hosting." +msgstr "" + +#: i2p2www/pages/site/index.html:9 +msgid "What does I2P do for you?" +msgstr "" + +#: i2p2www/pages/site/index.html:10 +msgid "" +"The I2P network provides strong privacy protections for communication " +"over the Internet. Many activities that would risk your privacy on the " +"public Internet can be conducted anonymously inside I2P." +msgstr "" + +#: i2p2www/pages/site/index.html:11 +#, python-format +msgid "Get I2P %(version)s" +msgstr "" + +#: i2p2www/pages/site/index.html:15 +msgid "What is I2P?" +msgstr "" + +#: i2p2www/pages/site/index.html:17 +msgid "" +"I2P is an anonymous overlay network - a network within a network. It is " +"intended to protect communication from dragnet surveillance and " +"monitoring by third parties such as ISPs.\n" +msgstr "" + +#: i2p2www/pages/site/index.html:20 +msgid "" +"I2P is used by many people who care about their privacy: activists, " +"oppressed people, journalists and whistleblowers, as well as the average " +"person.\n" +msgstr "" + +#: i2p2www/pages/site/index.html:23 +msgid "" +"No network can be \"perfectly anonymous\". The continued goal of I2P is " +"to make attacks more and more difficult to mount. Its anonymity will get " +"stronger as the size of the network increases and with ongoing academic " +"review.\n" +msgstr "" + +#: i2p2www/pages/site/index.html:26 +msgid "" +"I2P is available on desktops, embedded systems (like the Raspberry Pi) " +"and Android phones. Help spread the word!\n" +msgstr "" + +#: i2p2www/pages/site/index.html:30 +msgid "Read more…" +msgstr "" + +#: i2p2www/pages/site/index.html:35 +msgid "What can you do with I2P?" +msgstr "" + +#: i2p2www/pages/site/index.html:38 +#, python-format +msgid "" +"Email: Integrated web mail interface," +" plugin for serverless email." +msgstr "" + +#: i2p2www/pages/site/index.html:43 +#, python-format +msgid "" +"Web browsing: Anonymous " +"websites, gateways to and from the public Internet." +msgstr "" + +#: i2p2www/pages/site/index.html:48 +#, python-format +msgid "" +"Blogging and forums: " +"Blogging and Syndie plugins." +msgstr "" + +#: i2p2www/pages/site/index.html:53 +#, python-format +msgid "" +"Website hosting: Integrated" +" anonymous web server." +msgstr "" + +#: i2p2www/pages/site/index.html:58 +#, python-format +msgid "" +"Real-time chat: Instant " +"messaging and IRC clients." +msgstr "" + +#: i2p2www/pages/site/index.html:63 +#, python-format +msgid "" +"File sharing: ED2K and " +"Gnutella clients, integrated BitTorrent client." +msgstr "" + +#: i2p2www/pages/site/index.html:68 +#, python-format +msgid "" +"Decentralized file " +"storage: Tahoe-LAFS distributed filesystem plugin." +msgstr "" + +#: i2p2www/pages/site/index.html:73 +#, python-format +msgid "More supported applications…" +msgstr "" + +#: i2p2www/pages/site/index.html:81 +msgid "News & Updates" +msgstr "Nyheter og oppdateringer" + +#: i2p2www/pages/site/links.html:4 +msgid "Recommended Links & Resources" +msgstr "" + +#: i2p2www/pages/site/links.html:5 +#, python-format +msgid "" +"See also the page with\n" +"links to presentations, videos, and tutorials about" +" I2P." +msgstr "" + +#: i2p2www/pages/site/links.html:12 +msgid "I2P on the web" +msgstr "" + +#: i2p2www/pages/site/links.html:20 +msgid "Friends of I2P" +msgstr "" + +#: i2p2www/pages/site/links.html:35 +msgid "More Projects and Documentation" +msgstr "" + +#: i2p2www/pages/site/links.html:45 +msgid "Press" +msgstr "" + +#: i2p2www/pages/site/links.html:49 +msgid "Boards, newssite, others" +msgstr "" + +#: i2p2www/pages/site/links.html:53 +msgid "Very Old Stuff" +msgstr "" + diff --git a/i2p2www/translations/sq/LC_MESSAGES/docs.po b/i2p2www/translations/sq/LC_MESSAGES/docs.po new file mode 100644 index 00000000..269f321a --- /dev/null +++ b/i2p2www/translations/sq/LC_MESSAGES/docs.po @@ -0,0 +1,16067 @@ +# Albanian translations for I2P. +# Copyright (C) 2017 ORGANIZATION +# This file is distributed under the same license as the I2P project. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: I2P\n" +"Report-Msgid-Bugs-To: http://trac.i2p2.de\n" +"POT-Creation-Date: 2017-09-08 12:54+0000\n" +"PO-Revision-Date: 2018-01-27 21:42+0000\n" +"Last-Translator: str4d \n" +"Language-Team: Albanian (http://www.transifex.com/otf/I2P/language/sq/)\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 1.3\n" + +#: i2p2www/pages/site/docs/index.html:2 i2p2www/pages/site/docs/index.html:23 +msgid "Index to Technical Documentation" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:3 i2p2www/pages/site/docs/reseed.html:3 +#: i2p2www/pages/site/docs/how/elgamal-aes.html:3 +msgid "January 2016" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:6 +msgid "Following is an index to the technical documentation for I2P." +msgstr "" + +#: i2p2www/pages/site/docs/index.html:10 +msgid "" +"This index is ordered from the highest to lowest layers.\n" +"The higher layers are for \"clients\" or applications;\n" +"the lower layers are inside the router itself.\n" +"The interface between applications and the router is the I2CP (I2P " +"Control Protocol) API." +msgstr "" + +#: i2p2www/pages/site/docs/index.html:17 +#, python-format +msgid "" +"The I2P Project is committed to maintaining accurate, current " +"documentation.\n" +"If you find any inaccuracies in the documents linked below, please\n" +"enter a ticket identifying the problem." +msgstr "" + +#: i2p2www/pages/site/docs/index.html:25 i2p2www/pages/site/docs/naming.html:6 +#: i2p2www/pages/site/docs/api/bob.html:42 +#: i2p2www/pages/site/docs/api/i2ptunnel.html:7 +#: i2p2www/pages/site/docs/api/streaming.html:6 +#: i2p2www/pages/site/docs/applications/embedding.html:7 +#: i2p2www/pages/site/docs/applications/managed-clients.html:7 +#: i2p2www/pages/site/docs/how/elgamal-aes.html:6 +#: i2p2www/pages/site/docs/how/network-database.html:6 +#: i2p2www/pages/site/docs/how/peer-selection.html:6 +#: i2p2www/pages/site/docs/how/tech-intro.html:9 +#: i2p2www/pages/site/docs/how/tech-intro.html:93 +#: i2p2www/pages/site/docs/how/tunnel-routing.html:6 +#: i2p2www/pages/site/docs/tunnels/implementation.html:67 +#: i2p2www/pages/site/docs/tunnels/unidirectional.html:6 +msgid "Overview" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:27 +msgid "Technical Introduction" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:28 +msgid "A Less-Technical Introduction" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:29 +msgid "Threat model and analysis" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:30 +msgid "Comparisons to other anonymous networks" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:31 +msgid "Specifications" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:32 +msgid "Protocol stack chart" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:33 +msgid "Papers on I2P" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:34 +msgid "Presentations, articles, tutorials, videos, and interviews" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:35 +#, python-format +msgid "" +"Invisible Internet Project (I2P) Project Overview" +" August 28, 2003 (pdf)" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:38 +msgid "Application-Layer Topics" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:41 i2p2www/pages/site/docs/naming.html:2 +msgid "Naming and Addressbook" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:42 +msgid "Plugins Overview" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:43 +msgid "Plugin Specification" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:44 +#: i2p2www/pages/site/docs/applications/managed-clients.html:2 +#: i2p2www/pages/site/docs/applications/managed-clients.html:20 +msgid "Managed Clients" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:45 i2p2www/pages/site/docs/index.html:223 +msgid "Embedding the router in your application" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:46 +#: i2p2www/pages/site/docs/applications/bittorrent.html:2 +msgid "Bittorrent over I2P" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:47 +msgid "I2PControl Plugin API" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:48 +msgid "hostsdb.blockfile Format" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:49 i2p2www/pages/site/docs/index.html:195 +msgid "Configuration File Format" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:52 +msgid "Application Layer API and Protocols" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:53 +msgid "" +"High-level, easy-to-use APIs for applications written in any language to " +"send and receive data." +msgstr "" + +#: i2p2www/pages/site/docs/index.html:55 +msgid "Application Development Overview and Guide" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:59 +#: i2p2www/pages/site/docs/api/i2ptunnel.html:51 +msgid "I2PTunnel Configuration" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:75 +msgid "SAM Protocol" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:77 +msgid "SAMv2 Protocol" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:79 +msgid "SAMv3 Protocol" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:81 +msgid "BOB Protocol" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:84 +msgid "End-to-End Transport API and Protocols" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:85 +msgid "" +"The end-to-end protocols used by clients for reliable and unreliable " +"communication." +msgstr "" + +#: i2p2www/pages/site/docs/index.html:87 +#: i2p2www/pages/site/docs/api/streaming.html:2 +msgid "Streaming Library" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:89 +msgid "Streaming Protocol Specification" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:91 +msgid "Streaming Javadoc" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:93 +#: i2p2www/pages/site/docs/api/datagrams.html:2 +msgid "Datagrams" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:95 +msgid "Datagram Javadoc" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:98 +msgid "Client-to-Router Interface API and Protocol" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:99 +msgid "" +"The lowest-level API used for clients (applications) to send and receive " +"traffic to a router.\n" +"Traditionally used only by Java applications and higher-level APIs." +msgstr "" + +#: i2p2www/pages/site/docs/index.html:104 +msgid "I2CP - I2P Control Protocol / API overview" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:106 +msgid "I2CP Specification" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:108 +msgid "I2CP API Javadoc" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:110 +#: i2p2www/pages/site/docs/index.html:140 +msgid "Common data structures specification" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:112 +#: i2p2www/pages/site/docs/index.html:142 +msgid "Data Structures Javadoc" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:115 +msgid "End-to-End Encryption" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:116 +msgid "How client messages are end-to-end encrypted by the router." +msgstr "" + +#: i2p2www/pages/site/docs/index.html:118 +msgid "ElGamal/AES+SessionTag encryption" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:119 +#: i2p2www/pages/site/docs/index.html:153 +msgid "ElGamal and AES cryptography details" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:122 +#: i2p2www/pages/site/docs/how/tech-intro.html:11 +#: i2p2www/pages/site/docs/how/tech-intro.html:325 +msgid "Network Database" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:123 +msgid "" +"Distributed storage and retrieval of information about routers and " +"clients." +msgstr "" + +#: i2p2www/pages/site/docs/index.html:125 +msgid "Network database overview, details, and threat analysis" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:126 +msgid "Cryptographic hashes" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:127 +msgid "Cryptographic signatures" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:128 +#: i2p2www/pages/site/docs/index.html:187 +msgid "Router reseed specification" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:131 +msgid "Router Message Protocol" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:132 +msgid "" +"I2P is a message-oriented router. The messages sent between routers are " +"defined by the I2NP protocol." +msgstr "" + +#: i2p2www/pages/site/docs/index.html:134 +msgid "I2NP - I2P Network Protocol Overview" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:136 +msgid "I2NP Specification" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:138 +msgid "I2NP Javadoc" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:145 +#: i2p2www/pages/site/docs/how/tech-intro.html:10 +#: i2p2www/pages/site/docs/how/tech-intro.html:224 +msgid "Tunnels" +msgstr "Tunelet" + +#: i2p2www/pages/site/docs/index.html:146 +msgid "" +"Selecting peers, requesting tunnels through those peers, and encrypting " +"and routing messages through these tunnels." +msgstr "" + +#: i2p2www/pages/site/docs/index.html:148 +msgid "Peer profiling and selection" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:149 +msgid "Tunnel routing overview" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:150 +msgid "Garlic routing and \"garlic\" terminology" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:151 +msgid "Tunnel building and encryption" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:152 +msgid "ElGamal/AES" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:152 +msgid "for build request encryption" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:154 +msgid "Tunnel building specification" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:155 +msgid "Low-level tunnel message specification" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:156 +#: i2p2www/pages/site/docs/tunnels/unidirectional.html:2 +msgid "Unidirectional Tunnels" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:157 +#: i2p2www/pages/site/docs/how/peer-selection.html:299 +msgid "Peer Profiling and Selection in the I2P Anonymous Network" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:158 +msgid "2009 paper (pdf), not current but still generally accurate" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:161 +msgid "Transport Layer" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:162 +msgid "The protocols for direct (point-to-point) router to router communication." +msgstr "" + +#: i2p2www/pages/site/docs/index.html:164 +msgid "Transport layer overview" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:166 +msgid "TCP-based transport overview and specification" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:168 +msgid "UDP-based transport overview" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:170 +msgid "SSU specification" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:172 +msgid "NTCP transport encryption" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:174 +msgid "SSU transport encryption" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:176 +msgid "Transport Javadoc" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:178 +msgid "NTCP Javadoc" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:180 +msgid "SSU Javadoc" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:183 +msgid "Other Router Topics" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:185 +msgid "Router software updates" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:189 +msgid "Native BigInteger Library" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:191 +msgid "Time synchronization and NTP" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:193 +msgid "Performance" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:200 +msgid "Developer's Guides and Resources" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:202 +msgid "New Developer's Guide" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:204 +msgid "New Translator's Guide" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:206 +msgid "Monotone Guide" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:208 +msgid "Developer Guidelines" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:210 +msgid "Javadocs on the standard internet:" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:211 +#: i2p2www/pages/site/docs/index.html:215 +#: i2p2www/pages/site/docs/index.html:216 +#: i2p2www/pages/site/docs/index.html:217 +#, python-format +msgid "Server %(num)s" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:212 +#: i2p2www/pages/site/docs/index.html:221 +msgid "" +"Note: always verify that javadocs are current by checking the release " +"number." +msgstr "" + +#: i2p2www/pages/site/docs/index.html:214 +msgid "Javadocs inside I2P:" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:225 +msgid "How to Set up a Reseed Server" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:227 +msgid "Ports used by I2P" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:229 +msgid "Automatic updates to development builds inside I2P" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:231 +msgid "Updating the wrapper manually" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:233 +msgid "User forum" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:235 +msgid "Developer forum inside I2P" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:237 +msgid "Bug tracker" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:239 +msgid "Viewmtn inside I2P" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:241 +msgid "I2P Source exported to GitHub" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:243 +msgid "I2P Source Git Repo inside I2P" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:245 +msgid "Source translation at Transifex" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:247 +msgid "Roadmap" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:249 +msgid "To Do List" +msgstr "" + +#: i2p2www/pages/site/docs/index.html:249 +msgid "not current" +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:3 +msgid "May 2016" +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:8 +msgid "" +"I2P ships with a generic naming library and a base implementation \n" +"designed to work off a local name to destination mapping, as well as an\n" +"add-on application called the addressbook. \n" +"I2P also supports Base32 hostnames similar to " +"Tor's .onion addresses." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:15 +msgid "" +"The addressbook is a web-of-trust\n" +"driven secure, distributed, and human readable naming system, sacrificing" +" only\n" +"the call for all human readable names to be globally unique by mandating " +"only\n" +"local uniqueness. While all messages in I2P are cryptographically " +"addressed\n" +"by their destination, different people can have local addressbook entries" +" for\n" +"\"Alice\" which refer to different destinations. People can still " +"discover new\n" +"names by importing published addressbooks of peers specified in their web" +" of trust,\n" +"by adding in the entries provided through a third party, or (if some " +"people organize\n" +"a series of published addressbooks using a first come first serve " +"registration\n" +"system) people can choose to treat these addressbooks as name servers, " +"emulating\n" +"traditional DNS." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:29 +#, python-format +msgid "" +"NOTE: For the reasoning behind the I2P naming system, common arguments " +"against it\n" +"and possible alternatives see the naming" +" discussion\n" +"page." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:36 +msgid "Naming System Components" +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:38 +msgid "" +"There is no central naming authority in I2P.\n" +"All hostnames are local." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:43 +msgid "" +"The naming system is quite simple and most of it is implemented\n" +"in applications external to the router, but bundled with\n" +"the I2P distribution.\n" +"The components are:" +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:51 +msgid "" +"The local naming service which does lookups\n" +"and also handles Base32 hostnames." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:55 +msgid "" +"The HTTP proxy which asks the router for " +"lookups and points\n" +"the user to remote jump services to assist with failed lookups." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:59 +msgid "" +"HTTP host-add forms which allow users to " +"add hosts to their local hosts.txt" +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:62 +msgid "" +"HTTP jump services which provide their own" +" lookups and redirection." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:65 +msgid "" +"The addressbook application which merges " +"external\n" +"host lists, retrieved via HTTP, with the local list." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:69 +msgid "" +"The SusiDNS application which is a simple web " +"front-end\n" +"for addressbook configuration and viewing of the local host lists." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:76 +msgid "Naming Services" +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:78 +#, python-format +msgid "" +"All destinations in I2P are 516-byte (or longer) keys.\n" +"(To be more precise, it is a 256-byte public key plus a 128-byte signing " +"key\n" +"plus a null certificate, which in Base64 representation is 516 bytes.\n" +"Certificates are not " +"used now,\n" +"if they are, the keys will be longer.\n" +"One possible use of certificates is for proof of work.)" +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:87 +msgid "" +"If an application (i2ptunnel or the HTTP proxy) wishes to access\n" +"a destination by name, the router does a very simple local lookup\n" +"to resolve that name." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:93 +msgid "Hosts.txt Naming Service" +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:95 +msgid "" +"The hosts.txt Naming Service does a simple linear search through\n" +"text files. This naming service was the default until\n" +"release 0.8.8 when it was replaced by the Blockfile Naming Service.\n" +"The hosts.txt format had become too slow after the file grew to thousands" +" of entries." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:102 +#, python-format +msgid "" +"It does a linear search through three local files, in order, to\n" +"look up host names and convert them to a 516-byte destination key.\n" +"Each file is in a simple configuration file" +" format, with hostname=base64, one per line.\n" +"The files are:" +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:114 +msgid "Blockfile Naming Service" +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:116 +msgid "" +"The Blockfile Naming Service stores multiple \"addressbooks\" in a single" +"\n" +"database file named hostsdb.blockfile.\n" +"This Naming Service is the default since release 0.8.8." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:122 +#, python-format +msgid "" +"A blockfile is simply on-disk storage of multiple sorted maps (key-value " +"pairs),\n" +"implemented as skiplists.\n" +"The blockfile format is specified on the Blockfile page.\n" +"It provides fast Destination lookup in a compact format. While the " +"blockfile overhead is substantial,\n" +"the destinations are stored in binary rather than in Base 64 as in the " +"hosts.txt format.\n" +"In addition, the blockfile provides the capability of arbitrary metadata " +"storage\n" +"(such as added date, source, and comments) for each entry to implement " +"advanced addressbook features.\n" +"The blockfile storage requirement is a modest increase over the hosts.txt" +" format, and the blockfile provides\n" +"approximately 10x reduction in lookup times." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:134 +msgid "" +"On creation, the naming service imports entries from the three files used" +" by the hosts.txt Naming Service.\n" +"The blockfile mimics the previous implementation by maintaining three " +"maps that\n" +"are searched in-order, named privatehosts.txt, userhosts.txt, and " +"hosts.txt.\n" +"It also maintains a reverse-lookup map to implement rapid reverse lookups." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:141 +msgid "Other Naming Service Facilities" +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:143 +#, python-format +msgid "" +"The lookup is case-insensitive.\n" +"The first match is used, and conflicts are not detected.\n" +"There is no enforcement of naming rules in lookups.\n" +"Lookups are cached for a few minutes.\n" +"Base 32 resolution is described below.\n" +"For a full description of the Naming Service API see the\n" +"Naming Service Javadocs.\n" +"This API was significantly expanded in release 0.8.7 to provide\n" +"adds and removes, storage of arbitrary properties with the hostname,\n" +"and other features." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:156 +msgid "Alternatives and Experimental Naming Services" +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:158 +#, python-format +msgid "" +"The naming service is specified with the configuration property " +"i2p.naming.impl=class.\n" +"Other implementations are possible. For example,\n" +"there is an experimental facility for real-time lookups (a la DNS) over " +"the network within the router.\n" +"For more information see the alternatives on the discussion" +" page." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:165 +msgid "" +"The HTTP proxy does a lookup via the router for all hostnames ending in " +"'.i2p'.\n" +"Otherwise, it forwards the request to a configured HTTP outproxy.\n" +"Thus, in practice, all HTTP (eepsite) hostnames must end in the pseudo-" +"Top Level Domain '.i2p'." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:171 +#, python-format +msgid "" +"We have applied to reserve the .i2p TLD\n" +"following the procedures specified in RFC " +"6761." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:177 +msgid "" +"If the router fails to resolve the hostname, the HTTP proxy returns\n" +"an error page to the user with links to several \"jump\" services.\n" +"See below for details." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:183 +msgid "Addressbook" +msgstr "Libri i adresave. " + +#: i2p2www/pages/site/docs/naming.html:184 +msgid "Incoming Subscriptions and Merging" +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:186 +msgid "" +"The addressbook application periodically\n" +"retrieves other users' hosts.txt files and merges\n" +"them with the local hosts.txt, after several checks.\n" +"Naming conflicts are resolved on a first-come first-served\n" +"basis." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:194 +msgid "" +"Subscribing to another user's hosts.txt file involves\n" +"giving them a certain amount of trust.\n" +"You do not want them, for example, 'hijacking' a new site\n" +"by quickly entering in their own key for a new site before\n" +"passing the new host/key entry to you." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:202 +msgid "" +"For this reason, the only subscription configured by\n" +"default is http://i2p-projekt.i2p/hosts.txt " +"(http://udhdrtrcetjm5sxzskjyr5ztpeszydbh4dpl3pl4utgqqw2v4jna.b32.i2p/hosts.txt)," +" \n" +"which contains a copy of the hosts.txt included\n" +"in the I2P release.\n" +"Users must configure additional subscriptions in their\n" +"local addressbook application (via subscriptions.txt or SusiDNS)." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:211 +msgid "Some other public addressbook subscription links:" +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:218 +msgid "" +"The operators of these services may have various policies for listing " +"hosts.\n" +"Presence on this list does not imply endorsement." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:223 +#: i2p2www/pages/site/docs/naming.html:235 +msgid "Naming Rules" +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:224 +msgid "" +"While there are hopefully not any technical limitations within I2P on " +"host names,\n" +"the addressbook enforces several restrictions on host names\n" +"imported from subscriptions.\n" +"It does this for basic typographical sanity and compatibility with " +"browsers,\n" +"and for security.\n" +"The rules are essentially the same as those in RFC2396 Section 3.2.2.\n" +"Any hostnames violating these rules may not be propagated\n" +"to other routers." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:239 +msgid "Names are converted to lower case on import." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:243 +msgid "" +"Names are checked for conflict with existing names in the existing " +"userhosts.txt and hosts.txt\n" +"(but not privatehosts.txt) after conversion to lower case." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:248 +msgid "Must contain only [a-z] [0-9] '.' and '-' after conversion to lower case." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:252 +msgid "Must not start with '.' or '-'." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:256 +msgid "Must end with '.i2p'." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:260 +msgid "67 characters maximum, including the '.i2p'." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:264 +msgid "Must not contain '..'." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:268 +msgid "Must not contain '.-' or '-.' (as of 0.6.1.33)." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:272 +msgid "Must not contain '--' except in 'xn--' for IDN." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:276 +msgid "" +"Base32 hostnames (*.b32.i2p) are reserved for base 32 use and so are not " +"allowed to be imported." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:280 +msgid "" +"Certain hostnames reserved for project use are not allowed\n" +"(proxy.i2p, router.i2p, console.i2p, *.proxy.i2p, *.router.i2p, " +"*.console.i2p, and others)" +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:285 +msgid "Keys are checked for base64 validity." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:289 +msgid "" +"Keys are checked for conflict with existing keys in hosts.txt (but not " +"privatehosts.txt)." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:293 +msgid "Minimum key length 516 bytes." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:297 +msgid "Maximum key length 616 bytes (to account for certs up to 100 bytes)." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:302 +msgid "" +"Any name received via subscription that passes all the checks is added " +"via the local naming service." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:306 +msgid "" +"Note that the '.' symbols in a host name are of no significance,\n" +"and do not denote any actual naming or trust hierarchy.\n" +"If the name 'host.i2p' already exists, there is nothing\n" +"to prevent anybody from adding a name 'a.host.i2p' to their hosts.txt,\n" +"and this name can be imported by others' addressbook.\n" +"Methods to deny subdomains to non-domain 'owners' (certificates?),\n" +"and the desirability and feasibility of these methods,\n" +"are topics for future discussion." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:317 +msgid "" +"International Domain Names (IDN) also work in i2p (using punycode 'xn--' " +"form).\n" +"To see IDN .i2p domain names rendered correctly in Firefox's location " +"bar,\n" +"add 'network.IDN.whitelist.i2p (boolean) = true' in about:config." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:323 +msgid "" +"As the addressbook application does not use privatehosts.txt at all, in " +"practice\n" +"this file is the only place where it is appropriate to place private " +"aliases or\n" +"\"pet names\" for sites already in hosts.txt." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:329 +msgid "Advanced Subscription Feed Format" +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:337 +msgid "Outgoing Subscriptions" +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:338 +msgid "" +"Addressbook will publish the merged hosts.txt to a location\n" +"(traditionally hosts.txt in the local eepsite's home directory) to be " +"accessed by others\n" +"for their subscriptions.\n" +"This step is optional and is disabled by default." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:346 +msgid "" +"The addressbook application, together with eepget, saves the Etag and/or " +"Last-Modified\n" +"information returned by the web server of the subscription.\n" +"This greatly reduces the bandwidth required, as the web server will\n" +"return a '304 Not Modified' on the next fetch if nothing has changed." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:353 +msgid "" +"However the entire hosts.txt is downloaded if it has changed.\n" +"See below for discussion on this issue." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:358 +msgid "" +"Hosts serving a static hosts.txt or an equivalent CGI application\n" +"are strongly encouraged to deliver\n" +"a Content-Length header, and either an Etag or Last-Modified header.\n" +"Also ensure that the server delivers a '304 Not Modified' when " +"appropriate.\n" +"This will dramatically reduce the network bandwidth, and\n" +"reduce chances of corruption." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:367 +msgid "Host Add Services" +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:368 +msgid "" +"A host add service is a simple CGI application that takes a hostname and " +"a Base64 key as parameters\n" +"and adds that to its local hosts.txt.\n" +"If other routers subscribe to that hosts.txt, the new hostname/key\n" +"will be propagated through the network." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:375 +msgid "" +"It is recommended that host add services impose, at a minimum, the " +"restrictions imposed by the addressbook application listed above.\n" +"Host add services may impose additional restrictions on hostnames and " +"keys, for example:" +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:380 +msgid "A limit on number of 'subdomains'." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:384 +msgid "Authorization for 'subdomains' through various methods." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:388 +msgid "Hashcash or signed certificates." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:392 +msgid "Editorial review of host names and/or content." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:396 +msgid "Categorization of hosts by content." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:400 +msgid "Reservation or rejection of certain host names." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:404 +msgid "Restrictions on the number of names registered in a given time period." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:408 +msgid "Delays between registration and publication." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:412 +msgid "Requirement that the host be up for verification." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:416 +msgid "Expiration and/or revocation." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:420 +msgid "IDN spoof rejection." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:425 +msgid "Jump Services" +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:426 +msgid "" +"A jump service is a simple CGI application that takes a hostname as a " +"parameter\n" +"and returns a 301 redirect to the proper URL with a " +"?i2paddresshelper=key\n" +"string appended.\n" +"The HTTP proxy will interpret the appended string and\n" +"use that key as the actual destination.\n" +"In addition, the proxy will cache that key so the\n" +"address helper is not necessary until restart." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:436 +msgid "" +"Note that, like with subscriptions, using a jump service\n" +"implies a certain amount of trust, as a jump service could maliciously\n" +"redirect a user to an incorrect destination." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:442 +msgid "" +"To provide the best service, a jump service should be subscribed to\n" +"several hosts.txt providers so that its local host list is current." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:448 +msgid "" +"SusiDNS is simply a web interface front-end to configuring addressbook " +"subscriptions\n" +"and accessing the four addressbook files.\n" +"All the real work is done by the 'addressbook' application." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:454 +msgid "" +"Currently, there is little enforcement of addressbook naming rules within" +" SusiDNS,\n" +"so a user may enter hostnames locally that would be rejected by\n" +"the addressbook subscription rules." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:460 +msgid "Base32 Names" +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:461 +msgid "" +"I2P supports Base32 hostnames similar to Tor's .onion addresses.\n" +"Base32 addresses are much shorter and easier to handle than the\n" +"full 516-character Base64 Destinations or addresshelpers.\n" +"Example: " +"ukeu3k5oycgaauneqgtnvselmt4yemvoilkln7jpvamvfx7dnkdq.b32.i2p" +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:468 +#, python-format +msgid "" +"In Tor, the address is 16 characters (80 bits), or half of the SHA-1 " +"hash.\n" +"I2P uses 52 characters (256 bits) to represent the full SHA-256 hash.\n" +"The form is {52 chars}.b32.i2p.\n" +"Tor has recently published a\n" +"proposal\n" +"to convert to an identical format of {52 chars}.onion for their hidden " +"services.\n" +"Base32 is implemented in the naming service, which queries the\n" +"router over I2CP to lookup the LeaseSet to get the full Destination.\n" +"Base32 lookups will only be successful when the Destination is up and " +"publishing\n" +"a LeaseSet.\n" +"Because resolution may require a network database lookup, it may take " +"significantly\n" +"longer than a local address book lookup." +msgstr "" + +#: i2p2www/pages/site/docs/naming.html:483 +msgid "" +"Base32 addresses can be used in most places where hostnames or full " +"destinations\n" +"are used, however there are some exceptions where they may fail if the\n" +"name does not immediately resolve. I2PTunnel will fail, for example, if\n" +"the name does not resolve to a destination." +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:2 +msgid "Plugins" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:3 +msgid "June 2012" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:6 +msgid "General Information" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:7 +msgid "" +"I2P includes a plugin architecture\n" +"to support easy development and installation of additional software." +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:12 +msgid "" +"There are now plugins available that support distributed email, blogs, " +"IRC\n" +"clients, distributed file storage, wikis, and more." +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:17 +msgid "Benefits to i2p users and app developers:" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:22 +msgid "Easy distribution of applications" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:26 +msgid "" +"Allows innovation and use of additional libraries without worrying about\n" +"increasing the size of i2pupdate.sud" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:31 +msgid "" +"Support large or special-purpose applications that would never be bundled" +"\n" +"with the I2P installation" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:36 +msgid "Cryptographically signed and verified applications" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:40 +msgid "Automatic updates of applications, just like for the router" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:44 +msgid "" +"Separate initial install and update packages, if desired, for smaller " +"update downloads" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:48 +msgid "" +"One-click installation of applications. No more asking users to modify\n" +"wrapper.config or clients.config" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:53 +msgid "Isolate applications from the base $I2P installation" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:57 +msgid "" +"Automatic compatibility checking for I2P version, Java version, Jetty\n" +"version, and previous installed application version" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:62 +msgid "Automatic link addition in console" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:66 +msgid "" +"Automatic startup of application, including modifying classpath, without " +"requiring a restart" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:70 +msgid "Automatic integration and startup of webapps into console Jetty instance" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:74 +#, python-format +msgid "" +"Facilitate creation of 'app stores' like the one at\n" +"%(pluginsite)s" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:79 +msgid "One-click uninstall" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:83 +msgid "Language and theme packs for the console" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:87 +msgid "Bring detailed application information to the router console" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:91 +msgid "Non-java applications also supported" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:97 +msgid "Required I2P version" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:98 +msgid "0.7.12 or newer." +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:100 +msgid "Installation" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:101 +msgid "" +"To install and start a plugin, copy the .xpi2p install link " +"to\n" +"the form at the bottom of\n" +"configclients.jsp" +" in\n" +"your router console and click the \"install plugin\" button. After a" +"\n" +"plugin is installed and started, a link to the plugin will usually appear" +" at\n" +"the top of your summary bar." +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:110 +msgid "" +"To update a plugin to the latest version, just click the update button on" +"\n" +"configclients.jsp." +"\n" +"There is also a button to check if the plugin has a more recent version, " +"as\n" +"well as a button to check for updates for all plugins. Plugins will be " +"checked\n" +"for updates automatically when updating to a new I2P release (not " +"including dev\n" +"builds)." +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:120 +msgid "Development" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:121 +#, python-format +msgid "" +"See the latest plugin specification and " +"the\n" +"plugin forum on %(zzz)s." +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:126 +#, python-format +msgid "" +"See also the sources for plugins developed by various people. Some " +"plugins, such\n" +"as snowman, were " +"developed\n" +"specifically as examples." +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:132 +msgid "" +"Developers wanted! Plugins are a great way to learn more about I2P" +"\n" +"or easily add some feature." +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:137 +msgid "Getting Started" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:138 +#, python-format +msgid "" +"To create a plugin from an existing binary package you will need to get\n" +"makeplugin.sh from the i2p.scripts branch in " +"monotone." +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:144 +msgid "Known Issues" +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:145 +msgid "" +"Note that the router's plugin architecture does NOT currently\n" +"provide any additional security isolation or sandboxing of plugins." +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:151 +msgid "" +"Updates of a plugin with included jars (not wars) won't be recognized if\n" +"the plugin was already run, as it requires class loader trickery to flush" +" the\n" +"class cache; a full router restart is required." +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:157 +msgid "The stop button may be displayed even if there is nothing to stop." +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:161 +msgid "" +"Plugins running in a separate JVM create a logs/ directory " +"in\n" +"$CWD." +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:166 +msgid "" +"No initial keys are present, except for those of jrandom and zzz (using " +"the\n" +"same keys as for router update), so the first key seen for a signer is\n" +"automatically accepted—there is no signing key authority." +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:172 +msgid "" +"When deleting a plugin, the directory is not always deleted, especially " +"on\n" +"Windows." +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:177 +msgid "" +"Installing a plugin requiring Java 1.6 on a Java 1.5 machine will result " +"in a\n" +"\"plugin is corrupt\" message if pack200 compression of the plugin file " +"is used." +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:182 +msgid "Theme and translation plugins are untested." +msgstr "" + +#: i2p2www/pages/site/docs/plugins.html:186 +msgid "Disabling autostart doesn't always work." +msgstr "" + +#: i2p2www/pages/site/docs/ports.html:2 +msgid "Ports Used by I2P" +msgstr "" + +#: i2p2www/pages/site/docs/ports.html:3 +msgid "December 2015" +msgstr "" + +#: i2p2www/pages/site/docs/ports.html:7 +msgid "" +"These are the ports used or reserved by I2P, including those for known " +"plugins,\n" +"common alternates,\n" +"and some typical related applications." +msgstr "" + +#: i2p2www/pages/site/docs/ports.html:13 +#, python-format +msgid "" +"Note that many of these are not enabled by default.\n" +"There is more information in the FAQ.\n" +"See also the documentation for individual plugins.\n" +"Plugin authors please add any ports you use here.\n" +"For new plugins, we recommend using the next available port\n" +"in the 766x range." +msgstr "" + +#: i2p2www/pages/site/docs/ports.html:53 +msgid "recommended spot for new plugins/applications" +msgstr "" + +#: i2p2www/pages/site/docs/reseed.html:2 +msgid "Reseed Hosts" +msgstr "" + +#: i2p2www/pages/site/docs/reseed.html:8 +msgid "About Reseed hosts" +msgstr "" + +#: i2p2www/pages/site/docs/reseed.html:10 +msgid "" +"Reseed hosts are needed to for bootstrapping, that is, providing the " +"initial set of I2P nodes for your I2P node to talk to. Depending on the " +"status of your node it may need to bootstrap every now and then if many " +"of the nodes it knows of aren't contactable." +msgstr "" + +#: i2p2www/pages/site/docs/reseed.html:14 +msgid "" +"Reseeding is done over an encrypted connection and all of the bootstrap " +"information is signed by the reseed host you connect to, making it " +"impossible for an unauthenticated source to provide you with false " +"information." +msgstr "" + +#: i2p2www/pages/site/docs/reseed.html:19 +msgid "Running a Reseed host" +msgstr "" + +#: i2p2www/pages/site/docs/reseed.html:21 +msgid "" +"The more reseed hosts that are run, the more resilient the I2P network " +"becomes, and the harder it is to prevent users of I2P from connecting to " +"the network." +msgstr "" + +#: i2p2www/pages/site/docs/reseed.html:25 +msgid "" +"There have also been cases where the reseed hosts we had, have been under" +" heavy load due to botnet activities." +msgstr "" + +#: i2p2www/pages/site/docs/reseed.html:33 +msgid "Thank you" +msgstr "" + +#: i2p2www/pages/site/docs/reseed.html:35 +msgid "" +"If you are running a reseed server, We would like to thank you for " +"helping to\n" +"make the I2P network stronger and more resilient than ever." +msgstr "" + +#: i2p2www/pages/site/docs/reseed.html:41 +msgid "Thank you." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:2 +msgid "BOB - Basic Open Bridge" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:3 +msgid "August 2016" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:12 +msgid "Technical differences from SAM (for the better?)" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:14 +msgid "" +"BOB has separate command and data channels. \n" +"One, an application command channel socket to router to configure.\n" +"Two, the application data sockets to/from router that carry only data.\n" +"The command channel is only needed for making or setting the initial\n" +"destination key, and to set the destination key to port bindings. \n" +"All connections run in parallel." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:23 +msgid "" +"SAM has one connection that does everything, and you need to parse every " +"packet." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:27 +msgid "" +"BOB does not hold keypair values, nor does the router.\n" +"Your application holds the keypair values. \n" +"This is to reduce any extra complexity in the router code, it also adds " +"to\n" +"your privacy." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:34 +msgid "SAM router stores every keypair you ever make." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:38 +msgid "Those are the important differences." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:44 +msgid "KEYS = keypair public+private, these are BASE64" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:47 +msgid "KEY = public key, also BASE64" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:50 +msgid "" +"ERROR as is implied returns the message \"ERROR " +"\"+DESCRIPTION+\"\\n\", where the DESCRIPTION is what" +" went wrong." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:53 +msgid "" +"OK returns \"OK\", and if data is to be " +"returned, it is on the same line. OK means the command is " +"finished." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:56 +msgid "" +"DATA lines contain information that you requested. There may" +" be multiple DATA lines per request." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:60 +msgid "" +"NOTE: The help command is the ONLY command that has an exception " +"to\n" +"the rules... it can actually return nothing! This is intentional, since\n" +"help is a HUMAN and not an APPLICATION command." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:66 +msgid "Connection and Version" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:68 +msgid "" +"All BOB status output is by lines. Lines may be \\n or \\r\\n terminated," +" depending on the system.\n" +"On connection, BOB outputs two lines:" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:78 +msgid "The current version is:" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:82 +msgid "" +"Note that previous versions used upper-case hex digits and did not " +"conform to I2P versioning standards.\n" +"It is recommended that subsequent versions use digits 0-9 only." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:87 +msgid "Version history" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:92 +msgid "Version" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:93 +msgid "I2P Router Version" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:94 +msgid "Changes" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:97 +msgid "current version" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:100 +msgid "development versions" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:104 +msgid "Commands" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:106 +msgid "" +"PLEASE NOTE:\n" +"For CURRENT details on the commands PLEASE use the built-in help command." +" \n" +"Just telnet to localhost 2827 and type help and you can get full " +"documentation on each command." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:112 +msgid "" +"Commands never get obsoleted or changed, however new commands do get " +"added from time to time." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:117 +msgid "COMMAND" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:117 +msgid "OPERAND" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:117 +msgid "RETURNS" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:145 +msgid "" +"Once set up, all TCP sockets can and will block as needed, and there is " +"no need for any \n" +"additional messages to/from the command channel. This allows the router " +"to pace the\n" +"stream without exploding with OOM like SAM does as it chokes on " +"attempting to shove \n" +"many streams in or out one socket -- that can't scale when you have alot " +"of connections!" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:152 +msgid "" +"What is also nice about this particular interface is that writing " +"anything to interface \n" +"to it, is much much easier than SAM. There is no other processing to do " +"after the set up.\n" +"It's configuration is so simple, that very simple tools, such as nc " +"(netcat) can be used \n" +"to point to some application. The value there is that one could schedule " +"up and down times \n" +"for an application, and not have to change the application to do that, or" +" to even have \n" +"to stop that application. Instead, you can literally \"unplug\" the " +"destination, and \n" +"\"plug it in\" again. As long as the same IP/port addresses and " +"destination keys are used \n" +"when bringing the bridge up, the normal TCP application won't care, and " +"won't notice.\n" +"It will simply be fooled -- the destinations are not reachable, and that " +"nothing is coming in." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:164 +msgid "Examples" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:166 +msgid "" +"For the following example, we'll setup a very simple local loopback " +"connection, \n" +"with two destinations. Destination \"mouth\" will be the CHARGEN service " +"from \n" +"the INET superserver daemon. Destination \"ear\" will be a local port " +"that you\n" +"can telnet into, and watch the pretty ASCII test puke forth." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:174 +msgid "EXAMPLE SESSION DIALOGUE -- simple telnet 127.0.0.1 2827 works" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:175 +msgid "Application" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:176 +msgid "BOB's Command response." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:178 +#: i2p2www/pages/site/docs/api/bob.html:192 +#: i2p2www/pages/site/docs/api/bob.html:212 +#: i2p2www/pages/site/docs/api/bob.html:322 +#: i2p2www/pages/site/docs/api/bob.html:334 +#: i2p2www/pages/site/docs/api/bob.html:349 +msgid "FROM" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:178 +#: i2p2www/pages/site/docs/api/bob.html:192 +#: i2p2www/pages/site/docs/api/bob.html:212 +#: i2p2www/pages/site/docs/api/bob.html:322 +#: i2p2www/pages/site/docs/api/bob.html:334 +#: i2p2www/pages/site/docs/api/bob.html:349 +msgid "TO" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:178 +#: i2p2www/pages/site/docs/api/bob.html:192 +#: i2p2www/pages/site/docs/api/bob.html:212 +#: i2p2www/pages/site/docs/api/bob.html:322 +#: i2p2www/pages/site/docs/api/bob.html:334 +#: i2p2www/pages/site/docs/api/bob.html:349 +msgid "DIALOGUE" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:187 +msgid "MAKE NOTE OF THE ABOVE DESTINATION KEY, YOURS WILL BE DIFFERENT!" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:201 +msgid "" +"At this point, there was no error, a destination with a nickname of " +"\"mouth\" \n" +"is set up. When you contact the destination provided, you actually " +"connect \n" +"to the CHARGEN service on 19/TCP." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:207 +msgid "Now for the other half, so that we can actually contact this destination." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:229 +msgid "" +"Now all we need to do is telnet into 127.0.0.1, port 37337,\n" +"send the destination key or host address from addressbook we want to " +"contact.\n" +"In this case, we want to contact \"mouth\", all we do is paste in the\n" +"key and it goes." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:236 +msgid "" +"NOTE: The \"quit\" command in the command channel does NOT " +"disconnect the tunnels like SAM." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:253 +msgid "After a few virtual miles of this spew, press Control-]" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:265 +msgid "Here is what happened..." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:273 +msgid "You can connect to EEPSITES too!" +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:306 +msgid "" +"Pretty cool isn't it? Try some other well known EEPSITES if you like, " +"nonexistent ones, \n" +"etc, to get a feel for what kind of output to expect in different " +"situations. \n" +"For the most part, it is suggested that you ignore any of the error " +"messages. \n" +"They would be meaningless to the application, and are only presented for " +"human debugging." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:313 +msgid "Let's put down our destinations now that we are all done with them." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:317 +msgid "First, lets see what destination nicknames we have." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:329 +msgid "Alright, there they are. First, let's remove \"mouth\"." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:343 +msgid "" +"Now to remove \"ear\", note that this is what happens when you type too " +"fast,\n" +"and shows you what typical ERROR messages looks like." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:362 +msgid "" +"I won't bother to show an example of the receiver end of a bridge\n" +"because it is very simple. There are two possible settings for it, and\n" +"it is toggled with the \"quiet\" command." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:368 +msgid "" +"The default is NOT quiet, and the first data to come into your\n" +"listening socket is the destination that is making the contact. It is a\n" +"single line consisting of the BASE64 address followed by a newline.\n" +"Everything after that is for the application to actually consume." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:375 +msgid "" +"In quiet mode, think of it as a regular Internet connection. No\n" +"extra data comes in at all. It's just as if you are plain connected to\n" +"the regular Internet. This mode allows a form of transparency much like\n" +"is available on the router console tunnel settings pages, so that you\n" +"can use BOB to point a destination at a web server, for example, and\n" +"you would not have to modify the web server at all." +msgstr "" + +#: i2p2www/pages/site/docs/api/bob.html:384 +msgid "" +"The advantage with using BOB for this is as discussed\n" +"previously. You could schedule random uptimes for the application,\n" +"redirect to a different machine, etc. One use of this may be something\n" +"like wanting to try to goof up router-to-destination upness guessing.\n" +"You could stop and start the destination with a totally different\n" +"process to make random up and down times on services. That way you\n" +"would only be stopping the ability to contact such a service, and not\n" +"have to bother shutting it down and restarting it. You could redirect\n" +"and point to a different machine on your LAN while you do updates, or\n" +"point to a set of backup machines depending on what is running, etc,\n" +"etc. Only your imagination limits what you could do with BOB." +msgstr "" + +#: i2p2www/pages/site/docs/api/datagrams.html:3 +#: i2p2www/pages/site/docs/protocol/index.html:3 +msgid "August 2010" +msgstr "" + +#: i2p2www/pages/site/docs/api/datagrams.html:6 +msgid "Datagram Overview" +msgstr "" + +#: i2p2www/pages/site/docs/api/datagrams.html:7 +#, python-format +msgid "" +"Datagrams build upon the base I2CP to provide " +"authenticated\n" +"and repliable messages in a standard format. This lets applications " +"reliably read\n" +"the \"from\" address out of a datagram and know that the address really " +"sent the\n" +"message. This is necessary for some applications since the base I2P " +"message is\n" +"completely raw - it has no \"from\" address (unlike IP packets). In " +"addition, the\n" +"message and sender are authenticated by signing the payload." +msgstr "" + +#: i2p2www/pages/site/docs/api/datagrams.html:16 +#, python-format +msgid "" +"Datagrams, like streaming library packets,\n" +"are an application-level construct.\n" +"These protocols are independent of the low-level transports;\n" +"the protocols are converted to I2NP messages by the router, and\n" +"either protocol may be carried by either transport." +msgstr "" + +#: i2p2www/pages/site/docs/api/datagrams.html:25 +msgid "Application Guide" +msgstr "" + +#: i2p2www/pages/site/docs/api/datagrams.html:26 +#, python-format +msgid "" +"Applications written in Java may use the \n" +"datagram API,\n" +"while applications in other languages \n" +"can use SAM's datagram support.\n" +"There is also limited support in i2ptunnel in the SOCKS proxy,\n" +"the 'streamr' tunnel types, and udpTunnel classes." +msgstr "" + +#: i2p2www/pages/site/docs/api/datagrams.html:37 +msgid "Datagram Length" +msgstr "" + +#: i2p2www/pages/site/docs/api/datagrams.html:38 +msgid "" +"The application designer should carefully consider the tradeoff of " +"repliable vs. non-repliable\n" +"datagrams. Also, the datagram size will affect reliability, due to tunnel" +" fragmentation into 1KB\n" +"tunnel messages. The more message fragments, the more likely that one of " +"them will be dropped\n" +"by an intermediate hop. Messages larger than a few KB are not " +"recommended.\n" +"Over about 10 KB, the delivery probablility drops dramatically.\n" +"Messages over 16 KB cannot be delivered over NTCP, dropping delivery " +"chances even more." +msgstr "" + +#: i2p2www/pages/site/docs/api/datagrams.html:47 +#, python-format +msgid "" +"Also note that the various overheads added by lower layers, in particular" +" asymmetric\n" +"ElGamal/AES, place a large burden on " +"intermittent messages\n" +"such as used by a Kademlia-over-UDP application. The implementations are " +"currently tuned\n" +"for frequent traffic using the streaming library. There are a high number" +"\n" +"of session tags delivered, and a short session tag lifetime, for example." +"\n" +"There are currently no configuration parameters available within I2CP to " +"tune\n" +"the ElGamal Session Tag parameters." +msgstr "" + +#: i2p2www/pages/site/docs/api/datagrams.html:57 +msgid "I2CP Protocol Number and Ports" +msgstr "" + +#: i2p2www/pages/site/docs/api/datagrams.html:58 +msgid "" +"The standard I2CP protocol number for datagrams is PROTO_DATAGRAM (17).\n" +"Applications may or may not choose to set the\n" +"protocol in the I2CP header. It is not set by default.\n" +"It must be set to demultiplex datagram and streaming traffic received on " +"the same Destination." +msgstr "" + +#: i2p2www/pages/site/docs/api/datagrams.html:65 +#, python-format +msgid "" +"As datagrams are not connection-oriented, the application may require\n" +"port numbers to correlate datagrams with particular peers or " +"communications sessions,\n" +"as is traditional with UDP over IP.\n" +"Applications may add 'from' and 'to' ports to the I2CP (gzip) header as " +"described in\n" +"the I2CP page." +msgstr "" + +#: i2p2www/pages/site/docs/api/datagrams.html:73 +#, python-format +msgid "" +"There is no method within the datagram API to specify whether it is non-" +"repliable (raw)\n" +"or repliable. The application should be designed to expect the " +"appropriate type.\n" +"The I2CP protocol number or port should be used by the application to\n" +"indicate datagram type.\n" +"The I2CP protocol numbers PROTO_DATAGRAM (signed) and PROTO_DATAGRAM_RAW " +"are defined in the\n" +"I2PSession API\n" +"for this purpose. A common design pattern in client/server datagram " +"applications is to\n" +"use signed datagrams for a request which includes a nonce, and use a raw " +"datagram\n" +"for the reply, returning the nonce from the request." +msgstr "" + +#: i2p2www/pages/site/docs/api/datagrams.html:85 +#, python-format +msgid "" +"The protocols and ports may be set in I2CP's\n" +"I2PSession API,\n" +"as implemented in\n" +"I2PSessionMuxedImpl." +msgstr "" + +#: i2p2www/pages/site/docs/api/datagrams.html:93 +#: i2p2www/pages/site/docs/api/streaming.html:404 +msgid "Data Integrity" +msgstr "" + +#: i2p2www/pages/site/docs/api/datagrams.html:94 +#, python-format +msgid "" +"Data integrity is assured by the gzip CRC-32 checksum implemented in\n" +"the I2CP layer.\n" +"There is no checksum field in the datagram protocol." +msgstr "" + +#: i2p2www/pages/site/docs/api/datagrams.html:100 +#: i2p2www/pages/site/docs/api/streaming.html:412 +msgid "Packet Encapsulation" +msgstr "" + +#: i2p2www/pages/site/docs/api/datagrams.html:101 +#, python-format +msgid "" +"Each datagram is sent through I2P as a single message (or as an " +"individual clove in a\n" +"Garlic Message).\n" +"Message encapsulation is implemented in the underlying\n" +"I2CP,\n" +"I2NP, and\n" +"tunnel message layers.\n" +"There is no packet delimiter mechanism or length field in the datagram " +"protocol." +msgstr "" + +#: i2p2www/pages/site/docs/api/datagrams.html:114 +#: i2p2www/pages/site/docs/transport/ssu.html:644 +msgid "Specification" +msgstr "" + +#: i2p2www/pages/site/docs/api/datagrams.html:116 +msgid "See the Datagrams Specification page." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:2 +msgid "I2PControl - Remote Control Service" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:4 +#, python-format +msgid "" +"I2P enables a JSONRPC2 interface via the plugin I2PControl.\n" +"The aim of the interface is to provide simple way to interface with a " +"running I2P node. A client, itoopie, has been developed in parallel.\n" +"The JSONRPC2 implementation for the client as well as the plugin is " +"provided by the java libraries JSON-RPC 2.0. \n" +"A list of implementations of JSON-RPC for various languages can be found " +"at the JSON-RPC " +"wiki." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:11 +msgid "I2PControl is by default listening on https://localhost:7650" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:13 +msgid "API, version 1." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:14 +msgid "Parameters are only provided in a named way (maps)." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:18 +msgid "JSON-RPC 2 format" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:19 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:44 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:57 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:67 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:76 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:86 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:101 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:154 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:175 +msgid "Request:" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:32 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:49 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:61 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:71 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:81 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:92 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:118 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:164 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:190 +msgid "Response:" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:43 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:45 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:46 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:50 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:51 +#: i2p2www/pages/site/docs/protocol/i2cp.html:108 +#: i2p2www/pages/site/docs/protocol/i2cp.html:483 +msgid "Description" +msgstr "Përshkrim" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:47 +msgid "" +"Token used for authenticating every request (excluding the 'Authenticate'" +" RPC method)" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:55 +msgid "Implemented methods" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:56 +msgid "" +"Creates and returns an authentication token used for further " +"communication." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:58 +msgid "The version of the I2PControl API used by the client." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:59 +msgid "The password used for authenticating against the remote server." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:62 +msgid "The primary I2PControl API version implemented by the server." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:63 +msgid "The token used for further communication." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:66 +msgid "Echoes the value of the echo key, used for debugging and testing." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:68 +msgid "Value will be returned in response." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:69 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:79 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:90 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:116 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:162 +msgid "" +"Token used for authenticating the client. Is provided by the server via " +"the 'Authenticate' RPC method." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:72 +msgid "Value of the key 'echo' in the request." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:75 +msgid "" +"Fetches rateStat from router statManager. Creates stat if not already " +"created." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:77 +#, python-format +msgid "" +"Determines which rateStat to fetch, see ratestats." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:78 +msgid "Determines which period a stat is fetched for. Measured in ms." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:82 +msgid "Returns the average value for the reuested rateStat and period." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:85 +msgid "Manages I2PControl. Ports, passwords and the like." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:87 +msgid "" +"Sets a new listen address for I2PControl (only 127.0.0.1 and 0.0.0.0 are " +"implemented in I2PControl currently)." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:88 +msgid "" +"Sets a new password for I2PControl, all Authentication tokens will be " +"revoked." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:89 +msgid "Switches which port I2PControl will listen for connections on." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:93 +msgid "Returned if address was changed" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:94 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:95 +msgid "Returned if setting was changed" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:96 +msgid "Returns true if any changes were made." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:97 +msgid "Returns true if any changes requiring a restart to take effect were made." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:100 +msgid "Fetches basic information about the I2P router. Uptime, version etc." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:119 +msgid "What the status of the router is." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:120 +msgid "What the uptime of the router is in ms." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:121 +msgid "What version of I2P the router is running." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:122 +msgid "The 1 second average inbound bandwidth in Bps." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:123 +msgid "The 15 second average inbound bandwidth in Bps." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:124 +msgid "The 1 second average outbound bandwidth in Bps." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:125 +msgid "The 15 second average outbound bandwidth in Bps." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:126 +msgid "What the current network status is. According to the below enum:" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:145 +msgid "How many tunnels on the I2P net are we participating in." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:146 +msgid "How many peers have we communicated with recently." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:147 +msgid "How many peers are considered 'fast'." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:148 +msgid "How many peers are considered 'high capacity'." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:149 +msgid "Is the router reseeding hosts to its NetDB?" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:150 +msgid "How many peers are known to us (listed in our NetDB)." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:153 +msgid "Manages I2P router restart/shutdown." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:155 +msgid "Blocking. Initiates a search for signed updates." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:156 +msgid "" +"Initiates a router reseed, fetching peers into our NetDB from a remote " +"host." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:157 +msgid "Restarts the router." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:158 +msgid "" +"Restarts the router gracefully (waits for participating tunnels to " +"expire)." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:159 +msgid "Shuts down the router." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:160 +msgid "" +"Shuts down the router gracefully (waits for participating tunnels to " +"expire)." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:161 +msgid "Initiates a router update from signed sources." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:165 +msgid "Blocking. Returns true iff a signed update has been found." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:166 +msgid "If requested, verifies that a reseed has been initiated." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:167 +msgid "If requested, verifies that a restart has been initiated." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:168 +msgid "If requested, verifies that a graceful restart has been initiated." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:169 +msgid "If requested, verifies that a shutdown has been initiated" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:170 +msgid "If requested, verifies that a graceful shutdown has been initiated" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:171 +msgid "Blocking. If requested, returns the status of the the update" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:174 +msgid "Fetches or sets various network related settings. Ports, addresses etc." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:176 +msgid "" +"What port is used for the TCP transport. If null is submitted, current " +"setting will be returned." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:177 +msgid "" +"What hostname is used for the TCP transport. If null is submitted, " +"current setting will be returned." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:178 +msgid "" +"Use automatically detected ip for TCP transport. If null is submitted, " +"current setting will be returned." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:179 +msgid "" +"What port is used for the UDP transport. If null is submitted, current " +"setting will be returned." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:180 +msgid "" +"What hostname is used for the UDP transport. If null is submitted, " +"current setting will be returned." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:181 +msgid "" +"Which methods should be used for detecting the ip address of the UDP " +"transport. If null is submitted, current setting will be returned." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:182 +msgid "What ip has been detected by the UDP transport." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:183 +msgid "Is UPnP enabled. If null is submitted, current setting will be returned." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:184 +msgid "" +"How many percent of bandwidth is usable for participating tunnels. If " +"null is submitted, current setting will be returned." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:185 +msgid "" +"How many KB/s of inbound bandwidth is allowed. If null is submitted, " +"current setting will be returned." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:186 +msgid "" +"How many KB/s of outbound bandwidth is allowed. If null is submitted, " +"current setting will be returned." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:187 +msgid "" +"Is laptop mode enabled (change router identity and UDP port when IP " +"changes ). If null is submitted, current setting will be returned." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:188 +msgid "" +"Token used for authenticating the client. Is provided by the server via " +"the 'Authenticate' RPC method. If null is submitted, current setting will" +" be returned." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:191 +msgid "If requested, returns the port used for the TCP transport." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:192 +msgid "If requested, returns the hostname used for the TCP transport." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:193 +msgid "" +"If requested, returns the method used for automatically detecting ip for " +"the TCP transport." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:194 +msgid "If requested, returns the port used for the UDP transport." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:195 +msgid "If requested, returns the hostname used for the UDP transport." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:196 +msgid "" +"If requested, returns methods used for detecting the ip address of the " +"UDP transport." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:197 +msgid "If requested, returns what ip has been detected by the UDP transport." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:198 +msgid "If requested, returns the UPNP setting." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:199 +msgid "" +"If requested, returns how many percent of bandwidth is usable for " +"participating tunnels." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:200 +msgid "If requested, returns how many KB/s of inbound bandwidth is allowed." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:201 +msgid "If requested, returns how many KB/s of outbound bandwidth is allowed." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:202 +msgid "If requested, returns the laptop mode." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:203 +msgid "Have the provided settings been saved." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:204 +msgid "Is a restart needed for the new settings to be used." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:207 +msgid "Allows for manipulation of advanced i2p settings" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:208 +msgid "Set:" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:208 +msgid "Set the sent key-value pairs" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:211 +msgid "SetAll:" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:211 +#: i2p2www/pages/site/docs/api/i2pcontrol.html:214 +msgid "Set the sent key-value pairs, remove everything else" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:214 +msgid "Get:" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:217 +msgid "GetAall:" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:220 +msgid "denotes an optional value." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:221 +msgid "denotes a possibly occuring return value" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:223 +msgid "Error codes" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:224 +msgid "Standard JSON-RPC2 error codes." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:225 +msgid "JSON parse error." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:226 +msgid "Invalid request." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:227 +msgid "Method not found." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:228 +msgid "Invalid parameters." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:229 +msgid "Internal error." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:231 +msgid "I2PControl specific error codes." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:232 +msgid "Invalid password provided." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:233 +msgid "No authentication token presented." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:234 +msgid "Authentication token doesn't exist." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:235 +msgid "The provided authentication token was expired and will be removed." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:236 +msgid "" +"The version of the I2PControl API used wasn't specified, but is required " +"to be specified." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2pcontrol.html:237 +msgid "" +"The version of the I2PControl API specified is not supported by " +"I2PControl." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:8 +#, python-format +msgid "" +"I2PTunnel is a tool for interfacing with and providing services on I2P.\n" +"Destination of an I2PTunnel can be defined using a hostname,\n" +"Base32, or a full 516-byte destination " +"key.\n" +"An established I2PTunnel will be available on your client machine as " +"localhost:port.\n" +"If you wish to provide a service on I2P network, you simply create " +"I2PTunnel to the\n" +"appropriate ip_address:port. A corresponding 516-byte destination key " +"will be generated\n" +"for the service and it will become avaliable throughout I2P.\n" +"A web interface for I2PTunnel management is avaliable on\n" +"localhost:7657/i2ptunnel/." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:20 +msgid "Default Services" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:21 +msgid "Server tunnels" +msgstr "Tunelet e Serverave. " + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:23 +msgid "" +"I2P Webserver - A tunnel pointed to a Jetty webserver run\n" +"on localhost:7658 for convenient " +"and quick hosting on I2P.\n" +"
The document root is:" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:31 +msgid "Client tunnels" +msgstr "Tunelet e klientëve" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:33 +msgid "" +"A HTTP proxy used for browsing I2P and the regular internet anonymously " +"through I2P. \n" +"Browsing internet through I2P uses a random proxy specified by the " +"\"Outproxies:\" option." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:37 +msgid "An IRC tunnel to the default anonymous IRC network, Irc2P." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:38 +#, python-format +msgid "" +"The anonymous monotone\n" +"sourcecode repository for I2P" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:42 +#, python-format +msgid "" +"A SMTP service provided by postman at %(postman)s" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:45 +#, python-format +msgid "" +"The accompanying POP sevice of postman at %(postman)s" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:50 +msgid "Configuration" +msgstr "Formësim" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:54 +msgid "Client Modes" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:55 +#: i2p2www/pages/site/docs/api/i2ptunnel.html:165 +msgid "Standard" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:56 +msgid "" +"Opens a local TCP port that connects to a service (like HTTP, FTP or " +"SMTP) on a destination inside of I2P.\n" +"The tunnel is directed to a random host from the comma seperated (\", \")" +" list of destinations." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:62 +msgid "" +"A HTTP-client tunnel. The tunnel connects to the destination specified by" +" the URL\n" +"in a HTTP request. Supports proxying onto internet if an outproxy is " +"provided. Strips HTTP connections of the following headers:" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:67 +msgid "" +"Accept, Accept-Charset, Accept-Language\n" +" and Accept-Ranges as they vary greatly between browsers and can be " +"used as an identifier." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:90 +msgid "" +"Depending on if the tunnel is using an outproxy or not it will append the" +" following User-Agent:" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:94 +msgid "Outproxy:" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:95 +msgid "Internal I2P use:" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:100 +msgid "" +"Creates a connection to a random IRC server specified by the comma " +"seprated (\", \") \n" +"list of destinations. Only a whitelisted subset of IRC commands are " +"allowed due to anonymity concerns." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:105 +msgid "Whitelist:" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:139 +msgid "Enables using the I2P router as a SOCKS proxy." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:144 +msgid "" +"Enables using the I2P router as a SOCKS proxy with the command whitelist " +"specified by\n" +"IRC client mode." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:150 +msgid "" +"Creates a HTTP tunnel and uses the HTTP request method \"CONNECT\" \n" +"to build a TCP tunnel that usually is used for SSL and HTTPS." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:156 +msgid "" +"Creates a UDP-server attached to a Streamr client I2PTunnel. The streamr " +"client tunnel will \n" +"subscribe to a streamr server tunnel." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:164 +msgid "Server Modes" +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:166 +msgid "Creates a destination to a local ip:port with an open TCP port." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:171 +msgid "" +"Creates a destination to a local HTTP server ip:port. Supports gzip for " +"requests with \n" +"Accept-encoding: x-i2p-gzip, replies with Content-encoding: x-i2p-gzip in" +" such a request." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:177 +msgid "" +"Functions as both a I2PTunnel HTTP Server, and a I2PTunnel HTTP client " +"with no outproxying\n" +"capabilities. An example application would be a web application that does" +" client-type\n" +"requests, or loopback-testing an eepsite as a diagnostic tool." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:184 +msgid "" +"Creates a destination that filters the reqistration sequence of a client " +"and passes \n" +"the clients destination key as a hostname to the IRC-server." +msgstr "" + +#: i2p2www/pages/site/docs/api/i2ptunnel.html:190 +msgid "" +"A UDP-client that connects to a media server is created. The UDP-Client " +"is coupled with a Streamr server I2PTunnel." +msgstr "" + +#: i2p2www/pages/site/docs/api/ministreaming.html:2 +#: i2p2www/pages/site/docs/api/ministreaming.html:17 +msgid "Ministreaming Library" +msgstr "" + +#: i2p2www/pages/site/docs/api/ministreaming.html:5 +msgid "Note" +msgstr "" + +#: i2p2www/pages/site/docs/api/ministreaming.html:7 +#, python-format +msgid "" +"The ministreaming library has been enhanced and extended by the\n" +"\"full\" streaming library.\n" +"Ministreaming is deprecated and is incompatible with today's " +"applications.\n" +"The following documentation is old.\n" +"Also note that streaming extends ministreaming in the same Java package " +"(net.i2p.client.streaming),\n" +"so the current API documentation contains both.\n" +"Obsolete ministreaming classes and methods are clearly marked as " +"deprecated in the Javadocs." +msgstr "" + +#: i2p2www/pages/site/docs/api/ministreaming.html:19 +#, python-format +msgid "" +"\n" +"The ministreaming library is a layer on top of the core \n" +"I2CP that allows reliable, in order, and " +"authenticated streams\n" +"of messages to operate across an unreliable, unordered, and " +"unauthenticated \n" +"message layer. Just like the TCP to IP relationship, this streaming \n" +"functionality has a whole series of tradeoffs and optimizations " +"available, but\n" +"rather than embed that functionality into the base I2P code, it has been " +"factored\n" +"off into its own library both to keep the TCP-esque complexities separate" +" and to\n" +"allow alternative optimized implementations." +msgstr "" + +#: i2p2www/pages/site/docs/api/ministreaming.html:30 +#, python-format +msgid "" +"The ministreaming library was written by mihi as a part of his \n" +"I2PTunnel application and then factored out" +" and released\n" +"under the BSD license. It is called the \"mini\"streaming library " +"because it makes\n" +"some simplifications in the implementation, while a more robust streaming" +" library\n" +"could be further optimized for operation over I2P. The two main issues " +"with \n" +"the ministreaming library are its use of the traditional TCP two phase \n" +"establishment protocol and the current fixed window size of 1. The " +"establishment\n" +"issue is minor for long lived streams, but for short ones, such as quick " +"HTTP\n" +"requests, the impact can be significant. As " +"for the window\n" +"size, the ministreaming library doesn't maintain any ID or ordering " +"within the \n" +"messages sent (or include any application level ACK or SACK), so it must " +"wait \n" +"on average twice the time it takes to send a message before sending " +"another." +msgstr "" + +#: i2p2www/pages/site/docs/api/ministreaming.html:45 +#, python-format +msgid "" +"Even with those issues, the ministreaming library performs quite well in " +"many\n" +"situations, and its API\n" +"is both quite simple and capable of remaining unchanged as different " +"streaming\n" +"implementations are introduced. The library is deployed in its own \n" +"ministreaming.jar.\n" +"Developers in Java who would like to use it can\n" +"access the API directly, while developers in other languages can use it " +"through\n" +"SAM's streaming support." +msgstr "" + +#: i2p2www/pages/site/docs/api/socks.html:4 +msgid "SOCKS and SOCKS proxies" +msgstr "" + +#: i2p2www/pages/site/docs/api/socks.html:5 +msgid "" +"\n" +"The SOCKS proxy is working as of release 0.7.1. SOCKS 4/4a/5 are " +"supported.\n" +"Enable SOCKS by creating a SOCKS client tunnel in i2ptunnel.\n" +"Both shared-clients and non-shared are supported.\n" +"There is no SOCKS outproxy so it is of limited use." +msgstr "" + +#: i2p2www/pages/site/docs/api/socks.html:12 +#, python-format +msgid "" +"\n" +"As it says on the FAQ:" +msgstr "" + +#: i2p2www/pages/site/docs/api/socks.html:15 +msgid "" +"Many applications leak sensitive\n" +"information that could identify you on the Internet. I2P only filters\n" +"connection data, but if the program you intend to run sends this\n" +"information as content, I2P has no way to protect your anonymity. For\n" +"example, some mail applications will send the IP address of the machine\n" +"they are running on to a mail server. There is no way for I2P to filter\n" +"this, thus using I2P to 'socksify' existing applications is possible, but" +"\n" +"extremely dangerous." +msgstr "" + +#: i2p2www/pages/site/docs/api/socks.html:25 +msgid "And quoting from a 2005 email:" +msgstr "" + +#: i2p2www/pages/site/docs/api/socks.html:28 +msgid "" +"... there is a reason why human and\n" +"others have both built and abandoned the SOCKS proxies. Forwarding\n" +"arbitrary traffic is just plain unsafe, and it behooves us as\n" +"developers of anonymity and security software to have the safety of\n" +"our end users foremost in our minds." +msgstr "" + +#: i2p2www/pages/site/docs/api/socks.html:36 +msgid "" +"Hoping that we can simply strap an arbitrary client on top of I2P\n" +"without auditing both its behavior and its exposed protocols for\n" +"security and anonymity is naive. Pretty much *every* application\n" +"and protocol violates anonymity, unless it was designed for it\n" +"specifically, and even then, most of those do too. That's the\n" +"reality. End users are better served with systems designed for\n" +"anonymity and security. Modifying existing systems to work in\n" +"anonymous environments is no small feat, orders of magnitude more\n" +"work that simply using the existing I2P APIs." +msgstr "" + +#: i2p2www/pages/site/docs/api/socks.html:48 +msgid "" +"The SOCKS proxy\n" +"supports standard addressbook names, but not Base64 destinations.\n" +"Base32 hashes should work as of release 0.7.\n" +"It supports outgoing connections only, i.e. an I2PTunnel Client.\n" +"UDP support is stubbed out but not working yet.\n" +"Outproxy selection by port number is stubbed out." +msgstr "" + +#: i2p2www/pages/site/docs/api/socks.html:57 +#: i2p2www/pages/site/docs/how/network-database.html:183 +#: i2p2www/pages/site/docs/how/tunnel-routing.html:281 +msgid "See Also" +msgstr "" + +#: i2p2www/pages/site/docs/api/socks.html:59 +#, python-format +msgid "" +"The notes for Meeting 81 and\n" +"Meeting 82 in March 2004." +msgstr "" + +#: i2p2www/pages/site/docs/api/socks.html:69 +msgid "If You Do Get Something Working" +msgstr "" + +#: i2p2www/pages/site/docs/api/socks.html:70 +msgid "" +"Please let us know. And please provide substantial warnings about the\n" +"risks of socks proxies." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:3 +msgid "February 2017" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:8 +#, python-format +msgid "" +"The streaming library is technically part of the \"application\" layer,\n" +"as it is not a core router function.\n" +"In practice, however, it provides a vital function for almost all\n" +"existing I2P applications, by providing a TCP-like\n" +"streams over I2P, and allowing existing apps to be easily ported to I2P.\n" +"The other end-to-end transport library for client communication is the\n" +"datagram library." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:18 +#, python-format +msgid "" +"The streaming library is a layer on top of the core \n" +"I2CP API that allows reliable, in-order, and " +"authenticated streams\n" +"of messages to operate across an unreliable, unordered, and " +"unauthenticated \n" +"message layer. Just like the TCP to IP relationship, this streaming \n" +"functionality has a whole series of tradeoffs and optimizations " +"available, but\n" +"rather than embed that functionality into the base I2P code, it has been " +"factored\n" +"off into its own library both to keep the TCP-esque complexities separate" +" and to\n" +"allow alternative optimized implementations." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:29 +msgid "" +"In consideration of the relatively high cost of messages, \n" +"the streaming library's protocol for scheduling and delivering those " +"messages has been optimized to\n" +"allow individual messages passed to contain as much information as is " +"available.\n" +"For instance, a small HTTP transaction proxied through the streaming " +"library can\n" +"be completed in a single round trip - the first messages bundle a SYN, " +"FIN, and\n" +"the small HTTP request payload, and the reply bundles the SYN,\n" +"FIN, ACK, and the HTTP response payload. While an additional\n" +"ACK must be transmitted to tell the HTTP server that the SYN/FIN/ACK has " +"been\n" +"received, the local HTTP proxy can often deliver the full response to the" +" browser \n" +"immediately." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:42 +msgid "" +"The streaming library bears much resemblance to an \n" +"abstraction of TCP, with its sliding windows, congestion control " +"algorithms\n" +"(both slow start and congestion avoidance), and general packet behavior " +"(ACK,\n" +"SYN, FIN, RST, rto calculation, etc)." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:49 +msgid "" +"The streaming library is\n" +"a robust library\n" +"which is optimized for operation over I2P.\n" +"It has a one-phase setup, and\n" +"it contains a full windowing implementation." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:58 +msgid "API" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:60 +#, python-format +msgid "" +"The streaming library API provides a standard socket paradigm to Java " +"applications.\n" +"The lower-level I2CP API is completely hidden, " +"except that\n" +"applications may pass I2CP parameters " +"through the\n" +"streaming library, to be interpreted by I2CP." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:67 +#, python-format +msgid "" +"The standard interface to the streaming lib is for the application to use" +" the\n" +"I2PSocketManagerFactory to create an\n" +"I2PSocketManager. The application then asks " +"the\n" +"socket manager for an I2PSession, which will " +"cause\n" +"a connection to the router via I2CP. The " +"application\n" +"can then setup connections with an I2PSocket " +"or\n" +"receive connections with an I2PServerSocket." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:82 +#, python-format +msgid "Here are the full streaming library Javadocs." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:86 +msgid "For a good example of usage, see the i2psnark code." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:91 +msgid "Options and Defaults" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:92 +#, python-format +msgid "" +"The options and current default values are listed below.\n" +"Options are case-sensitive and may be set for the whole router, for a " +"particular client, or for an individual socket on a\n" +"per-connection basis.\n" +"Many values are tuned for HTTP performance over typical I2P conditions. " +"Other applications such\n" +"as peer-to-peer services are strongly encouraged to\n" +"modify as necessary, by setting the options and passing them via the call" +" to\n" +"I2PSocketManagerFactory.createManager(_i2cpHost," +" _i2cpPort, opts).\n" +"Time values are in ms." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:103 +#, python-format +msgid "" +"Note that higher-layer APIs, such as SAM,\n" +"BOB, and I2PTunnel," +"\n" +"may override these defaults with their own defaults.\n" +"Also note that many options only apply to servers listening for incoming " +"connections." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:110 +msgid "" +"As of release 0.9.1, most, but not all, options may be changed on an " +"active socket manager or session.\n" +"See the javadocs for details." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:117 +#: i2p2www/pages/site/docs/protocol/i2cp.html:103 +#: i2p2www/pages/site/docs/protocol/i2cp.html:478 +msgid "Option" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:117 +#: i2p2www/pages/site/docs/protocol/i2cp.html:107 +#: i2p2www/pages/site/docs/protocol/i2cp.html:482 +msgid "Default" +msgstr "Parazgjedhje" + +#: i2p2www/pages/site/docs/api/streaming.html:117 +#: i2p2www/pages/site/docs/how/elgamal-aes.html:264 +#: i2p2www/pages/site/docs/how/peer-selection.html:282 +msgid "Notes" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:119 +msgid "" +"Comma- or space-separated list of Base64 peer Hashes used for either " +"access list or blacklist." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:121 +#: i2p2www/pages/site/docs/api/streaming.html:129 +#: i2p2www/pages/site/docs/api/streaming.html:135 +#: i2p2www/pages/site/docs/api/streaming.html:141 +#: i2p2www/pages/site/docs/api/streaming.html:148 +#: i2p2www/pages/site/docs/api/streaming.html:160 +#: i2p2www/pages/site/docs/api/streaming.html:171 +#: i2p2www/pages/site/docs/api/streaming.html:200 +#: i2p2www/pages/site/docs/api/streaming.html:212 +#: i2p2www/pages/site/docs/api/streaming.html:220 +#: i2p2www/pages/site/docs/api/streaming.html:243 +#: i2p2www/pages/site/docs/api/streaming.html:260 +#: i2p2www/pages/site/docs/api/streaming.html:272 +#: i2p2www/pages/site/docs/api/streaming.html:278 +#: i2p2www/pages/site/docs/api/streaming.html:284 +#: i2p2www/pages/site/docs/api/streaming.html:298 +#: i2p2www/pages/site/docs/api/streaming.html:305 +#: i2p2www/pages/site/docs/api/streaming.html:312 +#: i2p2www/pages/site/docs/api/streaming.html:337 +#: i2p2www/pages/site/docs/api/streaming.html:344 +#: i2p2www/pages/site/docs/api/streaming.html:351 +#, python-format +msgid "As of release %(release)s." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:125 +#: i2p2www/pages/site/docs/api/streaming.html:133 +msgid "Use the access list as a whitelist for incoming connections." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:127 +msgid "The name or number of the signature type for a transient destination." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:139 +msgid "Use the access list as a blacklist for incoming connections." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:153 +msgid "Whether to respond to incoming pings" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:165 +msgid "" +"Comma- or space-separated list of Base64 peer Hashes to be\n" +"blacklisted for incoming connections to ALL destinations in the context.\n" +"This option must be set in the context properties, NOT in the " +"createManager() options argument.\n" +"Note that setting this in the router context will not affect clients " +"outside the\n" +"router in a separate JVM and context." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:175 +msgid "" +"How much transmit data (in bytes) will be accepted that hasn't been " +"written out yet." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:179 +msgid "" +"When we're in congestion avoidance, we grow the window size at the rate\n" +"of 1/(windowSize*factor). In standard TCP, window sizes are" +" in bytes,\n" +"while in I2P, window sizes are in messages.\n" +"A higher number means slower growth." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:186 +msgid "" +"How long to wait after instantiating a new con \n" +"before actually attempting to connect. If this is\n" +"<= 0, connect immediately with no initial data. If greater than 0, " +"wait\n" +"until the output stream is flushed, the buffer fills, \n" +"or that many milliseconds pass, and include any initial data with the SYN." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:194 +msgid "" +"How long to block on connect, in milliseconds. Negative means " +"indefinitely. Default is 5 minutes." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:198 +msgid "" +"Whether to disable warnings in the logs when an incoming connection is " +"rejected due to connection limits." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:204 +msgid "" +"Comma- or space-separated list of Base64 peer Hashes or host names to be\n" +"contacted using an alternate DSA destination.\n" +"Only applies if multisession is enabled and the primary session is non-" +"DSA\n" +"(generally for shared clients only).\n" +"This option must be set in the context properties, NOT in the " +"createManager() options argument.\n" +"Note that setting this in the router context will not affect clients " +"outside the\n" +"router in a separate JVM and context." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:216 +msgid "" +"Whether to listen only for the streaming protocol.\n" +"Setting to true will prohibit communication with Destinations earlier " +"than release 0.7.1\n" +"(released March 2009). Set to true if running multiple protocols on this " +"Destination." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:224 +msgid "" +"(0=noop, 1=disconnect)\n" +"What to do on an inactivity timeout - do nothing, disconnect, or send a " +"duplicate ack." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:230 +msgid "Idle time before sending a keepalive" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:233 +msgid "Delay before sending an ack" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:235 +msgid "" +"The initial value of the resend delay field in the packet header, times " +"1000.\n" +"Not fully implemented; see below." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:240 +msgid "" +"Initial timeout\n" +"(if no sharing data available)." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:247 +msgid "" +"Initial round trip time estimate\n" +"(if no sharing data available).\n" +"Disabled as of release 0.9.8; uses actual RTT." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:253 +msgid "if no sharing data available" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:253 +msgid "" +"In standard TCP, window sizes are in bytes, while in I2P, window sizes " +"are in messages." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:265 +msgid "" +"(0 or negative value means unlimited)\n" +"This is a total limit for incoming and outgoing combined." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:270 +msgid "Incoming connection limit (per peer; 0 means disabled)" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:276 +#: i2p2www/pages/site/docs/api/streaming.html:282 +msgid "(per peer; 0 means disabled)" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:288 +msgid "The MTU in bytes." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:292 +msgid "Maximum number of retransmissions before failure." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:296 +msgid "Incoming connection limit (all peers; 0 means disabled)" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:302 +#: i2p2www/pages/site/docs/api/streaming.html:309 +msgid "" +"(all peers; 0 means disabled)\n" +"Use with caution as exceeding this will disable a server for a long time." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:318 +msgid "" +"(2=interactive not supported)\n" +"This doesn't currently do anything, but setting it to a value other than " +"1 will cause an error." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:323 +msgid "How long to block on read, in milliseconds. Negative means indefinitely." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:327 +msgid "" +"When we're in slow start, we grow the window size at the rate\n" +"of 1/(factor). In standard TCP, window sizes are in bytes,\n" +"while in I2P, window sizes are in messages.\n" +"A higher number means slower growth." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:334 +#: i2p2www/pages/site/docs/api/streaming.html:341 +#: i2p2www/pages/site/docs/api/streaming.html:348 +msgid "" +"Ref: RFC 2140. Floating point value.\n" +"May be set only via context properties, not connection options." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:355 +msgid "" +"How long to block on write/flush, in milliseconds. Negative means " +"indefinitely." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:363 +msgid "Protocol Specification" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:365 +msgid "See the Streaming Library Specification page." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:369 +msgid "Implementation Details" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:371 +msgid "Setup" +msgstr "Konfigurimi" + +#: i2p2www/pages/site/docs/api/streaming.html:372 +msgid "" +"The initiator sends a packet with the SYNCHRONIZE flag set. This packet " +"may contain the initial data as well.\n" +"The peer replies with a packet with the SYNCHRONIZE flag set. This packet" +" may contain the initial response data as well." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:377 +msgid "" +"The initiator may send additional data packets, up to the initial window " +"size, before receiving the SYNCHRONIZE response.\n" +"These packets will also have the send Stream ID field set to 0.\n" +"Recipients must buffer packets received on unknown streams for a short " +"period of time, as they may\n" +"arrive out of order, in advance of the SYNCHRONIZE packet." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:384 +msgid "MTU Selection and Negotiation" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:385 +msgid "" +"The maximum message size (also called the MTU / MRU) is negotiated to the" +" lower value supported by\n" +"the two peers. As tunnel messages are padded to 1KB, a poor MTU selection" +" will lead to\n" +"a large amount of overhead.\n" +"The MTU is specified by the option i2p.streaming.maxMessageSize.\n" +"The current default MTU of 1730 was chosen to fit precisely into two 1K " +"I2NP tunnel messages,\n" +"including overhead for the typical case." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:394 +msgid "" +"The first message in a connection includes a 387 byte (typical) " +"Destination added by the streaming layer,\n" +"and usually a 898 byte (typical) LeaseSet, and Session keys, bundled in " +"the Garlic message by the router.\n" +"(The LeaseSet and Session Keys will not be bundled if an ElGamal Session " +"was previously established).\n" +"Therefore, the goal of fitting a complete HTTP request in a single 1KB " +"I2NP message is not always attainable.\n" +"However, the selection of the MTU, together with careful implementation " +"of fragmentation\n" +"and batching strategies in the tunnel gateway processor, are important " +"factors in network bandwidth,\n" +"latency, reliability, and efficiency, especially for long-lived " +"connections." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:405 +#, python-format +msgid "" +"Data integrity is assured by the gzip CRC-32 checksum implemented in\n" +"the I2CP layer.\n" +"There is no checksum field in the streaming protocol." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:413 +#, python-format +msgid "" +"Each packet is sent through I2P as a single message (or as an individual " +"clove in a\n" +"Garlic Message). Message encapsulation " +"is implemented\n" +"in the underlying I2CP, I2NP, and\n" +"tunnel message layers. There is no " +"packet delimiter\n" +"mechanism or payload length field in the streaming protocol." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:423 +msgid "Optional Delay" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:424 +msgid "" +"Data packets may include an optional delay field specifying the requested" +" delay,\n" +"in ms, before the receiver should ack the packet.\n" +"Valid values are 0 to 60000 inclusive.\n" +"A value of 0 requests an immediate ack.\n" +"This is advisory only, and receivers should delay slightly so that\n" +"additional packets may be acknowledged with a single ack.\n" +"Some implementations may include an advisory value of (measured RTT / 2) " +"in this field.\n" +"For nonzero optional delay values, receivers should limit the maximum " +"delay\n" +"before sending an ack to a few seconds at most.\n" +"Optional delay values greater than 60000 indicate choking, see below." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:438 +msgid "Receive Window and Choking" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:439 +msgid "" +"TCP headers include the receive window in bytes.\n" +"The streaming protocol does not contain a receive window, it uses only a " +"simple choke/unchoke indication.\n" +"Each endpoint must maintain its own estimate of the far-end receive " +"window, in either bytes or packets.\n" +"The recommended minimum buffer size for receiver implementations is 128 " +"packets or 217 KB (approximately 128x1730).\n" +"Because of I2P netowrk latency, packet drops, and the resulting " +"congestion control,\n" +"a buffer of this size is rarely filled.\n" +"Overflow is, however, likely to occur on high-bandwidth \"local " +"loopback\" (same-router) connections." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:448 +msgid "" +"To quickly indicate and smoothly recover from overflow conditions,\n" +"there is a simple mechanism for pushback in the streaming protocol.\n" +"If a packet is received with an optional delay field of value of 60001 or" +" higher,\n" +"that indicates \"choking\" or a receive window of zero.\n" +"A packet with an optional delay field of value of 60000 or less indicates" +" \"unchoking\".\n" +"Packets without an optional delay field do not affect the choke/unchoke " +"state." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:456 +msgid "" +"After being choked, no more packets with data should be sent until the " +"transmitter is unchoked,\n" +"except for occasional \"probe\" data packets to compensate for possible " +"lost unchoke packets.\n" +"The choked endpoint should start a \"persist timer\" to control the " +"probing, as in TCP.\n" +"The unchoking endpoint should send several packets with this field set,\n" +"or continue sending them periodically until data packets are received " +"again.\n" +"Maximum time to wait for unchoking is implementation-dependent.\n" +"Transmitter window size and congestion control strategy after being " +"unchoked is implementation-dependent." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:467 +msgid "Congestion Control" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:468 +msgid "" +"The streaming lib uses standard slow-start (exponential window growth) " +"and congestion avoidance (linear window growth)\n" +"phases, with exponential backoff.\n" +"Windowing and acknowledgments use packet count, not byte count." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:475 +msgid "Close" +msgstr "Mbylle" + +#: i2p2www/pages/site/docs/api/streaming.html:476 +msgid "" +"Any packet, including one with the SYNCHRONIZE flag set, may have the " +"CLOSE flag sent as well.\n" +"The connection is not closed until the peer responds with the CLOSE flag." +"\n" +"CLOSE packets may contain data as well." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:484 +msgid "" +"There is no ping function at the I2CP layer (equivalent to ICMP echo) or " +"in datagrams.\n" +"This function is provided in streaming.\n" +"Pings and pongs may not be combined with a standard streaming packet;\n" +"if the ECHO option is set, then\n" +"most other flags, options, ackThrough, sequenceNum, NACKs, etc. are " +"ignored." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:492 +msgid "" +"A ping packet must have the ECHO, SIGNATURE_INCLUDED, and FROM_INCLUDED " +"flags set.\n" +"The sendStreamId must be greater than zero, and the receiveStreamId is " +"ignored.\n" +"The sendStreamId may or may not correspond to an existing connection." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:498 +msgid "" +"A pong packet must have the ECHO flag set.\n" +"The sendStreamId must be zero, and the receiveStreamId is the " +"sendStreamId from the ping.\n" +"Prior to release 0.9.18, the pong packet does not include any payload " +"that was contained in the ping." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:504 +msgid "" +"As of release 0.9.18, pings and pongs may contain a payload.\n" +"The payload in the ping, up to a maximum of 32 bytes, is returned in the " +"pong." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:509 +msgid "" +"Streaming may be configured to disable sending pongs with the " +"configuration i2p.streaming.answerPings=false." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:514 +msgid "Control Block Sharing" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:515 +msgid "" +"The streaming lib supports \"TCP\" Control Block sharing.\n" +"This shares three important streaming lib parameters\n" +"(window size, round trip time, round trip time variance)\n" +"across connections to the same remote peer.\n" +"This is used for \"temporal\" sharing at connection open/close time,\n" +"not \"ensemble\" sharing during a connection (See\n" +"RFC 2140).\n" +"There is a separate share per ConnectionManager (i.e. per local " +"Destination)\n" +"so that there is no information leakage to other Destinations on the\n" +"same router.\n" +"The share data for a given peer expires after a few minutes.\n" +"The following Control Block Sharing parameters can be set per router:" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:536 +msgid "Other Parameters" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:537 +msgid "" +"The following parameters are hardcoded, but may be of interest for " +"analysis:" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:556 +#: i2p2www/pages/site/docs/how/network-database.html:897 +msgid "History" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:557 +msgid "" +"The streaming library has grown organically for I2P - first mihi " +"implemented the\n" +"\"mini streaming library\" as part of I2PTunnel, which was limited to a " +"window\n" +"size of 1 message (requiring an ACK before sending the next one), and " +"then it was\n" +"refactored out into a generic streaming interface (mirroring TCP sockets)" +" and the\n" +"full streaming implementation was deployed with a sliding window protocol" +" and \n" +"optimizations to take into account the high bandwidth x delay product. " +"Individual\n" +"streams may adjust the maximum packet size and other options. The default" +"\n" +"message size is selected to fit precisely in two 1K I2NP tunnel messages," +"\n" +"and is a reasonable tradeoff between the bandwidth costs of \n" +"retransmitting lost messages, and the latency and overhead of multiple " +"messages." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:571 +#: i2p2www/pages/site/docs/how/elgamal-aes.html:344 +#: i2p2www/pages/site/docs/how/garlic-routing.html:251 +#: i2p2www/pages/site/docs/how/network-database.html:902 +#: i2p2www/pages/site/docs/how/peer-selection.html:265 +#: i2p2www/pages/site/docs/how/tunnel-routing.html:255 +#: i2p2www/pages/site/docs/protocol/i2cp.html:723 +#: i2p2www/pages/site/docs/protocol/i2np.html:226 +#: i2p2www/pages/site/docs/transport/ntcp.html:545 +#: i2p2www/pages/site/docs/transport/ssu.html:579 +#: i2p2www/pages/site/docs/tunnels/implementation.html:506 +msgid "Future Work" +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:572 +msgid "" +"The behavior of the streaming library has a profound impact on\n" +"application-level performance, and as such, is an important\n" +"area for further analysis." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:578 +msgid "Additional tuning of the streaming lib parameters may be necessary." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:581 +#, python-format +msgid "" +"Another area for research is the interaction of the streaming lib with " +"the\n" +"NTCP and SSU transport layers.\n" +"See the NTCP discussion page for details." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:586 +msgid "" +"The interaction of the routing algorithms with the streaming lib strongly" +" affects performance.\n" +"In particular, random distribution of messages to multiple tunnels in a " +"pool\n" +"leads to a high degree of out-of-order delivery which results in smaller " +"window\n" +"sizes than would otherwise be the case. The router currently routes \n" +"messages for a single from/to destination pair through a consistent set \n" +"of tunnels, until tunnel expiration or delivery failure. The router's \n" +"failure and tunnel selection algorithms should be reviewed for possible \n" +"improvements." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:596 +msgid "The data in the first SYN packet may exceed the receiver's MTU." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:599 +msgid "The DELAY_REQUESTED field could be used more." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:602 +msgid "" +"Duplicate initial SYNCHRONIZE packets on short-lived streams may not be " +"recognized and removed." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:605 +msgid "Don't send the MTU in a retransmission." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:608 +msgid "" +"Data is sent along unless the outbound window is full.\n" +"(i.e. no-Nagle or TCP_NODELAY)\n" +"Probably should have a configuration option for this." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:613 +msgid "" +"zzz has added debug code to the streaming library to log packets in a " +"wireshark-compatible\n" +"(pcap) format; Use this to further analyze performance.\n" +"The format may require enhancement to map more streaming lib parameters " +"to TCP fields." +msgstr "" + +#: i2p2www/pages/site/docs/api/streaming.html:618 +msgid "" +"There are proposals to replace the streaming lib with standard TCP\n" +"(or perhaps a null layer together with raw sockets).\n" +"This would unfortunately be incompatible with the streaming lib\n" +"but it would be good to compare the performance of the two." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:3 +msgid "January 2017" +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:7 +msgid "" +"There are several bittorrent clients and trackers on I2P.\n" +"As I2P addressing uses a Destination instead of an IP and port, minor\n" +"changes are required to tracker and client software for operation on I2P." +"\n" +"These changes are specified below.\n" +"Note carefully the guidelines for compatibility with older I2P clients " +"and trackers." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:15 +msgid "" +"This page specifies protocol details common to all clients and trackers.\n" +"Specific clients and trackers may implement other unique features or " +"protocols." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:20 +msgid "We welcome additional ports of client and tracker software to I2P." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:26 +msgid "Announces" +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:27 +msgid "" +"Clients generally include a fake port=6881 parameter in the announce, for" +" compatibility with older trackers.\n" +"Trackers may ignore the port parameter, and should not require it." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:32 +#, python-format +msgid "" +"The ip parameter is the base 64 of the client's\n" +"Destination,\n" +"using the I2P Base 64 alphabet [A-Z][a-z][0-9]-~.\n" +"Destinations\n" +"are 387+ bytes, so the Base 64 is 516+ bytes.\n" +"Clients generally append \".i2p\" to the Base 64 Destination for " +"compatibility with older trackers.\n" +"Trackers should not require an appended \".i2p\"." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:42 +msgid "Other parameters are the same as in standard bittorrent." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:46 +msgid "" +"Current Destinations for clients are 387 or more bytes (516 or more in " +"Base 64 encoding).\n" +"A reasonable maximum to assume, for now, is 475 bytes.\n" +"As the tracker must decode the Base64 to deliver compact responses (see " +"below),\n" +"the tracker should probably decode and reject bad Base64 when announced." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:53 +msgid "" +"The default response type is non-compact. Clients may request a compact " +"response with\n" +"the parameter compact=1. A tracker may, but is not required to, return\n" +"a compact response when requested." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:59 +msgid "" +"Developers of new I2P clients\n" +"are strongly encouraged to implemenent announces over their own tunnel " +"rather than\n" +"the HTTP client proxy at port 4444. Doing so is both more efficient and " +"it allows\n" +"destination enforcement by the tracker (see below)." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:66 +msgid "" +"There are no known I2P clients or trackers that currently support UDP " +"announce/responses." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:71 +msgid "Non-Compact Tracker Responses" +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:72 +msgid "" +"The non-compact response is just as in standard bittorrent, with an I2P " +"\"ip\"." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:76 +msgid "" +"Trackers generally include a fake port key, or use the port from the " +"announce, for compatibility with older clients.\n" +"Clients must ignore the port parameter, and should not require it." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:81 +#, python-format +msgid "" +"The value of the ip key is the base 64 of the client's\n" +"Destination, as " +"described above.\n" +"Trackers generally append \".i2p\" to the Base 64 Destination if it " +"wasn't in the announce ip, for compatibility with older clients.\n" +"Clients should not require an appended \".i2p\" in the responses." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:88 +msgid "Other response keys and values are the same as in standard bittorrent." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:94 +msgid "Compact Tracker Responses" +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:95 +#, python-format +msgid "" +"In the compact response, the value of the \"peers\" dictionary key is a " +"single byte string,\n" +"whose length is a multiple of 32 bytes.\n" +"This string contains the concatenated\n" +"32-byte SHA-256 Hashes\n" +"of the binary\n" +"Destinations\n" +"of the peers.\n" +"This hash must be computed by the tracker, unless destination enforcement" +"\n" +"(see below) is used, in which case the hash delivered in the X-I2P-" +"DestHash\n" +"or X-I2P-DestB32 HTTP headers may be converted to binary and stored.\n" +"The peers key may be absent, or the peers value may be zero-length." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:109 +msgid "" +"While compact response support is optional for both clients and trackers," +" it is highly\n" +"recommended as it reduces the nominal response size by over 90%." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:116 +msgid "Destination Enforcement" +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:117 +#, python-format +msgid "" +"Some, but not all, I2P bittorrent clients announce over their own " +"tunnels.\n" +"Trackers may choose to prevent spoofing by requiring this, and verifying " +"the\n" +"client's\n" +"Destination\n" +"using HTTP headers added by the I2PTunnel HTTP Server tunnel.\n" +"The headers are X-I2P-DestHash, X-I2P-DestB64, and X-I2P-DestB32, which " +"are\n" +"different formats for the same information.\n" +"These headers cannot be spoofed by the client.\n" +"A tracker enforcing destinations need not require the ip announce " +"parameter at all." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:129 +msgid "" +"As several clients use the HTTP proxy instead of their own tunnel for " +"announces,\n" +"destination enforcement will prevent usage by those clients unless or " +"until\n" +"those clients are converted to announcing over their own tunnel." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:135 +msgid "" +"Unfortunately, as the network grows, so will the amount of maliciousness," +"\n" +"so we expect that all trackers will eventually enforce destinations.\n" +"Both tracker and client developers should anticipate it." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:143 +msgid "Announce Host Names" +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:144 +#, python-format +msgid "" +"Announce URL host names in torrent files generally follow the\n" +"I2P naming standards.\n" +"In addition to host names from address books and \".b32.i2p\" Base 32 " +"hostnames,\n" +"the full Base 64 Destination (with [or without?] \".i2p\" appended) " +"should be supported.\n" +"Non-open trackers should recognize their own host name in any of these " +"formats." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:152 +msgid "" +"To preserve anonymity,\n" +"clients should generally ignore non-I2P announce URLs in torrent files." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:159 +msgid "Client Connections" +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:160 +msgid "" +"Client-to-client connections use the standard protocol over TCP.\n" +"There are no known I2P clients that currently support uTP communication." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:165 +#, python-format +msgid "" +"I2P uses 387+ byte Destinations\n" +"for addresses, as explained above." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:170 +msgid "" +"If the client has only the hash of the destination (such as from a " +"compact response or PEX), it must perform a lookup\n" +"by encoding it with Base 32, appending \".b32.i2p\", and querying the " +"Naming Service,\n" +"which will return the full Destination if available." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:176 +msgid "" +"If the client has a peer's full Destination it received in a non-compact " +"response, it should use it\n" +"directly in the connection setup.\n" +"Do not convert a Destination back to a Base 32 hash for lookup, this is " +"quite inefficient." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:183 +msgid "Cross-Network Prevention" +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:184 +msgid "" +"To preserve anonymity,\n" +"I2P bittorrent clients generally do not support non-I2P announces or peer" +" connections.\n" +"I2P HTTP outproxies often block announces.\n" +"There are no known SOCKS outproxies supporting bittorrent traffic." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:191 +msgid "" +"To prevent usage by non-I2P clients via an HTTP inproxy, I2P trackers " +"often\n" +"block accesses or announces that contain an X-Forwarded-For HTTP header.\n" +"Trackers should reject standard network announces with IPv4 or IPv6 IPs, " +"and not deliver them in responses." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:200 +#, python-format +msgid "" +"I2P PEX is based on ut_pex.\n" +"As there does not appear to be a formal specification of ut_pex " +"available,\n" +"it may be necessary to review the libtorrent source for assistance.\n" +"It is an extension message, identified as \"i2p_pex\" in\n" +"the extension " +"handshake.\n" +"It contains a bencoded dictionary with up to 3 keys, \"added\", " +"\"added.f\", and \"dropped\".\n" +"The added and dropped values are each a single byte string, whose length " +"is a multiple of 32 bytes.\n" +"These byte strings are the concatenated SHA-256 Hashes of the binary\n" +"Destinations\n" +"of the peers.\n" +"This is the same format as the peers dictionary value in the i2p compact " +"response format specified above.\n" +"The added.f value, if present, is the same as in ut_pex." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:218 +msgid "" +"DHT support is included in the i2psnark client as of version 0.9.2.\n" +"Preliminary differences from\n" +"BEP 5\n" +"are described below, and are subject to change.\n" +"Contact the I2P developers if you wish to develop a client supporting DHT." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:226 +msgid "" +"Unlike standard DHT, I2P DHT does not use a bit in the options handshake," +" or the PORT message.\n" +"It is advertised with an extension message, identified as \"i2p_dht\" in\n" +"the extension " +"handshake.\n" +"It contains a bencoded dictionary with two keys, \"port\" and \"rport\", " +"both integers." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:233 +msgid "" +"The UDP (datagram) port listed in the compact node info is used\n" +"to receive repliable (signed) datagrams.\n" +"This is used for queries, except for announces.\n" +"We call this the \"query port\".\n" +"This is the \"port\" value from the extension message.\n" +"Queries use I2CP protocol number 17." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:242 +msgid "" +"In addition to that UDP port, we use a second datagram\n" +"port equal to the query port + 1. This is used to receive\n" +"unsigned (raw) datagrams for replies, errors, and announces.\n" +"This port provides increased efficiency since replies\n" +"contain tokens sent in the query, and need not be signed.\n" +"We call this the \"response port\".\n" +"This is the \"rport\" value from the extension message.\n" +"It must be 1 + the query port.\n" +"Responses and announces use I2CP protocol number 18." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:254 +msgid "" +"Compact peer info is 32 bytes (32 byte SHA256 Hash)\n" +"instead of 4 byte IP + 2 byte port. There is no peer port.\n" +"In a response, the \"values\" key is a list of strings, each containing a" +" single compact peer info." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:260 +msgid "" +"Compact node info is 54 bytes (20 byte SHA1 Hash + 32 byte SHA256 Hash + " +"2 byte port)\n" +"instead of 20 byte SHA1 Hash + 4 byte IP + 2 byte port.\n" +"In a response, the \"nodes\" key is a\n" +"single byte string with concatenated compact node info." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:267 +msgid "" +"Secure node ID requirement: To make various DHT attacks more difficult,\n" +"the first 4 bytes of the Node ID must match the first 4 bytes of the " +"destination Hash,\n" +"and the next two bytes of the Node ID must match the next two bytes of " +"the\n" +"destination hash exclusive-ORed with the port." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:274 +msgid "" +"In a torrent file,\n" +"the trackerless torrent dictionary \"nodes\" key is TBD.\n" +"It could be a list of\n" +"32 byte binary strings (SHA256 Hashes) instead of a list of lists\n" +"containing a host string and a port integer.\n" +"Alternatives: A single byte string with concatenated hashes,\n" +"or a list of strings alone." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:286 +msgid "Datagram (UDP) Trackers" +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:287 +msgid "" +"UDP tracker support in clients and trackers is not yet available.\n" +"Preliminary differences from\n" +"BEP 15\n" +"are described below, and are subject to change.\n" +"Contact the I2P developers if you wish to develop a client or tracker " +"supporting datagram announces." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:295 +msgid "" +"A UDP tracker listens on two ports.\n" +"The \"query port\" is the advertised port, and is used to receive " +"repliable (signed) datagrams, for the connect request only.\n" +"The \"response port\" is used to receive unsigned (raw) datagrams, and is" +" the source port for all replies.\n" +"The response port is arbitrary.\n" +"A client sends and receives on a single port only.\n" +"It receives only unsigned (raw) datagrams.\n" +"Raw datagrams provides increased efficiency for replies since they " +"contain tokens sent in the query, and need not be signed." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:305 +msgid "" +"In the announce request, the 4-byte IP is replaced by a 32-byte hash, and" +" the port is still present,\n" +"although it may be ignored by the tracker.\n" +"In the announce response, each 4-byte IP and 2-byte port is replaced by a" +" 32-byte hash (compact peer info), and no port is present.\n" +"The client sends the announce request and scrape request to the source " +"port in the announce response packet.\n" +"The connect request, connect response, scrape request, scrape response, " +"and error response are the same as in BEP 15." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:313 +msgid "" +"Source addresses in I2P cannot be spoofed, so it is possible to use a " +"simplified protocol\n" +"with 2 packets instead of 4, omitting the connect request and response.\n" +"In this case, the announce request would be a repliable datagram sent to " +"the tracker's query port,\n" +"and the tracker would not require a response port.\n" +"While this is more efficient, it would be more difficult to modify an " +"existing tracker to support this mode.\n" +"The URL for the 4-packet-mode tracker would use standard \"udp://\" " +"prefix. \n" +"The URL for a modified 2-packet-mode tracker would require a different " +"prefix if both modes are supported in I2P." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:326 +#: i2p2www/pages/site/docs/how/intro.html:184 +msgid "Additional Information" +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:328 +#, python-format +msgid "" +"I2P bittorrent standards are generally discussed on %(zzz)s." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:331 +#, python-format +msgid "" +"A chart of current tracker software capabilities is also available there." +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:334 +#, python-format +msgid "" +"The\n" +"I2P bittorrent FAQ" +msgstr "" + +#: i2p2www/pages/site/docs/applications/bittorrent.html:338 +#, python-format +msgid "DHT on I2P discussion" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:2 +msgid "Embedding I2P in your Application" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:3 +msgid "April 2015" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:8 +msgid "" +"This page is about bundling the entire I2P router binary with your " +"application.\n" +"It is not about writing an application to work with I2P (either bundled " +"or external)." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:13 +msgid "" +"Lots of projects are bundling, or talking about bundling, I2P. That's " +"great if done right.\n" +"If done wrong, it could cause real harm to our network.\n" +"The I2P router is complex, and it can be a challenge to hide all the " +"complexity from your users.\n" +"This page discusses some general guidelines." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:23 +msgid "Talk to us" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:24 +msgid "" +"Start a dialog. We're here to help. Applications that embed I2P are the " +"most promising - and exciting -\n" +"opportunities for us to grow the network and improve anonymity for " +"everyone." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:30 +msgid "Choose your router wisely" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:31 +msgid "" +"If your application is in Java or Scala, it's an easy choice - use the " +"Java router.\n" +"If in C/C++, we recommend i2pd. The development of i2pcpp has stopped.\n" +"For apps in other languages, best to use SAM or BOB or SOCKS and bundle " +"the Java router as a separate process.\n" +"Some of the following only applies to the Java router." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:39 +msgid "Licensing" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:40 +msgid "Ensure you meet the license requirements of the software you are bundling." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:45 +msgid "Verify default configuration" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:46 +msgid "" +"A correct default configuration is crucial. Most users will not change " +"the defaults.\n" +"The defaults for your application may need to be different than the " +"defaults for the router you are bundling.\n" +"Override the router defaults if necessary." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:51 +msgid "" +"Some important defaults to review: Max bandwidth, tunnel quantity and " +"length, max participating tunnels.\n" +"A lot of this depends on the expected bandwidth and usage patterns of " +"your app." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:55 +msgid "" +"Configure enough bandwidth and tunnels to allow your users to contribute " +"to the network.\n" +"Consider disabling external I2CP, as you probably don't need it and it " +"would conflict with any other running I2P instance.\n" +"Also look at the configs for disabling killing of the JVM on exit, for " +"example." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:62 +msgid "Participating Traffic Considerations" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:63 +msgid "" +"It may be tempting for you to disable participating traffic.\n" +"There's several ways to do this (hidden mode, setting max tunnels to 0, " +"setting shared bandwidth below 12 KBytes/sec).\n" +"Without participating traffic, you don't have to worry about graceful " +"shutdown,\n" +"your users don't see bandwidth usage not generated by them, etc.\n" +"However, there's lots of reasons why you should allow participating " +"tunnels." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:70 +msgid "" +"First of all, the router doesn't work that well if it doesn't have a " +"chance to \"integrate\" with the network,\n" +"which is helped tremendously by others building tunnels through you." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:74 +msgid "" +"Secondly, over 90% of the routers in the current network allow " +"participating traffic.\n" +"It's the default in the Java router.\n" +"If your application doesn't route for others and it gets really popular, " +"then it's a leech on the network,\n" +"and it upsets the balance we have now.\n" +"If it gets really big, then we become Tor, and spend our time begging for" +" people to enable relaying." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:81 +msgid "" +"Thirdly, participating traffic is cover traffic that helps your users' " +"anonymity." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:84 +msgid "" +"We strongly discourage you from disabling participating traffic by " +"default.\n" +"If you do this and your application gets hugely popular, it could break " +"the network." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:90 +msgid "Persistence" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:91 +msgid "" +"You must save the router's data (netdb, configuration, etc.) between runs" +" of the router.\n" +"I2P does not work well if you must reseed each startup, and that's a huge" +" load on our reseed servers, and not very good for anonymity either.\n" +"Even if you bundle router infos, I2P needs saved profile data for best " +"performance." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:99 +msgid "Configurability" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:100 +msgid "" +"Give your users a way to change the configuration of the important " +"settings.\n" +"We understand that you will probably want to hide most of I2P's " +"complexity, but it's important to show some basic settings.\n" +"In addition to the defaults above, some network settings such as UPnP, " +"IP/port may be helpful." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:108 +msgid "Floodfill Considerations" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:109 +msgid "" +"Above a certain bandwidth setting, and meeting other health criteria, " +"your router will become floodfill,\n" +"which may cause a large increase in connections and memory usage (at " +"least with the Java router).\n" +"Think about whether that's OK. You can disable floodfill, but then your " +"fastest users aren't contributing what they could.\n" +"It also depends on the typical uptime for your application." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:119 +msgid "Reseeding" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:120 +msgid "" +"Decide if you are bundling router infos or using our reseed hosts.\n" +"The Java reseed host list is in the source code, so if you keep your " +"source up to date, the host list will be also.\n" +"Be aware of possible blocking by hostile governments." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:129 +msgid "Reduce Network Resource Usage" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:130 +msgid "" +"Consider setting your application tunnels to delay-open, reduce-on-idle " +"and/or close-on-idle.\n" +"This is straightforward if using i2ptunnel but you'll have to implement " +"some of it yourself if using I2CP directly.\n" +"See i2psnark for code that reduces tunnel count and then closes the " +"tunnel, even in the presence of some background DHT activity." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:138 +msgid "Updatability" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:139 +msgid "" +"Have an auto-update feature if at all possible, or at least auto-" +"notification of a new version.\n" +"Our biggest fear is a huge number of routers out there that can't be " +"updated.\n" +"We have about 6-8 releases a year of the Java router, and it's critical " +"to the health of the network that the users keep up.\n" +"We usually have over 80% of the network on the latest release within " +"6 weeks after the release, and we'd like to keep it that way.\n" +"You don't need to worry about disabling the router's built-in auto-update" +" function, as that code is in the router console,\n" +"which you presumably are not bundling." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:150 +msgid "Rollout" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:151 +msgid "" +"Have a gradual rollout plan. Don't overwhelm the network all at once.\n" +"We currently have approximately 25K unique users per day and 40K uniques " +"per month.\n" +"We are probably able to handle growth of 2-3X per year without too much " +"issue.\n" +"If you anticipate a faster rampup than that, OR the bandwidth " +"distribution (or uptime distribution,\n" +"or any other significant characteristic) of your userbase is " +"significantly different from our current userbase,\n" +"we really need to have a discussion.\n" +"The bigger your growth plans, the more important everthing else in this " +"checklist is." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:163 +msgid "Design for and Encourage Long Uptimes" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:164 +msgid "" +"Tell your users that I2P works best if it keeps running.\n" +"It may be several minutes after startup before it works well, and even " +"more after first install.\n" +"If your average uptime is less than an hour, I2P is probably the wrong " +"solution." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:172 +msgid "Show Status" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:173 +msgid "" +"Provide some indication to the user that the application tunnels are " +"ready. Encourage patience." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:178 +msgid "Graceful Shutdown" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:179 +msgid "" +"If possible, delay the shutdown until your participating tunnels expire.\n" +"Don't let your users break tunnels easily, or at least ask them to " +"confirm." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:185 +msgid "Education and Donation" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:186 +msgid "" +"It would be nice if you give your users links to learn more about I2P and" +" to donate." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:192 +msgid "External Router Option" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:193 +msgid "" +"Depending on your user base and application,\n" +"it may be helpful to provide an option or a separate package to use an " +"external router." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:200 +msgid "Use of other Common Services" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:201 +msgid "" +"If you plan to use or link to other common I2P services (news feeds, " +"hosts.txt subscriptions, trackers, outproxies, etc.),\n" +"make sure you aren't overloading them,\n" +"and talk to the people who are running them to make sure it's ok." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:209 +msgid "Time / NTP Issues" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:210 +msgid "" +"I2P includes an SNTP client. I2P requires correct time to operate.\n" +"It will compensate for a skewed system clock but this may delay startup. " +"You may disable I2P's SNTP queries,\n" +"but this isn't advised unless your application makes sure the system " +"clock is correct." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:218 +msgid "Choose What and How you Bundle" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:219 +msgid "" +"At a minimum you will need i2p.jar, router.jar, streaming.jar, and " +"mstreaming.jar.\n" +"You may omit the two streaming jars for a datagram-only app.\n" +"Some apps may need more, e.g. i2ptunnel.jar or addressbook.jar.\n" +"Don't forget jbigi.jar, or a subset of it for the platforms you support, " +"to make the crypto much faster.\n" +"We are currently building them for Java 6, as of 0.9.14. The source is " +"mostly compatible with Java 5 if you want to do your own compile,\n" +"but we may start using Java 6 features at any time without notice.\n" +"We plan to migrate to Java 7 in 2015.\n" +"If you're building Debian / Ubuntu packages, you should require the I2P " +"package from our PPA instead of bundling it.\n" +"You almost certainly do not need susimail, susidns, the router console, " +"and i2psnark, for example." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:230 +msgid "" +"The following files should be included in the I2P installation directory," +" specified with the \"i2p.dir.base\" property.\n" +"Don't forget certificates/reseed and certificates/ssl, required for " +"reseeding, and blocklist.txt for IP validation.\n" +"The geoip directory is optional, but recommended so the router can make " +"decisions based on location.\n" +"The hosts.txt file may be necessary, you may modify it to include any " +"hosts your application uses.\n" +"You may add a router.config file to the base directory to override " +"initial defaults." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:237 +msgid "" +"License requirements may require you to include the LICENSES.txt file and" +" the licenses directory." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:243 +msgid "You may also wish to bundle a hosts.txt file." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:246 +msgid "Be sure to specify a Java 6 bootclasspath if compiling with Java 8." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:254 +msgid "Datagram (DHT) considerations" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:255 +msgid "" +"If your application is using I2P datagrams, e.g. for a DHT,\n" +"there's lots of advanced options available to reduce overhead and " +"increase reliability.\n" +"This may take some time and experimentation to get working well.\n" +"Be aware of size/reliability tradeoffs. Talk to us for help.\n" +"It is possible - and recommended - to use Datagrams and Streaming on the " +"same Destination.\n" +"Don't create separate Destinations for this.\n" +"Don't try to store your unrelated data in the existing network DHTs " +"(iMule, bote, bittorrent, and router).\n" +"Build your own. If you are hardcoding seed nodes, we recommend that you " +"have several." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:268 +msgid "Comarketing" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:269 +msgid "" +"Let's work together. Don't wait until it's done.\n" +"Give us your Twitter handle and start tweeting about it, we will return " +"the favor." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:275 +msgid "Malware" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:276 +msgid "" +"Please don't use I2P for evil.\n" +"It could cause great harm both to our network and our reputation." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:282 +msgid "Join Us" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:283 +msgid "" +"This may be obvious, but join the community. Run I2P 24/7. Start an " +"eepsite about your project.\n" +"Hang out in IRC #i2p-dev. Post on the forums. Spread the word.\n" +"We can help get you users, testers, translators, or even coders." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:291 +msgid "Application Examples" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:292 +msgid "" +"You may wish to install and play with the I2P Android app, and look at " +"its code, for an example of an application that bundles the router.\n" +"See what we expose to the user and what we hide.\n" +"Look at the state machine we use to start and stop the router.\n" +"Other examples are: Vuze, the Nightweb Android app, iMule, TAILS, iCloak," +" and Monero." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:300 +msgid "Code Example" +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:301 +msgid "" +"None of the above actually tells you how to write your code to\n" +"bundle the Java router, so following is a brief example." +msgstr "" + +#: i2p2www/pages/site/docs/applications/embedding.html:331 +msgid "" +"This code is for the case where your application starts the router, as in" +" our Android app.\n" +"You could also have the router start the application via the " +"clients.config and i2ptunnel.config files,\n" +"together with Jetty webapps,\n" +"as is done in our Java packages.\n" +"As always, state management is the difficult part." +msgstr "" + +#: i2p2www/pages/site/docs/applications/managed-clients.html:3 +msgid "February 2014" +msgstr "" + +#: i2p2www/pages/site/docs/applications/managed-clients.html:8 +#, python-format +msgid "" +"Clients may be started directly by the router when they are listed\n" +"in the clients.config file.\n" +"These clients may be \"managed\" or \"unmanaged\".\n" +"This is handled by the ClientAppManager.\n" +"Additionally, managed or unmanaged clients may register with the\n" +"ClientAppManager so that other clients may retrieve a reference to them.\n" +"There is also a simple Port Mapper facility for clients to register an\n" +"internal port that other clients may look up." +msgstr "" + +#: i2p2www/pages/site/docs/applications/managed-clients.html:21 +msgid "" +"As of release 0.9.4, the router supports managed clients.\n" +"Managed clients are instantiated and started by the ClientAppManager.\n" +"The ClientAppManager maintains a reference to the client and receives " +"updates on the client's state.\n" +"Managed clients are preferred, as it is much easier to implement state " +"tracking\n" +"and to start and stop a client. It also is much easier to avoid static " +"references in the client code\n" +"which could lead to excessive memory usage after a client is stopped.\n" +"Managed clients may be started and stopped by the user in the router " +"console,\n" +"and are stopped at router shutdown." +msgstr "" + +#: i2p2www/pages/site/docs/applications/managed-clients.html:31 +msgid "" +"Managed clients implement either the net.i2p.app.ClientApp or " +"net.i2p.router.app.RouterApp interface.\n" +"Clients implementing the ClientApp interface must provide the following " +"constructor:" +msgstr "" + +#: i2p2www/pages/site/docs/applications/managed-clients.html:38 +msgid "" +"Clients implementing the RouterApp interface must provide the following " +"constructor:" +msgstr "" + +#: i2p2www/pages/site/docs/applications/managed-clients.html:44 +msgid "The arguments provided are specified in the clients.config file." +msgstr "" + +#: i2p2www/pages/site/docs/applications/managed-clients.html:48 +msgid "Unmanaged Clients" +msgstr "" + +#: i2p2www/pages/site/docs/applications/managed-clients.html:49 +msgid "" +"If the main class specified in the clients.config file does not implement" +" a managed interface,\n" +"it will be started with main() with the arguments specified,\n" +"and stopped with main() with the arguments specified.\n" +"The router does not maintain a reference, since all interactions are via " +"the static main() method.\n" +"The console cannot provide accurate state information to the user." +msgstr "" + +#: i2p2www/pages/site/docs/applications/managed-clients.html:57 +msgid "Registered Clients" +msgstr "" + +#: i2p2www/pages/site/docs/applications/managed-clients.html:58 +msgid "" +"Clients, whether managed or unmanaged, may register with the " +"ClientAppManager\n" +"so that other clients may retrieve a reference to them.\n" +"Registration is by name.\n" +"Known registered clients are:" +msgstr "" + +#: i2p2www/pages/site/docs/applications/managed-clients.html:68 +msgid "Port Mapper" +msgstr "" + +#: i2p2www/pages/site/docs/applications/managed-clients.html:69 +msgid "" +"The router also provides a simple mechanism for clients to find an " +"internal socket service,\n" +"such as the HTTP proxy. This is provided by the Port Mapper.\n" +"Registration is by name.\n" +"Clients that register generally provide an internal emulated socket on " +"that port." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:2 +msgid "Supported Applications" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:5 +#: i2p2www/pages/site/docs/applications/supported.html:183 +msgid "Blogging, Forums, and Wikis" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:7 +#: i2p2www/pages/site/docs/applications/supported.html:229 +msgid "Decentralized File Storage" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:10 +#: i2p2www/pages/site/docs/applications/supported.html:241 +msgid "Development Tools" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:13 +#: i2p2www/pages/site/docs/applications/supported.html:243 +msgid "Version control" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:17 +#: i2p2www/pages/site/docs/applications/supported.html:262 +msgid "Domain Naming" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:19 +#: i2p2www/pages/site/docs/applications/supported.html:280 +msgid "Email" +msgstr "Email" + +#: i2p2www/pages/site/docs/applications/supported.html:22 +#: i2p2www/pages/site/docs/applications/supported.html:325 +msgid "File Sharing" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:25 +#: i2p2www/pages/site/docs/applications/supported.html:327 +msgid "BitTorrent clients" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:27 +#: i2p2www/pages/site/docs/applications/supported.html:369 +msgid "BitTorrent trackers and indexers" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:36 +#: i2p2www/pages/site/docs/applications/supported.html:436 +msgid "Network Administration" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:39 +#: i2p2www/pages/site/docs/applications/supported.html:438 +msgid "General-purpose socket utilities" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:46 +#: i2p2www/pages/site/docs/applications/supported.html:479 +msgid "Real-time Chat" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:49 +#: i2p2www/pages/site/docs/applications/supported.html:481 +msgid "Instant messaging clients" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:51 +#: i2p2www/pages/site/docs/applications/supported.html:491 +msgid "IRC clients" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:53 +#: i2p2www/pages/site/docs/applications/supported.html:542 +msgid "IRC servers" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:58 +#: i2p2www/pages/site/docs/applications/supported.html:558 +msgid "Web Browsing" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:61 +#: i2p2www/pages/site/docs/applications/supported.html:560 +msgid "Anonymous websites" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:63 +#: i2p2www/pages/site/docs/applications/supported.html:609 +msgid "Proxy software" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:65 +#: i2p2www/pages/site/docs/applications/supported.html:634 +msgid "Inproxies" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:67 +#: i2p2www/pages/site/docs/applications/supported.html:674 +msgid "Outproxies" +msgstr "Prokurët jashtësor" + +#: i2p2www/pages/site/docs/applications/supported.html:72 +#: i2p2www/pages/site/docs/applications/supported.html:688 +msgid "Website Hosting" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:75 +#: i2p2www/pages/site/docs/applications/supported.html:703 +msgid "Web servers" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:82 +#, python-format +msgid "" +"This is intended to be a comprehensive listing of applications used with\n" +"I2P. If you know of something that's missing please submit a ticket on\n" +"Trac, and be sure to select the\n" +"“www” component in the submission form." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:89 +msgid "" +"\n" +"Supported applications are tagged with one or more of the following:" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:94 +#: i2p2www/pages/site/docs/applications/supported.html:276 +#: i2p2www/pages/site/docs/applications/supported.html:308 +#: i2p2www/pages/site/docs/applications/supported.html:333 +#: i2p2www/pages/site/docs/applications/supported.html:700 +msgid "bundled" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:97 +msgid "" +"Bundled application — I2P ships with a few officially\n" +"supported applications that let new users take immediate advantage of\n" +"some of I2P's more useful capabilities." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:104 +#: i2p2www/pages/site/docs/applications/supported.html:192 +#: i2p2www/pages/site/docs/applications/supported.html:205 +#: i2p2www/pages/site/docs/applications/supported.html:217 +#: i2p2www/pages/site/docs/applications/supported.html:225 +#: i2p2www/pages/site/docs/applications/supported.html:238 +#: i2p2www/pages/site/docs/applications/supported.html:289 +#: i2p2www/pages/site/docs/applications/supported.html:401 +#: i2p2www/pages/site/docs/applications/supported.html:423 +#: i2p2www/pages/site/docs/applications/supported.html:432 +#: i2p2www/pages/site/docs/applications/supported.html:520 +msgid "plugin" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:107 +#, python-format +msgid "" +"Third-party plugin — I2P's plugin system provides convenient\n" +"deployment of I2P-enabled applications and allows tighter integration\n" +"with the router. Plugins are [reviewed by the community](http://%(plugins)s) to identify security and\n" +"anonymity issues." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:118 +#: i2p2www/pages/site/docs/applications/supported.html:217 +#: i2p2www/pages/site/docs/applications/supported.html:225 +#: i2p2www/pages/site/docs/applications/supported.html:238 +#: i2p2www/pages/site/docs/applications/supported.html:249 +#: i2p2www/pages/site/docs/applications/supported.html:258 +#: i2p2www/pages/site/docs/applications/supported.html:321 +#: i2p2www/pages/site/docs/applications/supported.html:339 +#: i2p2www/pages/site/docs/applications/supported.html:350 +#: i2p2www/pages/site/docs/applications/supported.html:365 +#: i2p2www/pages/site/docs/applications/supported.html:411 +#: i2p2www/pages/site/docs/applications/supported.html:423 +#: i2p2www/pages/site/docs/applications/supported.html:432 +#: i2p2www/pages/site/docs/applications/supported.html:447 +#: i2p2www/pages/site/docs/applications/supported.html:453 +#: i2p2www/pages/site/docs/applications/supported.html:459 +#: i2p2www/pages/site/docs/applications/supported.html:469 +#: i2p2www/pages/site/docs/applications/supported.html:475 +#: i2p2www/pages/site/docs/applications/supported.html:487 +#: i2p2www/pages/site/docs/applications/supported.html:520 +#: i2p2www/pages/site/docs/applications/supported.html:526 +#: i2p2www/pages/site/docs/applications/supported.html:532 +#: i2p2www/pages/site/docs/applications/supported.html:538 +#: i2p2www/pages/site/docs/applications/supported.html:615 +#: i2p2www/pages/site/docs/applications/supported.html:624 +#: i2p2www/pages/site/docs/applications/supported.html:630 +#: i2p2www/pages/site/docs/applications/supported.html:700 +#: i2p2www/pages/site/docs/applications/supported.html:715 +#: i2p2www/pages/site/docs/applications/supported.html:721 +#: i2p2www/pages/site/docs/applications/supported.html:727 +#: i2p2www/pages/site/docs/applications/supported.html:733 +msgid "standalone" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:118 +#: i2p2www/pages/site/docs/applications/supported.html:192 +#: i2p2www/pages/site/docs/applications/supported.html:199 +#: i2p2www/pages/site/docs/applications/supported.html:205 +#: i2p2www/pages/site/docs/applications/supported.html:211 +#: i2p2www/pages/site/docs/applications/supported.html:359 +#: i2p2www/pages/site/docs/applications/supported.html:383 +#: i2p2www/pages/site/docs/applications/supported.html:392 +#: i2p2www/pages/site/docs/applications/supported.html:548 +#: i2p2www/pages/site/docs/applications/supported.html:554 +msgid "standalone/mod" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:121 +msgid "" +"Third-party standalone application — Many standard network\n" +"applications only require careful setup and configuration to communicate\n" +"anonymously over I2P. These are tagged with standalone. Some\n" +"applications, tagged with standalone/mod, require patching to\n" +"function properly over I2P or to prevent inadvertent disclosure of\n" +"identifying information such as the user's hostname or external IP\n" +"address." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:132 +#: i2p2www/pages/site/docs/applications/supported.html:299 +#: i2p2www/pages/site/docs/applications/supported.html:568 +#: i2p2www/pages/site/docs/applications/supported.html:578 +#: i2p2www/pages/site/docs/applications/supported.html:587 +#: i2p2www/pages/site/docs/applications/supported.html:593 +#: i2p2www/pages/site/docs/applications/supported.html:599 +#: i2p2www/pages/site/docs/applications/supported.html:605 +#: i2p2www/pages/site/docs/applications/supported.html:646 +#: i2p2www/pages/site/docs/applications/supported.html:654 +#: i2p2www/pages/site/docs/applications/supported.html:663 +#: i2p2www/pages/site/docs/applications/supported.html:670 +#: i2p2www/pages/site/docs/applications/supported.html:684 +msgid "service" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:135 +msgid "" +"Third-party essential network service — Services which on\n" +"the I2P network are analogous to those provided on the public Internet\n" +"by hosting providers, ISPs, and Google: eepsite indexes and jump\n" +"services, search engines, email, DNS-style name services, hosting,\n" +"proxies, etc. These services focus on boosting the usefulness of the\n" +"network as a whole, and making network content more discoverable." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:145 +#: i2p2www/pages/site/docs/applications/supported.html:217 +#: i2p2www/pages/site/docs/applications/supported.html:365 +msgid "unmaintained" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:148 +msgid "" +"Unmaintained — This is used to tag plugins, applications,\n" +"and services which appear to be unmaintained and may be removed from\n" +"this listing in the future." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:156 +#, python-format +msgid "" +"Warning: Using an application, plugin, or service with I2P\n" +"doesn't automatically protect your anonymity. I2P is merely a set of " +"tools\n" +"which can help you mitigate certain identified\n" +"threats to anonymity. We do not and cannot make any guarantees about " +"the\n" +"safety of the applications, plugins, and services listed below. Most\n" +"applications and plugins must be properly configured, and some will need " +"to\n" +"be patched — and even then your anonymity might not be assured. " +"Similarly,\n" +"services could put your anonymity at risk, either by design or through\n" +"carelessness on their part or your own." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:168 +msgid "" +"If you have doubts about the suitability of an application,\n" +"plugin, or service for use with I2P, you are urged to inquire about " +"privacy\n" +"issues with its maintainers, to search its mailing lists and bug tracker " +"if\n" +"one exists, and consult trusted, knowledgeable members of the I2P\n" +"community." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:176 +msgid "" +"Take responsibility for your own anonymity and safety — always\n" +"seek expert advice, educate yourself, practice good judgment, be mindful " +"of\n" +"disclosing personally identifying information, and don't take\n" +"shortcuts." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:198 +msgid "Lightweight forum software." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:204 +msgid "Another lightweight blogging platform." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:210 +msgid "Most popular open source forum software." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:216 +msgid "Distributed forums software, originally developed by jrandom." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:221 +#, python-format +msgid "" +"A Java-based MediaWiki clone. No external database needed.\n" +"Plugin available here." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:233 +#, python-format +msgid "" +"Port of the Tahoe-" +"LAFS\n" +"distributed file system to the I2P network. Controller plugin here." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:248 +msgid "Most popular distributed version control system." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:254 +#, python-format +msgid "" +"Another distributed version control system. Currently\n" +"used in I2P development." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:266 +#, python-format +msgid "" +"Provides management of addressbooks, which are part of a simple,\n" +"user-controlled I2P naming system somewhat\n" +"analogous to the Internet's Domain Name System (DNS). Addressbooks map\n" +"Base64 destinations to short, usually human-readable “domain” names " +"ending\n" +"with a .i2p suffix which the I2P router's HTTP client can resolve back to" +"\n" +"Base64 addresses. (Note: While Base64 destinations are globally\n" +"unique, addressbook “domain” names only resolve to unique destinations\n" +"locally.)" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:285 +msgid "" +"Serverless peer-to-peer email application using a distributed hash table\n" +"(DHT) for secure mail storage." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:294 +msgid "" +"Provides email service within the I2P network via @mail.i2p addresses,\n" +"and email gateway service between the I2P network and the public Internet" +"\n" +"via @i2pmail.org addresses. One of the oldest continuous services on I2P." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:304 +msgid "" +"Simple web browser-based email interface. Configured to use Postman's\n" +"email service by default." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:313 +#, python-format +msgid "" +"Can be configured to use Postman's email service. See\n" +"this comparison of MUAs,\n" +"and configuration settings for\n" +"SMTP and POP3." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:332 +msgid "I2P's integrated BitTorrent client." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:338 +msgid "Modified version of I2PSnark." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:344 +msgid "" +"\n" +"A fork of rufus that uses the Basic Open Bridge (BOB) and has many\n" +"improvements, including using the latest wxwidgets and python. It also\n" +"supports use of seedless if installed for trackerless torrents and\n" +"magnet-link like fetching of torrents within I2P.\n" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:355 +msgid "" +"Clean, full-featured cross-platform BitTorrent client with official\n" +"ports for several GUI toolkits." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:364 +msgid "Has a plugin providing I2P support." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:371 +#, python-format +msgid "" +"For a detailed feature comparison of I2P-enabled trackers/indexers, see\n" +"here." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:379 +msgid "" +"The code that powered one of the first major tracker/indexer sites on the" +"\n" +"Internet. Patched for I2P." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:388 +#, python-format +msgid "" +"Lightweight tracker/indexer. I2P mod available in the i2p.opentracker\n" +"branch of the I2P Monotone repository." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:397 +#, python-format +msgid "" +"zzz's Java-based open tracker. More info\n" +"here." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:410 +msgid "I2P port of the aMule ED2K client." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:419 +#, python-format +msgid "" +"Port of the Phex Gnutella " +"client. Website\n" +"for plugin version here." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:428 +#, python-format +msgid "" +"Cache for Gnutella peers on I2P. Website for plugin version\n" +"here." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:443 +msgid "" +"Unix standard tool for socket relaying. Several clones, ports, and forks\n" +"have appeared over the years." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:452 +msgid "Like netcat but more powerful." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:458 +msgid "" +"Proxy providing simple, transparent SOCKS-ification of network " +"applications." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:468 +msgid "" +"Most popular implementation of the Secure Shell (SSH) protocol and " +"related tools." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:474 +msgid "Open source Secure Shell (SSH) client for Windows." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:486 +msgid "IM client with multiple incarnations." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:493 +msgid "" +"Many IRC clients leak identifying information to servers or other\n" +"clients, so I2P's IRC and SOCKS IRC client tunnels filter certain inbound" +"\n" +"and outbound messages to scrub data such as LAN IP addresses, external IP" +"\n" +"addresses, local hostnames, and the name and version of the IRC client. " +"Two\n" +"message types in particular, DCC and CTCP, can't be sufficiently " +"anonymized\n" +"without changes to the protocols or to IRC client/server code, so they " +"are\n" +"completely blocked, except for CTCP ACTION (the message emitted by the\n" +"/me command) which isn't inherently dangerous." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:504 +msgid "" +"I2P's IRC filtering may not cover every possible leak — users should also" +"\n" +"check if their client is sending their real name or local username. " +"Packet\n" +"sniffers such as Wireshark are\n" +"useful here. Eliminating remaining leaks may be as simple as changing the" +"\n" +"client's default configuration. If that doesn't help, inform the I2P\n" +"developers; they may be able to solve it via additional filtering." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:516 +#, python-format +msgid "" +"Small Java-based IRC client. Plugin available here." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:525 +msgid "Cross-platform graphical IRC client." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:531 +msgid "Unixy terminal-based IRC client." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:537 +msgid "Another Unixy terminal-based IRC client." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:547 +msgid "IRC server developed from scratch." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:553 +msgid "Most popular IRC server." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:565 +msgid "" +"Any website hosted anonymously on I2P, reachable through the I2P router's" +" HTTP proxy." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:573 +msgid "" +"Distributed anonymous websites hosted\n" +"using Tahoe-LAFS-I2P, currently only reachable with Tahoe-LAFS-I2P\n" +"clients or through the Tahoe-LAFS-I2P HTTP proxy." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:583 +#, python-format +msgid "" +"Website for sponge's jump service.\n" +"Source code available." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:592 +msgid "Another jump service." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:598 +msgid "Dynamically updated eepsite index." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:604 +#, python-format +msgid "Website for zzz's jump service." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:614 +msgid "SOCKS-enabled caching web proxy with basic filtering capabilities." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:620 +msgid "" +"Privacy-focused non-caching web proxy with advanced filtering\n" +"capabilities. Excels at removing ads and other junk." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:629 +msgid "Venerable caching web proxy." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:636 +msgid "Gateways allowing users on the public Internet to access eepsites." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:643 +#, python-format +msgid "tino's inproxy on the public Internet." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:651 +#: i2p2www/pages/site/docs/applications/supported.html:660 +#: i2p2www/pages/site/docs/applications/supported.html:667 +msgid "Another inproxy on the public Internet." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:676 +msgid "" +"Gateways allowing I2P users to access content hosted on the public " +"Internet." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:683 +msgid "Publicly advertised outproxy running Squid, located in Europe." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:693 +msgid "" +"Lightweight web server and Java servlet container. I2P is tightly\n" +"integrated with a bundled copy of Jetty which by default is configured to" +"\n" +"host the user's eepsite. The " +"bundled\n" +"Jetty also serves the I2P router console and web applications bundled " +"with\n" +"I2P." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:705 +msgid "" +"In addition to Jetty, any web server should function over I2P without\n" +"modification so long as it's HTTP-compliant. Some web servers known to\n" +"currently serve content on the I2P network are:" +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:714 +msgid "Most popular web server on the public WWW." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:720 +msgid "Web server and Java servlet container. More features than Jetty." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:726 +msgid "Fast lightweight web server." +msgstr "" + +#: i2p2www/pages/site/docs/applications/supported.html:732 +msgid "High-performance lightweight web server." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:2 +msgid "Naming discussion" +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:4 +#, python-format +msgid "" +"NOTE: The following is a discussion of the reasons behind the I2P naming " +"system,\n" +"common arguments and possible alternatives.\n" +"See the naming page for current documentation." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:10 +msgid "Discarded alternatives" +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:12 +msgid "" +"Naming within I2P has been an oft-debated topic since the very beginning " +"with\n" +"advocates across the spectrum of possibilities. However, given I2P's " +"inherent\n" +"demand for secure communication and decentralized operation, the " +"traditional\n" +"DNS-style naming system is clearly out, as are \"majority rules\" voting " +"systems." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:19 +msgid "" +"I2P does not promote the use of DNS-like services though, as the damage " +"done\n" +"by hijacking a site can be tremendous - and insecure destinations have no" +"\n" +"value. DNSsec itself still falls back on registrars and certificate " +"authorities,\n" +"while with I2P, requests sent to a destination cannot be intercepted or " +"the reply\n" +"spoofed, as they are encrypted to the destination's public keys, and a " +"destination\n" +"itself is just a pair of public keys and a certificate. DNS-style " +"systems on the\n" +"other hand allow any of the name servers on the lookup path to mount " +"simple denial\n" +"of service and spoofing attacks. Adding on a certificate authenticating " +"the\n" +"responses as signed by some centralized certificate authority would " +"address many of\n" +"the hostile nameserver issues but would leave open replay attacks as well" +" as \n" +"hostile certificate authority attacks." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:33 +msgid "" +"Voting style naming is dangerous as well, especially given the " +"effectiveness of\n" +"Sybil attacks in anonymous systems - the attacker can simply create an " +"arbitrarily\n" +"high number of peers and \"vote\" with each to take over a given name. " +"Proof-of-work\n" +"methods can be used to make identity non-free, but as the network grows " +"the load\n" +"required to contact everyone to conduct online voting is implausible, or " +"if the\n" +"full network is not queried, different sets of answers may be reachable." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:42 +msgid "" +"As with the Internet however, I2P is keeping the design and operation of " +"a \n" +"naming system out of the (IP-like) communication layer. The bundled " +"naming library\n" +"includes a simple service provider interface which alternate naming systems can\n" +"plug into, allowing end users to drive what sort of naming tradeoffs they" +" prefer." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:50 +msgid "" +"See also Names: " +"Decentralized, Secure, Human-Meaningful: Choose Two." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:55 +msgid "(adapted from a post in the old Syndie, November 26, 2005)" +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:58 +msgid "" +"Q:\n" +"What to do if some hosts \n" +"do not agree on one address and if some addresses are working, others are" +" not? \n" +"Who is the right source of a name?" +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:64 +msgid "" +"A:\n" +"You don't. This is actually a critical difference between names on I2P " +"and how \n" +"DNS works - names in I2P are human readable, secure, but not globally" +" \n" +"unique. This is by design, and an inherent part of our need for " +"security." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:70 +msgid "" +"If I could somehow convince you to change the destination associated with" +" some \n" +"name, I'd successfully \"take over\" the site, and under no circumstances" +" is that \n" +"acceptable. Instead, what we do is make names locally unique: " +"they are \n" +"what you use to call a site, just as how you can call things " +"whatever \n" +"you want when you add them to your browser's bookmarks, or your IM " +"client's \n" +"buddy list. Who you call \"Boss\" may be who someone else calls " +"\"Sally\"." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:78 +msgid "Names will not, ever, be securely human readable and globally unique." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:83 +msgid "" +"The following from zzz is a review of several common\n" +"complaints about I2P's naming system." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:89 +msgid "" +"Inefficiency:\n" +"The whole hosts.txt is downloaded (if it has changed, since eepget uses " +"the etag and last-modified headers).\n" +"It's about 400K right now for almost 800 hosts." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:94 +msgid "" +"True, but this isn't a lot of traffic in the context of i2p, which is " +"itself wildly inefficient\n" +"(floodfill databases, huge encryption overhead and padding, garlic " +"routing, etc.).\n" +"If you downloaded a hosts.txt file from someone every 12 hours it " +"averages out to about 10 bytes/sec." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:99 +msgid "" +"As is usually the case in i2p, there is a fundamental tradeoff here " +"between anonymity and efficiency.\n" +"Some would say that using the etag and last-modified headers is hazardous" +" because it exposes when you\n" +"last requested the data.\n" +"Others have suggested asking for specific keys only (similar to what jump" +" services do, but\n" +"in a more automated fashion), possibly at a further cost in anonymity." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:106 +#, python-format +msgid "" +"Possible improvements would be a replacement or supplement to addressbook" +" (see %(i2host)sp),\n" +"or something simple like subscribing to http://example.i2p/cgi-" +"bin/recenthosts.cgi rather than http://example.i2p/hosts.txt.\n" +"If a hypothetical recenthosts.cgi distributed all hosts from the last 24 " +"hours, for example,\n" +"that could be both more efficient and more anonymous than the current " +"hosts.txt with last-modified and etag." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:112 +#, python-format +msgid "" +"A sample implementation is on stats.i2p at\n" +"%(url)s.\n" +"This script returns an Etag with a timestamp.\n" +"When a request comes in with the If-None-Match etag,\n" +"the script ONLY returns new hosts since that timestamp, or 304 Not " +"Modified if there are none.\n" +"In this way, the script efficiently returns only the hosts the subscriber" +"\n" +"does not know about, in an addressbook-compatible manner." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:121 +msgid "" +"So the inefficiency is not a big issue and there are several ways to " +"improve things without\n" +"radical change." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:127 +msgid "" +"Not Scalable:\n" +"The 400K hosts.txt (with linear search) isn't that big at the moment and\n" +"we can probably grow by 10x or 100x before it's a problem." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:132 +msgid "" +"As far as network traffic see above.\n" +"But unless you're going to do a slow real-time query over the network for" +"\n" +"a key, you need to have the whole set of keys stored locally, at a cost " +"of about 500 bytes per key." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:139 +msgid "" +"Requires configuration and \"trust\":\n" +"Out-of-the-box addressbook is only subscribed to " +"http://www.i2p2.i2p/hosts.txt, which is rarely updated,\n" +"leading to poor new-user experience." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:144 +msgid "" +"This is very much intentional. jrandom wants a user to \"trust\" a " +"hosts.txt\n" +"provider, and as he likes to say, \"trust is not a boolean\".\n" +"The configuration step attempts to force users to think about issues of " +"trust in an anonymous network." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:149 +msgid "" +"As another example, the \"Eepsite Unknown\" error page in the HTTP Proxy\n" +"lists some jump services, but doesn't \"recommend\" any one in " +"particular,\n" +"and it's up to the user to pick one (or not).\n" +"jrandom would say we trust the listed providers enough to list them but " +"not enough to\n" +"automatically go fetch the key from them." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:156 +msgid "" +"How successful this is, I'm not sure.\n" +"But there must be some sort of hierarchy of trust for the naming system.\n" +"To treat everyone equally may increase the risk of hijacking." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:163 +msgid "It isn't DNS" +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:166 +msgid "" +"Unfortunately real-time lookups over i2p would significantly slow down " +"web browsing." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:169 +msgid "" +"Also, DNS is based on lookups with limited caching and time-to-live, " +"while i2p\n" +"keys are permanent." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:173 +msgid "Sure, we could make it work, but why? It's a bad fit." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:178 +msgid "" +"Not reliable:\n" +"It depends on specific servers for addressbook subscriptions." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:182 +msgid "" +"Yes it depends on a few servers that you have configured.\n" +"Within i2p, servers and services come and go.\n" +"Any other centralized system (for example DNS root servers) would\n" +"have the same problem. A completely decentralized system (everybody is " +"authoritative)\n" +"is possible by implementing an \"everybody is a root DNS server\" " +"solution, or by\n" +"something even simpler, like a script that adds everybody in your " +"hosts.txt to your addressbook." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:190 +msgid "" +"People advocating all-authoritative solutions generally haven't thought " +"through\n" +"the issues of conflicts and hijacking, however." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:196 +msgid "" +"Awkward, not real-time:\n" +"It's a patchwork of hosts.txt providers, key-add web form providers, jump" +" service providers,\n" +"eepsite status reporters.\n" +"Jump servers and subscriptions are a pain, it should just work like DNS." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:202 +msgid "See the reliability and trust sections." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:207 +msgid "" +"So, in summary, the current system is not horribly broken, inefficient, " +"or un-scalable,\n" +"and proposals to \"just use DNS\" aren't well thought-through." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:212 +msgid "Alternatives" +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:213 +msgid "" +"The I2P source contains several pluggable naming systems and supports " +"configuration options\n" +"to enable experimentation with naming systems." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:218 +msgid "" +"Meta - calls two or more other naming systems in order.\n" +"By default, calls PetName then HostsTxt." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:222 +msgid "" +"PetName - Looks up in a petnames.txt file.\n" +"The format for this file is NOT the same as hosts.txt." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:226 +msgid "HostsTxt - Looks up in the following files, in order:" +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:234 +msgid "" +"AddressDB - Each host is listed in a separate file in a addressDb/" +" directory." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:237 +msgid "" +"Eepget - does an HTTP lookup request from an external\n" +"server - must be stacked after the HostsTxt lookup with Meta.\n" +"This could augment or replace the jump system.\n" +"Includes in-memory caching." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:243 +msgid "" +"Exec - calls an external program for lookup, allows\n" +"additional experimentation in lookup schemes, independent of java.\n" +"Can be used after HostsTxt or as the sole naming system.\n" +"Includes in-memory caching." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:249 +msgid "Dummy - used as a fallback for Base64 names, otherwise fails." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:253 +msgid "" +"The current naming system can be changed with the advanced config option " +"'i2p.naming.impl'\n" +"(restart required).\n" +"See core/java/src/net/i2p/client/naming for details." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:258 +msgid "" +"Any new system should be stacked with HostsTxt, or should\n" +"implement local storage and/or the addressbook subscription functions, " +"since addressbook\n" +"only knows about the hosts.txt files and format." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:264 +msgid "Certificates" +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:265 +msgid "" +"I2P destinations contain a certificate, however at the moment that " +"certificate\n" +"is always null.\n" +"With a null certificate, base64 destinations are always 516 bytes ending " +"in \"AAAA\",\n" +"and this is checked in the addressbook merge mechanism, and possibly " +"other places.\n" +"Also, there is no method available to generate a certificate or add it to" +" a\n" +"destination. So these will have to be updated to implement certificates." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:273 +#, python-format +msgid "" +"One possible use of certificates is for proof of work." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:276 +msgid "" +"Another is for \"subdomains\" (in quotes because there is really no such " +"thing,\n" +"i2p uses a flat naming system) to be signed by the 2nd level domain's " +"keys." +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:280 +msgid "" +"With any certificate implementation must come the method for verifying " +"the\n" +"certificates.\n" +"Presumably this would happen in the addressbook merge code.\n" +"Is there a method for multiple types of certificates, or multiple " +"certificates?" +msgstr "" + +#: i2p2www/pages/site/docs/discussions/naming.html:286 +msgid "" +"Adding on a certificate authenticating the\n" +"responses as signed by some centralized certificate authority would " +"address many of\n" +"the hostile nameserver issues but would leave open replay attacks as well" +" as \n" +"hostile certificate authority attacks." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:2 +msgid "ElGamal/AES + SessionTag Encryption" +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:7 +msgid "ElGamal/AES+SessionTags is used for end-to-end encryption." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:11 +msgid "" +"As an unreliable, unordered, message based system, I2P uses a simple " +"combination \n" +"of asymmetric and symmetric encryption algorithms to provide data " +"confidentiality \n" +"and integrity to garlic messages. As a whole, the combination is referred" +" \n" +"to as ElGamal/AES+SessionTags, but that is an excessively verbose way to " +"describe \n" +"the use of 2048bit ElGamal, AES256, SHA256, and 32 byte nonces." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:19 +#: i2p2www/pages/site/docs/how/tech-intro.html:508 +msgid "" +"The first time a router wants to encrypt a garlic message to another " +"router, \n" +"they encrypt the keying material for an AES256 session key with ElGamal " +"and \n" +"append the AES256/CBC encrypted payload after that encrypted ElGamal " +"block. \n" +"In addition to the encrypted payload, the AES encrypted section contains " +"the \n" +"payload length, the SHA256 hash of the unencrypted payload, as well as a " +"number \n" +"of \"session tags\" - random 32 byte nonces. The next time the sender " +"wants \n" +"to encrypt a garlic message to another router, rather than ElGamal " +"encrypt \n" +"a new session key they simply pick one of the previously delivered " +"session \n" +"tags and AES encrypt the payload like before, using the session key used " +"with \n" +"that session tag, prepended with the session tag itself. When a router " +"receives \n" +"a garlic encrypted message, they check the first 32 bytes to see if it " +"matches \n" +"an available session tag - if it does, they simply AES decrypt the " +"message, \n" +"but if it does not, they ElGamal decrypt the first block." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:35 +#: i2p2www/pages/site/docs/how/tech-intro.html:524 +msgid "" +"Each session tag can be used only once so as to prevent internal " +"adversaries \n" +"from unnecessarily correlating different messages as being between the " +"same \n" +"routers. The sender of an ElGamal/AES+SessionTag encrypted message " +"chooses \n" +"when and how many tags to deliver, prestocking the recipient with enough " +"tags \n" +"to cover a volley of messages. Garlic messages may detect the successful " +"tag \n" +"delivery by bundling a small additional message as a clove (a \"delivery " +"status \n" +"message\") - when the garlic message arrives at the intended recipient " +"and \n" +"is decrypted successfully, this small delivery status message is one of " +"the \n" +"cloves exposed and has instructions for the recipient to send the clove " +"back \n" +"to the original sender (through an inbound tunnel, of course). When the " +"original \n" +"sender receives this delivery status message, they know that the session " +"tags \n" +"bundled in the garlic message were successfully delivered." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:50 +msgid "" +"Session tags themselves have a short lifetime, after which they are \n" +"discarded if not used. In addition, the quantity stored for each key is " +"limited, \n" +"as are the number of keys themselves - if too many arrive, either new or " +"old \n" +"messages may be dropped. The sender keeps track whether messages using " +"session \n" +"tags are getting through, and if there isn't sufficient communication it " +"may \n" +"drop the ones previously assumed to be properly delivered, reverting back" +" \n" +"to the full expensive ElGamal encryption.\n" +"A session will continue to exist until all its tags are exhausted or " +"expire." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:61 +msgid "" +"Sessions are unidirectional. Tags are delivered from Alice to Bob,\n" +"and Alice then uses the tags, one by one, in subsequent messages to Bob." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:66 +msgid "" +"Sessions may be established between Destinations, between Routers, or\n" +"between a Router and a Destination.\n" +"Each Router and Destination maintains its own Session Key Manager to\n" +"keep track of Session Keys and Session Tags.\n" +"Separate Session Key Managers prevents correlation of multiple " +"Destinations\n" +"to each other or a Router by adversaries." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:77 +msgid "Message Reception" +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:78 +msgid "" +"Each message received has one of two\n" +"the two possible conditions:

" +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:84 +msgid "" +"It is part of an existing session and contains a Session Tag and an AES " +"encrypted block" +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:85 +msgid "It is for a new session and contains both ElGamal and AES encrypted blocks" +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:88 +msgid "" +"When a router receives a message, it will first assume it is from\n" +"an existing session and attempt to look up the Session Tag and decrypt " +"the following data using AES.\n" +"If that fails, it will assume it is for a new session and attempt to\n" +"decrypt it using ElGamal." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:97 +msgid "New Session Message Specification" +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:98 +msgid "" +"A New Session ElGamal Message contains two parts, an encrypted ElGamal " +"block\n" +"and an encrypted AES block." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:103 +msgid "The encrypted message contains:" +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:127 +msgid "ElGamal Block" +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:128 +msgid "The encrypted ElGamal Block is always 514 bytes long." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:132 +msgid "The unencrypted ElGamal data is 222 bytes long, containing:" +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:164 +#, python-format +msgid "" +"The 32-byte\n" +"Session Key\n" +"is the identifier for the session.\n" +"The 32-byte Pre-IV will be used to generate the IV for the AES block that" +" follows;\n" +"the IV is the first 16 bytes of the SHA-256 Hash of the Pre-IV." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:172 +#, python-format +msgid "" +"The 222 byte payload is encrypted\n" +"using ElGamal\n" +"and the encrypted block is 514 bytes long.\n" +"

" +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:179 +msgid "AES Block" +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:180 +msgid "The unencrypted data in the AES block contains the following:" +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:254 +msgid "Minimum length: 48 bytes" +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:257 +#, python-format +msgid "" +"The data is then AES Encrypted,\n" +"using the session key and IV (calculated from the pre-IV) from the " +"ElGamal section.\n" +"The encrypted AES Block length is variable but is always a multiple of 16" +" bytes.\n" +"

" +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:266 +#, python-format +msgid "" +"Actual max payload length, and max block length, is less than 64 KB; see " +"the I2NP Overview." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:269 +msgid "New Session Key is currently unused and is never present." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:274 +msgid "Existing Session Message Specification" +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:275 +msgid "" +"The session tags delivered successfully are remembered for a \n" +"brief period (15 minutes currently) until they are used or discarded.\n" +"A tag is used by packaging one in an Existing Session Message that\n" +"contains only an AES encrypted block, and is not preceded by an\n" +"ElGamal block." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:283 +msgid "" +"The existing session message is\n" +"as follows:" +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:318 +msgid "" +"The session tag also serves as\n" +"the pre-IV. The IV is the first 16 bytes of the SHA-256 Hash of the " +"sessionTag." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:323 +msgid "" +"To decode a message from an existing session, a router looks up the " +"Session Tag to find an\n" +"associated Session Key. If the Session Tag is found, the AES block is " +"decrypted using the associated Session Key.\n" +"If the tag is not found, the message is assumed to be a New Session Message." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:331 +msgid "Session Tag Configuration Options" +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:332 +#, python-format +msgid "" +"As of release 0.9.2, the client may configure the default number of " +"Session Tags to send\n" +"and the low tag threshold for the current session.\n" +"For brief streaming connections or datagrams, these options may be used " +"to significantly reduce bandwidth.\n" +"See the I2CP options specification for " +"details.\n" +"The session settings may also be overridden on a per-message basis.\n" +"See the I2CP Send Message" +" Expires specification for details." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:345 +msgid "" +"There are many possible areas to tune the Session Key Manager's " +"algorithms;\n" +"some may interact with the streaming library behavior, or have " +"significant\n" +"impact on overall performance." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:352 +msgid "" +"The number of tags delivered could depend on message size, keeping in " +"mind\n" +"the eventual padding to 1KB at the tunnel message layer." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:357 +msgid "" +"Clients could send an estimate of session lifetime to the router, as an " +"advisory\n" +"on the number of tags required." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:362 +msgid "" +"Delivery of too few tags causes the router to fall back to an expensive " +"ElGamal encryption." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:366 +msgid "" +"The router may assume delivery of Session Tags, or await acknowledgement " +"before using them;\n" +"there are tradeoffs for each strategy." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:371 +msgid "" +"For very brief messages, almost the full 222 bytes of the pre-IV and " +"padding fields in the ElGamal block\n" +"could be used for the entire message, instead of establishing a session." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:376 +msgid "" +"Evaluate padding strategy; currently we pad to a minimum of 128 bytes.\n" +"Would be better to add a few tags to small messages than pad." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:381 +msgid "" +"Perhaps things could be more efficient if the Session Tag system was " +"bidirectional,\n" +"so tags delivered in the 'forward' path could be used in the 'reverse' " +"path,\n" +"thus avoiding ElGamal in the initial response.\n" +"The router currently plays some tricks like this when sending\n" +"tunnel test messages to itself." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:389 +#, python-format +msgid "" +"Change from Session Tags to\n" +"a synchronized PRNG." +msgstr "" + +#: i2p2www/pages/site/docs/how/elgamal-aes.html:394 +#, python-format +msgid "" +"Several of these ideas may require a new I2NP message type, or\n" +"set a flag in the\n" +"Delivery" +" Instructions,\n" +"or set a magic number in the first few bytes of the Session Key field\n" +"and accept a small risk of the random Session Key matching the magic " +"number." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:2 +msgid "Garlic Routing" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:3 +msgid "March 2014" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:6 +msgid "Garlic Routing and \"Garlic\" Terminology" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:7 +msgid "" +"The terms \"garlic routing\" and \"garlic encryption\" are often used " +"rather loosely when referring to I2P's technology.\n" +"Here, we explain the history of the terms, the various meanings, and\n" +"the usage of \"garlic\" methods in I2P." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:13 +msgid "" +"\"Garlic routing\" was first coined by\n" +"Michael J. Freedman\n" +"in Roger Dingledine's Free Haven \n" +"Master's thesis " +"Section 8.1.1 (June 2000), as derived from \n" +"Onion Routing." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:21 +msgid "" +"\"Garlic\" may have been used originally by I2P developers because I2P " +"implements a form of\n" +"bundling as Freedman describes, or simply to emphasize general " +"differences from Tor.\n" +"The specific reasoning may be lost to history.\n" +"Generally, when referring to I2P, the term \"garlic\" may mean one of " +"three things:" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:28 +#: i2p2www/pages/site/docs/how/garlic-routing.html:39 +msgid "Layered Encryption" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:29 +msgid "Bundling multiple messages together" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:30 +#: i2p2www/pages/site/docs/how/garlic-routing.html:96 +msgid "ElGamal/AES Encryption" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:33 +msgid "" +"Unfortunately, I2P's usage of \"garlic\" terminology over the past seven " +"years has not always been precise; therefore the reader is\n" +"cautioned when encountering the term.\n" +"Hopefully, the explanation below will make things clear." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:40 +msgid "" +"Onion routing is a technique for building paths, or tunnels, through a " +"series of peers,\n" +"and then using that tunnel.\n" +"Messages are repeatedly encrypted by the originator, and then decrypted " +"by each hop.\n" +"During the building phase, only the routing instructions for the next hop" +" are exposed to each peer.\n" +"During the operating phase, messages are passed through the tunnel, and " +"the\n" +"message and its routing instructions are only exposed to the endpoint of " +"the tunnel." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:49 +#, python-format +msgid "" +"This is similar to the way Mixmaster\n" +"(see network comparisons) sends messages " +"- taking a message, encrypting it\n" +"to the recipient's public key, taking that encrypted message and " +"encrypting\n" +"it (along with instructions specifying the next hop), and then taking " +"that\n" +"resulting encrypted message and so on, until it has one layer of " +"encryption\n" +"per hop along the path." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:58 +msgid "" +"In this sense, \"garlic routing\" as a general concept is identical to " +"\"onion routing\".\n" +"As implemented in I2P, of course, there are several differences from the " +"implementation in Tor; see below.\n" +"Even so, there are substantial similarities such that I2P benefits from a" +"\n" +"large amount of" +" academic research on onion routing,\n" +"Tor, and similar " +"mixnets." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:67 +msgid "Bundling Multiple Messages" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:68 +msgid "" +"Michael Freedman defined \"garlic routing\" as an extension to onion " +"routing,\n" +"in which multiple messages are bundled together.\n" +"He called each message a \"bulb\".\n" +"All the messages, each with its own delivery instructions, are exposed at" +" the\n" +"endpoint.\n" +"This allows the efficient bundling of an onion routing \"reply block\" " +"with the original message." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:77 +msgid "" +"This concept is implemented in I2P, as described below.\n" +"Our term for garlic \"bulbs\" is \"cloves\".\n" +"Any number of messages can be\n" +"contained, instead of just a single message.\n" +"This is a significant distinction from the onion routing implemented in " +"Tor.\n" +"However, it is only one of many major architectural differences between " +"I2P and Tor;\n" +"perhaps it is not, by itself, enough to justify a change in terminology." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:87 +msgid "" +"Another difference\n" +"from the method described by Freedman\n" +"is that the path is unidirectional - there is no \"turning point\" as " +"seen in onion routing\n" +"or mixmaster reply blocks, which greatly simplifies the algorithm and " +"allows for more flexible\n" +"and reliable delivery." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:97 +#, python-format +msgid "" +"In some cases, \"garlic encryption\" may simply mean\n" +"ElGamal/AES+SessionTag encryption\n" +"(without multiple layers)." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:105 +msgid "\"Garlic\" Methods in I2P" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:106 +msgid "" +"Now that we've defined various \"garlic\" terms, we can say that\n" +"I2P uses garlic routing, bundling and encryption in three places:" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:111 +msgid "For building and routing through tunnels (layered encryption)" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:112 +msgid "" +"For determining the success or failure of end to end message delivery " +"(bundling)" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:113 +msgid "" +"For publishing some network database entries (dampening the probability " +"of a successful traffic analysis attack) (ElGamal/AES)" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:116 +msgid "" +"There are also significant ways that this technique can be used to " +"improve the performance of the network, \n" +"exploiting transport latency/throughput tradeoffs, and branching data " +"through redundant paths to increase reliability." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:122 +msgid "Tunnel Building and Routing" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:123 +msgid "" +"In I2P, tunnels are unidirectional. Each party builds two tunnels,\n" +"one for outbound and one for inbound traffic.\n" +"Therefore, four tunnels are required for a single round-trip message and " +"reply." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:129 +#, python-format +msgid "" +"Tunnels are built, and then used, with layered encryption.\n" +"This is described on the\n" +"tunnel implementation page.\n" +"Tunnel building details are defined on\n" +"this page.\n" +"We use\n" +"ElGamal/AES+SessionTag for the encryption." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:141 +#, python-format +msgid "" +"Tunnels are a general-purpose mechanism to transport all\n" +"I2NP messages, and\n" +"Garlic Messages are not used to " +"build tunnels.\n" +"We do not bundle multiple\n" +"I2NP messages into a single\n" +"Garlic Message for unwrapping at " +"the outbound tunnel endpoint;\n" +"the tunnel encryption is sufficient." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:152 +msgid "End-to-End Message Bundling" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:153 +#, python-format +msgid "" +"At the layer above tunnels, I2P delivers end-to-end messages between\n" +"Destinations.\n" +"Just as within a single tunnel, we use\n" +"ElGamal/AES+SessionTag for the encryption." +"\n" +"Each client message as delivered to the router through the\n" +"I2CP interface becomes a single\n" +"Garlic Clove\n" +"with its own\n" +"Delivery " +"Instructions,\n" +"inside a\n" +"Garlic Message.\n" +"Delivery Instructions may specify a Destination, Router, or Tunnel." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:171 +msgid "" +"Generally, a Garlic Message will contain only one clove.\n" +"However, the router will periodically bundle two additional\n" +"cloves in the Garlic Message:" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:176 +msgid "Garlic Message Cloves" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:179 +#, python-format +msgid "" +"A\n" +"Delivery Status Message,\n" +"with\n" +"Delivery " +"Instructions\n" +"specifying that it be sent back to the originating router as an " +"acknowledgment.\n" +"This is similar to the \"reply block\" or \"reply onion\"\n" +"described in the references.\n" +"It is used for determining the success or failure of end to end message " +"delivery.\n" +"The originating router may, upon failure to receive the Delivery Status " +"Message\n" +"within the expected time period, modify the routing to the far-end " +"Destination,\n" +"or take other actions." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:192 +#, python-format +msgid "" +"A\n" +"Database Store Message,\n" +"containing a\n" +"LeaseSet\n" +"for the originating Destination, with\n" +"Delivery " +"Instructions\n" +"specifying the far-end destination's router.\n" +"By periodically bundling a LeaseSet, the router ensures that the far-end " +"will be able\n" +"to maintain communications.\n" +"Otherwise the far-end would have to query a floodfill router for the " +"network database entry,\n" +"and all LeaseSets would have to be published to the network database, as " +"explained on the\n" +"network database page." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:210 +#, python-format +msgid "" +"By default, the Delivery Status and Database Store Messages\n" +"are bundled when the local LeaseSet changes, when additional\n" +"Session Tags\n" +"are delivered, or if the messages have not been bundled in the previous " +"minute.\n" +"As of release 0.9.2, the client may configure the default number of " +"Session Tags to send\n" +"and the low tag threshold for the current session.\n" +"See the I2CP options specification for " +"details.\n" +"The session settings may also be overridden on a per-message basis.\n" +"See the I2CP Send Message" +" Expires specification for details." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:224 +msgid "" +"Obviously, the additional messages are currently bundled for specific " +"purposes,\n" +"and not part of a general-purpose routing scheme." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:229 +msgid "" +"As of release 0.9.12, the Delivery Status Message is wrapped in another " +"Garlic Message\n" +"by the originator so that the contents are encrypted and not visible to " +"routers on the return path." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:235 +msgid "Storage to the Floodfill Network Database" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:236 +#, python-format +msgid "" +"As explained on the\n" +"network database page,\n" +"local\n" +"LeaseSets\n" +"are sent to floodfill routers in a\n" +"Database Store Message\n" +"wrapped in a\n" +"Garlic Message\n" +"so it is not visible to the tunnel's outbound gateway." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:252 +#, python-format +msgid "" +"The Garlic Message mechanism is very flexible and provides a structure " +"for\n" +"implementing many types of mixnet delivery methods.\n" +"Together with the unused delay option in the\n" +"tunnel" +" message Delivery Instructions,\n" +"a wide spectrum of batching, delay, mixing, and routing strategies are " +"possible." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:260 +msgid "" +"In particular, there is potential for much more flexibility at the " +"outbound tunnel endpoint.\n" +"Messages could possibly be routed from there to one of several tunnels\n" +"(thus minimizing point-to-point connections), or multicast to several " +"tunnels\n" +"for redundancy, or streaming audio and video." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:267 +msgid "" +"Such experiments may conflict with the need to ensure security and " +"anonymity, such\n" +"as limiting certain routing paths, restricting the types of I2NP messages" +" that may\n" +"be forwarded along various paths, and enforcing certain message " +"expiration times." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:273 +#, python-format +msgid "" +"As a part of\n" +"ElGamal/AES encryption,\n" +"a garlic message contains a sender\n" +"specified amount of padding data, allowing the sender to take active " +"countermeasures \n" +"against traffic analysis.\n" +"This is not currently used, beyond the requirement to pad to a multiple " +"of 16 bytes." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:282 +#, python-format +msgid "" +"Encryption of additional messages to and from the\n" +"floodfill routers." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:290 +#: i2p2www/pages/site/docs/how/peer-selection.html:296 +msgid "References" +msgstr "Referenca" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:292 +msgid "" +"The term garlic routing was first coined in Roger Dingledine's Free Haven" +" \n" +"Master's thesis " +"(June 2000),\n" +"see Section 8.1.1 authored by\n" +"Michael J. Freedman." +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:299 +msgid "Onion router publications" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:301 +msgid "Onion Routing on Wikipedia" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:303 +msgid "Garlic Routing on Wikipedia" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:305 +#, python-format +msgid "" +"I2P Meeting 58 (2003) discussing the " +"implementation of garlic routing" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:311 +msgid "Free Haven publications" +msgstr "" + +#: i2p2www/pages/site/docs/how/garlic-routing.html:313 +msgid "" +"Onion routing was first described in Hiding Routing Information\n" +"by David M. Goldschlag, Michael G. Reed, and Paul F. Syverson in 1996." +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:2 +msgid "A Gentle Introduction to How I2P Works" +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:4 +msgid "" +"I2P is a project to build, deploy, and maintain a network supporting " +"secure and anonymous\n" +"communication. People using I2P are in control of the tradeoffs between " +"anonymity, reliability,\n" +"bandwidth usage, and latency. There is no central point in the network on" +" which pressure can be\n" +"exerted to compromise the integrity, security, or anonymity of the " +"system. The network supports\n" +"dynamic reconfiguration in response to various attacks, and has been " +"designed to make use of\n" +"additional resources as they become available. Of course, all aspects of " +"the network are open and\n" +"freely available." +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:14 +msgid "" +"Unlike many other anonymizing networks, I2P doesn't try to provide " +"anonymity by hiding the\n" +"originator of some communication and not the recipient, or the other way " +"around. I2P is designed to\n" +"allow peers using I2P to communicate with each other anonymously — " +"both sender and recipient\n" +"are unidentifiable to each other as well as to third parties. For " +"example, today there are both\n" +"in-I2P web sites (allowing anonymous publishing / hosting) as well as " +"HTTP proxies to the normal web\n" +"(allowing anonymous web browsing). Having the ability to run servers " +"within I2P is essential, as it\n" +"is quite likely that any outbound proxies to the normal Internet will be " +"monitored, disabled, or\n" +"even taken over to attempt more malicious attacks." +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:25 +#, python-format +msgid "" +"The network itself is message oriented - it is essentially a secure and " +"anonymous IP layer, where\n" +"messages are addressed to cryptographic keys (Destinations) and can be " +"significantly larger than IP\n" +"packets. Some example uses of the network include \"eepsites\" " +"(webservers hosting normal web\n" +"applications within I2P), a BitTorrent client (\"I2PSnark\"), or a " +"distributed data store. With the\n" +"help of the I2PTunnel application, we are " +"able to stream traditional\n" +"TCP/IP applications over I2P, such as SSH, IRC, a squid proxy, and even " +"streaming audio. Most people\n" +"will not use I2P directly, or even need to know they're using it. Instead" +" their view will be of one\n" +"of the I2P enabled applications, or perhaps as a little controller app to" +" turn on and off various\n" +"proxies to enable the anonymizing functionality." +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:37 +#, python-format +msgid "" +"An essential part of designing, developing, and testing an anonymizing " +"network is to define the threat model, since there is no such thing " +"as \"true\" anonymity, just\n" +"increasingly expensive costs to identify someone. Briefly, I2P's intent " +"is to allow people to\n" +"communicate in arbitrarily hostile environments by providing good " +"anonymity, mixed in with\n" +"sufficient cover traffic provided by the activity of people who require " +"less anonymity. This way,\n" +"some users can avoid detection by a very powerful adversary, while others" +" will try to evade a weaker\n" +"entity, all on the same network, where each one's messages are " +"essentially indistinguishable\n" +"from the others." +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:48 +msgid "Why?" +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:49 +#, python-format +msgid "" +"There are a multitude of reasons why we need a system to support " +"anonymous communication, and\n" +"everyone has their own personal rationale. There are many other\n" +"efforts working on finding ways to provide varying degrees of " +"anonymity to people through the\n" +"Internet, but we could not find any that met our needs or threat model." +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:56 +msgid "How?" +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:58 +#, python-format +msgid "" +"The network at a glance is made up of a set of nodes (\"routers\") with a" +" number of unidirectional\n" +"inbound and outbound virtual paths (\"tunnels\", as outlined on the tunnel routing page). Each router is " +"identified by a cryptographic RouterIdentity which is\n" +"typically long lived. These routers communicate with each other through " +"existing transport\n" +"mechanisms (TCP, UDP, etc), passing various messages. Client applications" +" have their own\n" +"cryptographic identifier (\"Destination\") which enables it to send and " +"receive messages. These\n" +"clients can connect to any router and authorize the temporary allocation " +"(\"lease\") of some tunnels\n" +"that will be used for sending and receiving messages through the network." +" I2P has its own internal\n" +"network database (using a modification of the " +"Kademlia algorithm) for\n" +"distributing routing and contact information securely." +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:71 +msgid "Network topology example" +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:73 +msgid "" +"In the above, Alice, Bob, Charlie, and Dave are all running routers with " +"a single Destination on\n" +"their local router. They each have a pair of 2-hop inbound tunnels per " +"destination (labeled 1, 2, 3,\n" +"4, 5 and 6), and a small subset of each of those router's outbound tunnel" +" pool is shown with 2-hop\n" +"outbound tunnels. For simplicity, Charlie's inbound tunnels and Dave's " +"outbound tunnels are not\n" +"shown, nor are the rest of each router's outbound tunnel pool (typically " +"stocked with a few tunnels\n" +"at a time). When Alice and Bob talk to each other, Alice sends a message " +"out one of her (pink)\n" +"outbound tunnels targeting one of Bob's (green) inbound tunnels (tunnel 3" +" or 4). She knows to send\n" +"to those tunnels on the correct router by querying the network database, " +"which is constantly updated\n" +"as new leases are authorized and old ones expire." +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:85 +#, python-format +msgid "" +"If Bob wants to reply to Alice, he simply goes through the same process -" +" send a message out one of\n" +"his outbound tunnels targeting one of Alice's inbound tunnels (tunnel 1 " +"or 2). To make things\n" +"easier, most messages sent between Alice and Bob are garlic\n" +"wrapped, bundling the sender's own current lease information so that the " +"recipient can reply\n" +"immediately without having to look in the network database for the " +"current data." +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:93 +#, python-format +msgid "" +"To deal with a wide range of attacks, I2P is fully distributed with no " +"centralized resources - and\n" +"hence there are no directory servers keeping statistics regarding the " +"performance and reliability of\n" +"routers within the network. As such, each router must keep and maintain " +"profiles of various routers\n" +"and is responsible for selecting appropriate peers to meet the anonymity," +" performance, and\n" +"reliability needs of the users, as described in the peer selection\n" +"page." +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:102 +#, python-format +msgid "" +"The network itself makes use of a significant number of cryptographic\n" +"techniques and algorithms - a full laundry list includes 2048bit " +"ElGamal encryption, 256bit AES\n" +"in CBC mode with PKCS#5 padding, 1024bit DSA signatures, SHA256 hashes, " +"2048bit Diffie-Hellman\n" +"negotiated connections with station to station authentication, and ElGamal / AES+SessionTag." +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:110 +msgid "" +"Content sent over I2P is encrypted through three layers garlic encryption" +" (used to verify the\n" +"delivery of the message to the recipient), tunnel encryption (all " +"messages passing through a tunnel\n" +"is encrypted by the tunnel gateway to the tunnel endpoint), and inter " +"router transport layer\n" +"encryption (e.g. the TCP transport uses AES256 with ephemeral keys)." +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:117 +msgid "" +"End-to-end (I2CP) encryption (client application to server application) " +"was disabled in I2P release\n" +"0.6; end-to-end (garlic) encryption (I2P client router to I2P server " +"router) from Alice's router \"a\"\n" +"to Bob's router \"h\" remains. Notice the different use of terms! All " +"data from a to h is end-to-end\n" +"encrypted, but the I2CP connection between the I2P router and the " +"applications is not end-to-end\n" +"encrypted! A and h are the routers of Alice and Bob, while Alice and Bob " +"in following chart are the\n" +"applications running atop of I2P." +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:126 +msgid "End to end layered encryption" +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:128 +#, python-format +msgid "" +"The specific use of these algorithms are outlined elsewhere." +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:132 +msgid "" +"The two main mechanisms for allowing people who need strong anonymity to " +"use the network are\n" +"explicitly delayed garlic routed messages and more comprehensive tunnels " +"to include support for\n" +"pooling and mixing messages. These are currently planned for release 3.0," +" but garlic routed messages\n" +"with no delays and FIFO tunnels are currently in place. Additionally, the" +" 2.0 release will allow\n" +"people to set up and operate behind restricted routes (perhaps with " +"trusted peers), as well as the\n" +"deployment of more flexible and anonymous transports." +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:141 +#, python-format +msgid "" +"Some questions have been raised with regards to the scalability of I2P, " +"and reasonably so. There\n" +"will certainly be more analysis over time, but peer lookup and " +"integration should be bounded by\n" +"O(log(N)) due to the network " +"database's algorithm, while end\n" +"to end messages should be O(1) (scale free), since messages " +"go out K hops through the\n" +"outbound tunnel and another K hops through the inbound tunnel, with K no " +"longer than 3. The size of\n" +"the network (N) bears no impact." +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:150 +msgid "When?" +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:151 +#, python-format +msgid "" +"I2P initially began in Feb 2003 as a proposed modification to Freenet to allow it to use " +"alternate transports, such as JMS, then grew into its own as an\n" +"'anonCommFramework' in April 2003, turning into I2P in July, with code " +"being written in earnest\n" +"starting in August '03. I2P is currently under development, following the" +" roadmap." +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:161 +msgid "Who?" +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:162 +#, python-format +msgid "" +"We have a small team spread around several " +"continents, working to advance\n" +"different aspects of the project. We are very open to other developers " +"who want to get involved and\n" +"anyone else who would like to contribute in other ways, such as " +"critiques, peer review, testing,\n" +"writing I2P enabled applications, or documentation. The entire system is " +"open source - the router\n" +"and most of the SDK are outright public domain with some BSD and Cryptix " +"licensed code, while some\n" +"applications like I2PTunnel and I2PSnark are GPL. Almost everything is " +"written in Java (1.5+),\n" +"though some third party applications are being written in Python and " +"other languages. The code works\n" +"on Sun Java SE and other Java Virtual" +" Machines." +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:173 +msgid "Where?" +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:174 +#, python-format +msgid "" +"Anyone interested should join us on the IRC channel #i2p-dev (hosted " +"concurrently on irc.freenode.net,\n" +"irc.postman.i2p, irc.echelon.i2p, irc.dg.i2p and irc.oftc.net). There are" +" currently no\n" +"scheduled development meetings, however archives" +" are available." +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:180 +#, python-format +msgid "The current source is available in monotone." +msgstr "" + +#: i2p2www/pages/site/docs/how/intro.html:185 +#, python-format +msgid "See the Index to Technical Documentation." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:2 +msgid "The Network Database" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:3 +#: i2p2www/pages/site/docs/transport/ntcp.html:3 +#: i2p2www/pages/site/docs/transport/ssu.html:3 +msgid "September 2017" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:8 +msgid "" +"I2P's netDb is a specialized distributed database, containing \n" +"just two types of data - router contact information (RouterInfos) " +"and destination contact\n" +"information (LeaseSets). Each piece of data is signed by the " +"appropriate party and verified\n" +"by anyone who uses or stores it. In addition, the data has liveliness " +"information\n" +"within it, allowing irrelevant entries to be dropped, newer entries to " +"replace\n" +"older ones, and protection against certain classes of attack." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:17 +msgid "" +"The netDb is distributed with a simple technique called \"floodfill\",\n" +"where a subset of all routers, called \"floodfill routers\", maintains " +"the distributed database." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:25 +msgid "" +"When an I2P router wants to contact another router, they need to know " +"some \n" +"key pieces of data - all of which are bundled up and signed by the router" +" into\n" +"a structure called the \"RouterInfo\", which is distributed with the " +"SHA256 of the router's identity\n" +"as the key. The structure itself contains:" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:32 +msgid "" +"The router's identity (a 2048bit ElGamal encryption key, a signing key, " +"and a certificate)" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:33 +msgid "" +"The contact addresses at which it can be reached (e.g. TCP: example.org " +"port 4108)" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:34 +msgid "When this was published" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:35 +msgid "A set of arbitrary text options" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:36 +msgid "The signature of the above, generated by the identity's signing key" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:39 +msgid "Expected Options" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:41 +msgid "" +"The following text options, while not strictly required, are expected\n" +"to be present:" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:47 +msgid "" +"Capabilities flags - used to indicate floodfill participation, " +"approximate bandwidth, and perceived reachability" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:49 +#: i2p2www/pages/site/docs/how/network-database.html:287 +msgid "Floodfill" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:50 +msgid "Hidden" +msgstr "Fshehur" + +#: i2p2www/pages/site/docs/how/network-database.html:51 +#, python-format +msgid "Under %(amount)s shared bandwidth" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:52 +#: i2p2www/pages/site/docs/how/network-database.html:53 +#: i2p2www/pages/site/docs/how/network-database.html:54 +#: i2p2www/pages/site/docs/how/network-database.html:55 +#: i2p2www/pages/site/docs/how/network-database.html:56 +#, python-format +msgid "%(amount)s shared bandwidth" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:52 +msgid "default" +msgstr "parazgjedhje" + +#: i2p2www/pages/site/docs/how/network-database.html:57 +msgid "Reachable" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:58 +msgid "Unreachable" +msgstr "I pakapshëm" + +#: i2p2www/pages/site/docs/how/network-database.html:59 +#, python-format +msgid "Over %(amount)s shared bandwidth" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:66 +msgid "The core library version, always the same as the router version" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:70 +msgid "" +"Basic network compatibility - A router will refuse to communicate with a " +"peer having a different netId" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:73 +msgid "Used to determine compatibility with newer features and messages" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:76 +msgid "" +"Always sent as 90m, for compatibility with an older scheme where routers " +"published their actual uptime,\n" +"and only sent tunnel requests to peers whose uptime was more than 60m" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:82 +msgid "" +"These values are used by other routers for basic decisions.\n" +"Should we connect to this router? Should we attempt to route a tunnel " +"through this router?\n" +"The bandwidth capability flag, in particular, is used only to determine " +"whether\n" +"the router meets a minimum threshold for routing tunnels.\n" +"Above the minimum threshold, the advertised bandwidth is not used or " +"trusted anywhere\n" +"in the router, except for display in the user interface and for debugging" +" and network analysis." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:91 +msgid "Additional Options" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:93 +#, python-format +msgid "" +"Additional text options include\n" +"a small number of statistics about the router's health, which are " +"aggregated by\n" +"sites such as %(stats)s\n" +"for network performance analysis and debugging.\n" +"These statistics were chosen to provide data crucial to the developers,\n" +"such as tunnel build success rates, while balancing the need for such " +"data\n" +"with the side-effects that could result from revealing this data.\n" +"Current statistics are limited to:" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:104 +msgid "Exploratory tunnel build success, reject, and timeout rates" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:105 +msgid "1 hour average number of participating tunnels" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:108 +msgid "" +"Floodfill routers publish additional data on the number of entries in " +"their network database." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:112 +msgid "" +"The data published can be seen in the router's user interface,\n" +"but is not used or trusted within the router.\n" +"As the network has matured, we have gradually removed most of the " +"published\n" +"statistics to improve anonymity, and we plan to remove more in future " +"releases." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:119 +msgid "Family Options" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:121 +msgid "" +"As of release 0.9.24, routers may declare that they are part of a " +"\"family\", operated by the same entity.\n" +"Multiple routers in the same family will not be used in a single tunnel." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:126 +msgid "The family options are:" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:132 +msgid "The family name" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:147 +msgid "RouterInfo Expiration" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:148 +msgid "" +"RouterInfos have no set expiration time.\n" +"Each router is free to maintain its own local policy to trade off the " +"frequency of RouterInfo lookups\n" +"with memory or disk usage.\n" +"In the current implementation, there are the following general policies:" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:155 +msgid "" +"There is no expiration during the first hour of uptime, as the persistent" +" stored data may be old." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:158 +msgid "There is no expiration if there are 25 or less RouterInfos." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:161 +msgid "" +"As the number of local RouterInfos grows, the expiration time shrinks, in" +" an attempt to maintain\n" +"a reasonable number RouterInfos. The expiration time with less than 120 " +"routers is 72 hours,\n" +"while expiration time with 300 routers is around 30 hours." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:166 +#, python-format +msgid "" +"RouterInfos containing SSU introducers expire in " +"about an hour, as\n" +"the introducer list expires in about that time." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:170 +msgid "" +"Floodfills use a short expiration time (1 hour) for all local " +"RouterInfos, as valid RouterInfos will\n" +"be frequently republished to them." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:176 +msgid "RouterInfo Persistent Storage" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:178 +msgid "" +"RouterInfos are periodically written to disk so that they are available " +"after a restart." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:186 +msgid "RouterInfo specification" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:189 +msgid "RouterInfo Javadoc" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:194 +msgid "" +"The second piece of data distributed in the netDb is a \"LeaseSet\" - " +"documenting\n" +"a group of tunnel entry points (leases) for a particular client " +"destination.\n" +"Each of these leases specify the following information:" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:200 +msgid "The tunnel gateway router (by specifying its identity)" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:201 +msgid "The tunnel ID on that router to send messages with (a 4 byte number)" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:202 +msgid "When that tunnel will expire." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:204 +msgid "" +"The LeaseSet itself is stored in the netDb under\n" +"the key derived from the SHA256 of the destination." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:209 +msgid "In addition to these leases, the LeaseSet includes:" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:213 +msgid "" +"The destination itself (a 2048bit ElGamal encryption key, a signing key " +"and a certificate)" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:214 +msgid "" +"Additional encryption public key: used for end-to-end encryption of " +"garlic messages" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:215 +msgid "" +"Additional signing public key: intended for LeaseSet revocation, but is " +"currently unused." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:216 +msgid "" +"Signature of all the LeaseSet data, to make sure the Destination " +"published the LeaseSet." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:220 +msgid "Lease specification" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:222 +msgid "LeaseSet specification" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:225 +msgid "Lease Javadoc" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:227 +msgid "LeaseSet Javadoc" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:231 +msgid "Unpublished LeaseSets" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:232 +msgid "" +"A LeaseSet for a destination used only for outgoing connections is " +"unpublished.\n" +"It is never sent for publication to a floodfill router.\n" +"\"Client\" tunnels, such as those for web browsing and IRC clients, are " +"unpublished.\n" +"Servers will still be able to send messages back to those unpublished " +"destinations,\n" +"because of I2NP storage messages." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:242 +msgid "Revoked LeaseSets" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:243 +msgid "" +"A LeaseSet may be revoked by publishing a new LeaseSet with zero " +"leases.\n" +"Revocations must be signed by the additional signing key in the LeaseSet." +"\n" +"Revocations are not fully implemented, and it is unclear if they have any" +" practical use.\n" +"This is the only planned use for that signing key, so it is currently " +"unused." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:250 +msgid "Encrypted LeaseSets" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:251 +msgid "" +"In an encrypted LeaseSet, all Leases are encrypted with a separate" +" key.\n" +"The leases may only be decoded, and thus the destination may only be " +"contacted,\n" +"by those with the key.\n" +"There is no flag or other direct indication that the LeaseSet is " +"encrypted.\n" +"Encrypted LeaseSets are not widely used, and it is a topic for future " +"work to\n" +"research whether the user interface and implementation of encrypted " +"LeaseSets could be improved." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:260 +msgid "LeaseSet Expiration" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:261 +msgid "" +"All Leases (tunnels) are valid for 10 minutes; therefore, a LeaseSet " +"expires\n" +"10 minutes after the earliest creation time of all its Leases." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:266 +msgid "LeaseSet Persistent Storage" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:267 +msgid "" +"There is no persistent storage of LeaseSet data since they expire so " +"quickly." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:272 +msgid "Bootstrapping" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:273 +msgid "" +"The netDb is decentralized, however you do need at\n" +"least one reference to a peer so that the integration process\n" +"ties you in. This is accomplished by \"reseeding\" your router with the " +"RouterInfo\n" +"of an active peer - specifically, by retrieving their " +"routerInfo-$hash.dat\n" +"file and storing it in your netDb/ directory. Anyone can " +"provide\n" +"you with those files - you can even provide them to others by exposing " +"your own\n" +"netDb directory. To simplify the process,\n" +"volunteers publish their netDb directories (or a subset) on the regular " +"(non-i2p) network,\n" +"and the URLs of these directories are hardcoded in I2P.\n" +"When the router starts up for the first time, it automatically fetches " +"from\n" +"one of these URLs, selected at random." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:288 +msgid "" +"The floodfill netDb is a simple distributed storage mechanism.\n" +"The storage algorithm is simple: send the data to the closest peer that " +"has advertised itself\n" +"as a floodfill router. Then wait 10 seconds, pick another floodfill " +"router and ask them \n" +"for the entry to be sent, verifying its proper insertion / distribution. " +"If the \n" +"verification peer doesn't reply, or they don't have the entry, the sender" +" \n" +"repeats the process. When the peer in the floodfill netDb receives a " +"netDb \n" +"store from a peer not in the floodfill netDb, they send it to a subset of" +" the floodfill netDb-peers.\n" +"The peers selected are the ones closest (according to the XOR-metric) to a specific key." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:299 +msgid "" +"Determining who is part of the floodfill netDb is trivial - it is exposed" +" in each \n" +"router's published routerInfo as a capability." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:304 +msgid "" +"Floodfills have no central authority and do not form a \"consensus\" -\n" +"they only implement a simple DHT overlay." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:311 +msgid "Floodfill Router Opt-in" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:313 +msgid "" +"Unlike Tor, where the directory servers are hardcoded and trusted,\n" +"and operated by known entities,\n" +"the members of the I2P floodfill peer set need not be trusted, and\n" +"change over time." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:320 +msgid "" +"To increase reliability of the netDb, and minimize the impact\n" +"of netDb traffic on a router, floodfill is automatically enabled\n" +"only on routers that are configured with high bandwidth limits.\n" +"Routers with high bandwidth limits (which must be manually configured,\n" +"as the default is much lower) are presumed to be on lower-latency\n" +"connections, and are more likely to be available 24/7.\n" +"The current minimum share bandwidth for a floodfill router is 128 " +"KBytes/sec." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:330 +msgid "" +"In addition, a router must pass several additional tests for health\n" +"(outbound message queue time, job lag, etc.) before floodfill operation " +"is\n" +"automatically enabled." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:336 +msgid "" +"With the current rules for automatic opt-in, approximately 6% of\n" +"the routers in the network are floodfill routers." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:341 +msgid "" +"While some peers are manually configured to be floodfill,\n" +"others are simply high-bandwidth routers who automatically volunteer\n" +"when the number of floodfill peers drops below a threshold.\n" +"This prevents any long-term network damage from losing most or all\n" +"floodfills to an attack.\n" +"In turn, these peers will un-floodfill themselves when there are\n" +"too many floodfills outstanding." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:351 +msgid "Floodfill Router Roles" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:352 +msgid "" +"A floodfill router's only services that are in addition to those of non-" +"floodfill routers\n" +"are in accepting netDb stores and responding to netDb queries.\n" +"Since they are generally high-bandwidth, they are more likely to " +"participate in a high number of tunnels\n" +"(i.e. be a \"relay\" for others), but this is not directly related to " +"their distributed database services." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:360 +msgid "Kademlia Closeness Metric" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:361 +msgid "" +"The netDb uses a simple Kademlia-style XOR metric to determine closeness." +"\n" +"The SHA256 hash of the key being looked up or stored is XOR-ed with\n" +"the hash of the router in question to determine closeness.\n" +"A modification to this algorithm is done to increase the costs of Sybil attacks.\n" +"Instead of the SHA256 hash of the key being looked up of stored, the " +"SHA256 hash is taken\n" +"of the 32-byte binary search key appended with the UTC date represented " +"as an 8-byte ASCII string yyyyMMdd, i.e. SHA256(key + yyyyMMdd).\n" +"This is called the \"routing key\", and it changes every day at midnight " +"UTC.\n" +"Only the search key is modified in this way, not the floodfill router " +"hashes.\n" +"The daily transformation of the DHT is sometimes called \"keyspace " +"rotation\",\n" +"although it isn't strictly a rotation." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:374 +msgid "" +"Routing keys are never sent on-the-wire in any I2NP message, they are " +"only used locally for\n" +"determination of distance." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:381 +msgid "Storage, Verification, and Lookup Mechanics" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:383 +msgid "RouterInfo Storage to Peers" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:384 +#, python-format +msgid "" +"I2NP DatabaseStoreMessages containing the local " +"RouterInfo are exchanged with peers\n" +"as a part of the initialization of a NTCP\n" +"or SSU transport connection." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:391 +msgid "LeaseSet Storage to Peers" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:392 +#, python-format +msgid "" +"I2NP DatabaseStoreMessages containing the local " +"LeaseSet are periodically exchanged with peers\n" +"by bundling them in a garlic message along with normal traffic from the " +"related Destination.\n" +"This allows an initial response, and later responses, to be sent to an " +"appropriate Lease,\n" +"without requiring any LeaseSet lookups, or requiring the communicating " +"Destinations to have published LeaseSets at all." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:400 +msgid "" +"The DatabaseStoreMessage should be sent to the floodfill that is closest\n" +"to the current routing key for the RouterInfo or LeaseSet being stored.\n" +"Currently, the closest floodfill is found by a search in the local " +"database.\n" +"Even if that floodfill is not actually closest, it will flood it " +"\"closer\" by\n" +"sending it to multiple other floodfills.\n" +"This provides a high degree of fault-tolerance." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:409 +msgid "" +"In traditional Kademlia, a peer would do a \"find-closest\" search before" +" inserting\n" +"an item in the DHT to the closest target. As the verify operation will " +"tend to\n" +"discover closer floodfills if they are present, a router will quickly " +"improve\n" +"its knowledge of the DHT \"neighborhood\" for the RouterInfo and " +"LeaseSets it regularly publishes.\n" +"While I2NP does not define a \"find-closest\" message, if it becomes " +"necessary,\n" +"a router may simply do an iterative search for a key with the least " +"significant bit flipped\n" +"(i.e. key ^ 0x01) until no closer peers are received in the " +"DatabaseSearchReplyMessages.\n" +"This ensures that the true closest peer will be found even if a more-" +"distant peer had\n" +"the netdb item." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:422 +msgid "RouterInfo Storage to Floodfills" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:423 +#, python-format +msgid "" +"A router publishes its own RouterInfo by directly connecting to a " +"floodfill router\n" +"and sending it a I2NP DatabaseStoreMessage\n" +"with a nonzero Reply Token. The message is not end-to-end garlic " +"encrypted,\n" +"as this is a direct connection, so there are no intervening routers\n" +"(and no need to hide this data anyway).\n" +"The floodfill router replies with a\n" +"I2NP DeliveryStatusMessage,\n" +"with the Message ID set to the value of the Reply Token." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:437 +msgid "LeaseSet Storage to Floodfills" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:438 +msgid "" +"Storage of LeaseSets is much more sensitive than for RouterInfos, as a " +"router\n" +"must take care that the LeaseSet cannot be associated with the router." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:443 +#, python-format +msgid "" +"A router publishes a local LeaseSet by\n" +"sending a I2NP DatabaseStoreMessage\n" +"with a nonzero Reply Token over an outbound client tunnel for that " +"Destination.\n" +"The message is end-to-end garlic encrypted using the Destination's " +"Session Key Manager,\n" +"to hide the message from the tunnel's outbound endpoint.\n" +"The floodfill router replies with a\n" +"I2NP DeliveryStatusMessage,\n" +"with the Message ID set to the value of the Reply Token.\n" +"This message is sent back to one of the client's inbound tunnels." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:456 +msgid "Flooding" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:457 +#, python-format +msgid "" +"After a floodfill router receives a DatabaseStoreMessage containing a\n" +"valid RouterInfo or LeaseSet which is newer than that previously stored " +"in its\n" +"local NetDb, it \"floods\" it.\n" +"To flood a NetDb entry, it looks up several (currently %(floodsize)s) " +"floodfill routers closest to the routing key\n" +"of the NetDb entry. (The routing key is the SHA256 Hash of the " +"RouterIdentity or Destination with the date (yyyyMMdd) appended.)\n" +"By flooding to those closest to the key, not closest to itself, the " +"floodfill ensures that the storage\n" +"gets to the right place, even if the storing router did not have good " +"knowledge of the\n" +"DHT \"neighborhood\" for the routing key." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:468 +#, python-format +msgid "" +"The floodfill then directly connects to each of those peers\n" +"and sends it a I2NP DatabaseStoreMessage\n" +"with a zero Reply Token. The message is not end-to-end garlic encrypted,\n" +"as this is a direct connection, so there are no intervening routers\n" +"(and no need to hide this data anyway).\n" +"The other routers do not reply or re-flood, as the Reply Token is zero." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:478 +msgid "RouterInfo and LeaseSet Lookup" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:479 +#, python-format +msgid "" +"The I2NP DatabaseLookupMessage is used to " +"request a netdb entry from a floodfill router.\n" +"Lookups are sent out one of the router's outbound exploratory tunnels.\n" +"The replies are specified to return via one of the router's inbound " +"exploratory tunnels." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:485 +msgid "" +"Lookups are generally sent to the two \"good\" (the connection doesn't " +"fail) floodfill routers closest to the requested key, in parallel." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:489 +#, python-format +msgid "" +"If the key is found locally by the floodfill router, it responds with a\n" +"I2NP DatabaseStoreMessage.\n" +"If the key is not found locally by the floodfill router, it responds with" +" a\n" +"I2NP DatabaseSearchReplyMessage\n" +"containing a list of other floodfill routers close to the key." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:497 +msgid "" +"LeaseSet lookups are garlic encrypted end-to-end as of release 0.9.5.\n" +"RouterInfo lookups are not encrypted and thus are vulnerable to snooping " +"by the outbound endpoint\n" +"(OBEP) of the client tunnel. This is due to the expense of the ElGamal " +"encryption.\n" +"RouterInfo lookup encryption may be enabled in a future release." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:504 +msgid "" +"As of release 0.9.7, replies to a LeaseSet lookup (a DatabaseStoreMessage" +" or a DatabaseSearchReplyMessage)\n" +"will be encrypted by including the session key and tag in the lookup.\n" +"This hides the reply from the inbound gateway (IBGW) of the reply tunnel." +"\n" +"Responses to RouterInfo lookups will be encrypted if we enable the lookup" +" encryption." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:511 +#, python-format +msgid "" +"(Reference: Hashing it out in Public Sections " +"2.2-2.3 for terms below in italics)" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:515 +msgid "" +"Due to the relatively small size of the network and the flooding " +"redundancy of 8x,\n" +"lookups are usually O(1) rather than O(log n) --\n" +"a router is highly likely to know a floodfill router close enough to the " +"key to get the answer on the first try.\n" +"In releases prior to 0.8.9, routers used a lookup redundancy of two\n" +"(that is, two lookups were performed in parallel to different peers), and" +"\n" +"neither recursive nor iterative routing for lookups was " +"implemented.\n" +"Queries were sent through multiple routes simultaneously\n" +"to reduce the chance of query failure." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:526 +msgid "" +"As of release 0.8.9, iterative lookups are implemented with no " +"lookup redundancy.\n" +"This is a more efficient and reliable lookup that will work much better\n" +"when not all floodfill peers are known, and it removes a serious\n" +"limitation to network growth. As the network grows and each router knows " +"only a small\n" +"subset of the floodfill peers, lookups will become O(log n).\n" +"Even if the peer does not return references closer to the key, the lookup" +" continues with\n" +"the next-closest peer, for added robustness, and to prevent a malicious " +"floodfill from\n" +"black-holing a part of the key space. Lookups continue until a total " +"lookup timeout is reached,\n" +"or the maximum number of peers is queried." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:538 +msgid "" +"Node IDs are verifiable in that we use the router hash " +"directly as both the node ID and the Kademlia key.\n" +"Incorrect responses that are not closer to the search key are generally " +"ignored.\n" +"Given the current size of the network, a router has\n" +"detailed knowledge of the neighborhood of the destination ID space." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:547 +msgid "RouterInfo Storage Verification" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:548 +#, python-format +msgid "" +"Note: RouterInfo verification is disabled as of release 0.9.7.1 to " +"prevent\n" +"the attack described in the paper\n" +"Practical Attacks Against the I2P Network.\n" +"It is not clear if verification can be redesigned to be done safely." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:555 +msgid "" +"To verify a storage was successful, a router simply waits about 10 " +"seconds,\n" +"then sends a lookup to another floodfill router close to the key\n" +"(but not the one the store was sent to).\n" +"Lookups sent out one of the router's outbound exploratory tunnels.\n" +"Lookups are end-to-end garlic encrypted to prevent snooping by the " +"outbound endpoint(OBEP)." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:563 +msgid "LeaseSet Storage Verification" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:564 +msgid "" +"To verify a storage was successful, a router simply waits about 10 " +"seconds,\n" +"then sends a lookup to another floodfill router close to the key\n" +"(but not the one the store was sent to).\n" +"Lookups sent out one of the outbound client tunnels for the destination " +"of the LeaseSet being verified.\n" +"To prevent snooping by the OBEP of the outbound tunnel,\n" +"lookups are end-to-end garlic encrypted.\n" +"The replies are specified to return via one of the client's inbound " +"tunnels." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:574 +msgid "" +"As of release 0.9.7, replies for both RouterInfo and LeaseSet lookups (a " +"DatabaseStoreMessage or a DatabaseSearchReplyMessage)\n" +"will be encrypted,\n" +"to hide the reply from the inbound gateway (IBGW) of the reply tunnel." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:582 +msgid "Exploration" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:583 +#, python-format +msgid "" +"Exploration is a special form of netdb lookup, where a router " +"attempts to learn about\n" +"new routers.\n" +"It does this by sending a floodfill router a I2NP DatabaseLookupMessage, looking for a random " +"key.\n" +"As this lookup will fail, the floodfill would normally respond with a\n" +"I2NP DatabaseSearchReplyMessage containing " +"hashes of floodfill routers close to the key.\n" +"This would not be helpful, as the requesting router probably already " +"knows those floodfills,\n" +"and it would be impractical to add ALL floodfill routers to the \"don't " +"include\" field of the lookup.\n" +"For an exploration query, the requesting router adds a router hash of all" +" zeros to the\n" +"\"don't include\" field of the DatabaseLookupMessage.\n" +"The floodfill will then respond only with non-floodfill routers close to " +"the requested key." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:597 +msgid "Notes on Lookup Responses" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:598 +msgid "" +"The response to a lookup request is either a Database Store Message (on " +"success) or a\n" +"Database Search Reply Message (on failure). The DSRM contains a 'from' " +"router hash field\n" +"to indicate the source of the reply; the DSM does not.\n" +"The DSRM 'from' field is unauthenticated and may be spoofed or invalid.\n" +"There are no other response tags. Therefore, when making multiple " +"requests in parallel, it is\n" +"difficult to monitor the performance of the various floodfill routers." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:608 +msgid "MultiHoming" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:610 +msgid "" +"Destinations may be hosted on multiple routers simultaneously, by using " +"the same\n" +"private and public keys (traditionally stored in eepPriv.dat files).\n" +"As both instances will periodically publish their signed LeaseSets to the" +" floodfill peers,\n" +"the most recently published LeaseSet will be returned to a peer " +"requesting a database lookup.\n" +"As LeaseSets have (at most) a 10 minute lifetime, should a particular " +"instance go down,\n" +"the outage will be 10 minutes at most, and generally much less than that." +"\n" +"The multihoming function has been verified and is in use by several " +"services on the network." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:620 +msgid "Threat Analysis" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:621 +#, python-format +msgid "" +"Also discussed on the threat model " +"page." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:625 +msgid "" +"A hostile user may attempt to harm the network by\n" +"creating one or more floodfill routers and crafting them to offer\n" +"bad, slow, or no responses.\n" +"Some scenarios are discussed below." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:632 +msgid "General Mitigation Through Growth" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:633 +#, python-format +msgid "" +"There are currently around %(ffcount)s floodfill routers in the network.\n" +"Most of the following attacks will become more difficult, or have less " +"impact,\n" +"as the network size and number of floodfill routers increase." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:640 +msgid "General Mitigation Through Redundancy" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:641 +#, python-format +msgid "" +"Via flooding, all netdb entries are stored on the %(floodsize)s floodfill" +" routers closest to the key." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:646 +msgid "Forgeries" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:647 +msgid "" +"All netdb entries are signed by their creators, so no router may forge a\n" +"RouterInfo or LeaseSet." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:652 +msgid "Slow or Unresponsive" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:653 +#, python-format +msgid "" +"Each router maintains an expanded set of statistics in the\n" +"peer profile for each floodfill router," +"\n" +"covering various quality metrics for that peer.\n" +"The set includes:" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:660 +msgid "Average response time" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:661 +msgid "Percentage of queries answered with the data requested" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:662 +msgid "Percentage of stores that were successfully verified" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:663 +msgid "Last successful store" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:664 +msgid "Last successful lookup" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:665 +msgid "Last response" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:668 +msgid "" +"Each time a router needs to make a determination on which floodfill " +"router is closest to a key,\n" +"it uses these metrics to determine which floodfill routers are \"good\".\n" +"The methods, and thresholds, used to determine \"goodness\" are " +"relatively new, and\n" +"are subject to further analysis and improvement.\n" +"While a completely unresponsive router will quickly be identified and " +"avoided,\n" +"routers that are only sometimes malicious may be much harder to deal with." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:678 +msgid "Sybil Attack (Full Keyspace)" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:679 +#, python-format +msgid "" +"An attacker may mount a Sybil attack\n" +"by creating a large number of floodfill routers spread throughout the " +"keyspace." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:684 +#, python-format +msgid "" +"(In a related example, a researcher recently created a\n" +"large number of Tor relays.)\n" +"If successful, this could be an effective DOS attack on the entire " +"network." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:690 +msgid "" +"If the floodfills are not sufficiently misbehaving to be marked as " +"\"bad\" using the peer profile\n" +"metrics described above, this is a difficult scenario to handle.\n" +"Tor's response can be much more nimble in the relay case, as the " +"suspicious relays\n" +"can be manually removed from the consensus.\n" +"Some possible responses for the I2P network are listed below, however " +"none of them is completely satisfactory:" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:698 +msgid "" +"Compile a list of bad router hashes or IPs, and announce the list through" +" various means\n" +"(console news, website, forum, etc.); users would have to manually " +"download the list and\n" +"add it to their local \"blacklist\"." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:703 +msgid "" +"Ask everyone in the network to enable floodfill manually (fight Sybil " +"with more Sybil)" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:704 +msgid "Release a new software version that includes the hardcoded \"bad\" list" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:705 +msgid "" +"Release a new software version that improves the peer profile metrics and" +" thresholds,\n" +"in an attempt to automatically identify the \"bad\" peers." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:709 +msgid "" +"Add software that disqualifies floodfills if too many of them are in a " +"single IP block" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:710 +msgid "" +"Implement an automatic subscription-based blacklist controlled by a " +"single individual or group.\n" +"This would essentially implement a portion of the Tor \"consensus\" " +"model.\n" +"Unfortunately it would also give a single individual or group the power " +"to\n" +"block participation of any particular router or IP in the network,\n" +"or even to completely shutdown or destroy the entire network." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:719 +msgid "This attack becomes more difficult as the network size grows." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:725 +msgid "Sybil Attack (Partial Keyspace)" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:726 +#, python-format +msgid "" +"An attacker may mount a Sybil attack\n" +"by creating a small number (8-15) of floodfill routers clustered closely " +"in the keyspace,\n" +"and distribute the RouterInfos for these routers widely.\n" +"Then, all lookups and stores for a key in that keyspace would be directed" +"\n" +"to one of the attacker's routers.\n" +"If successful, this could be an effective DOS attack on a particular " +"eepsite, for example." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:735 +msgid "" +"As the keyspace is indexed by the cryptographic (SHA256) Hash of the key," +"\n" +"an attacker must use a brute-force method to repeatedly generate router " +"hashes\n" +"until he has enough that are sufficiently close to the key.\n" +"The amount of computational power required for this, which is dependent " +"on network\n" +"size, is unknown." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:743 +msgid "" +"As a partial defense against this attack,\n" +"the algorithm used to determine Kademlia \"closeness\" varies over time.\n" +"Rather than using the Hash of the key (i.e. H(k)) to determine closeness," +"\n" +"we use the Hash of the key appended with the current date string, i.e. " +"H(k + YYYYMMDD).\n" +"A function called the \"routing key generator\" does this, which " +"transforms the original key into a \"routing key\".\n" +"In other words, the entire netdb keyspace \"rotates\" every day at UTC " +"midnight.\n" +"Any partial-keyspace attack would have to be regenerated every day, for\n" +"after the rotation, the attacking routers would no longer be close\n" +"to the target key, or to each other." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:755 +msgid "" +"This attack becomes more difficult as the network size grows.\n" +"However, recent research demonstrates that the keyspace rotation is not " +"particularly effective.\n" +"An attacker can precompute numerous router hashes in advance,\n" +"and only a few routers are sufficient to \"eclipse\" a portion\n" +"of the keyspace within a half hour after rotation." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:763 +msgid "" +"One consequence of daily keyspace rotation is that the distributed " +"network database\n" +"may become unreliable for a few minutes after the rotation --\n" +"lookups will fail because the new \"closest\" router has not received a " +"store yet.\n" +"The extent of the issue, and methods for mitigation\n" +"(for example netdb \"handoffs\" at midnight)\n" +"are a topic for further study." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:773 +msgid "Bootstrap Attacks" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:774 +msgid "" +"An attacker could attempt to boot new routers into an isolated\n" +"or majority-controlled network by taking over a reseed website,\n" +"or tricking the developers into adding his reseed website\n" +"to the hardcoded list in the router." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:781 +msgid "Several defenses are possible, and most of these are planned:" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:785 +msgid "" +"Disallow fallback from HTTPS to HTTP for reseeding.\n" +"A MITM attacker could simply block HTTPS, then respond to the HTTP." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:789 +msgid "Bundling reseed data in the installer" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:792 +msgid "Defenses that are implemented:" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:796 +msgid "" +"Changing the reseed task to fetch a subset of RouterInfos from\n" +"each of several reseed sites rather than using only a single site" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:800 +msgid "" +"Creating an out-of-network reseed monitoring service that\n" +"periodically polls reseed websites and verifies that the\n" +"data are not stale or inconsistent with other views of the network" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:805 +msgid "" +"As of release 0.9.14, reseed data is bundled into a signed zip file and\n" +"the signature is verified when downloaded." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:813 +msgid "Query Capture" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:814 +#, python-format +msgid "" +"See also lookup\n" +"(Reference: Hashing it out in Public Sections " +"2.2-2.3 for terms below in italics)" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:819 +msgid "" +"Similar to a bootstrap attack, an attacker using a floodfill router could" +" attempt to \"steer\"\n" +"peers to a subset of routers controlled by him by returning their " +"references." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:824 +msgid "" +"This is unlikely to work via exploration, because exploration is a low-" +"frequency task.\n" +"Routers acquire a majority of their peer references through normal tunnel" +" building activity.\n" +"Exploration results are generally limited to a few router hashes,\n" +"and each exploration query is directed to a random floodfill router." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:831 +#, python-format +msgid "" +"As of release 0.8.9, iterative lookups are implemented.\n" +"For floodfill router references returned in a\n" +"I2NP DatabaseSearchReplyMessage\n" +"response to a lookup,\n" +"these references are followed if they are closer (or the next closest) to" +" the lookup key.\n" +"The requesting router does not trust that the references are\n" +"closer to the key (i.e. they are verifiably correct.\n" +"The lookup also does not stop when no closer key is found, but continues " +"by querying the\n" +"next-closet node, until the timeout or maximum number of queries is " +"reached.\n" +"This prevents a malicious floodfill from black-holing a part of the key " +"space.\n" +"Also, the daily keyspace rotation requires an attacker to regenerate a " +"router info\n" +"within the desired key space region.\n" +"This design ensures that the query capture attack described in\n" +"Hashing it out in Public\n" +"is much more difficult." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:850 +msgid "DHT-Based Relay Selection" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:851 +#, python-format +msgid "(Reference: Hashing it out in Public Section 3)" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:855 +#, python-format +msgid "" +"This doesn't have much to do with floodfill, but see\n" +"the peer selection page\n" +"for a discussion of the vulnerabilities of peer selection for tunnels." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:861 +msgid "Information Leaks" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:862 +#, python-format +msgid "" +"(Reference: In Search of an Anonymous and Secure " +"Lookup Section 3)" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:866 +#, python-format +msgid "" +"This paper addresses weaknesses in the \"Finger Table\" DHT lookups used " +"by Torsk and NISAN.\n" +"At first glance, these do not appear to apply to I2P. First, the use of " +"DHT by Torsk and NISAN\n" +"is significantly different from that in I2P. Second, I2P's network " +"database lookups are only\n" +"loosely correlated to the peer " +"selection and\n" +"tunnel building processes; only " +"previously-known peers\n" +"are used for tunnels.\n" +"Also, peer selection is unrelated to any notion of DHT key-closeness." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:877 +msgid "" +"Some of this may actually be more interesting when the I2P network gets " +"much larger.\n" +"Right now, each router knows a large proportion of the network, so " +"looking up a particular\n" +"Router Info in the network database is not strongly indicative of a " +"future intent to use\n" +"that router in a tunnel. Perhaps when the network is 100 times larger, " +"the lookup may be\n" +"more correlative. Of course, a larger network makes a Sybil attack that " +"much harder." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:885 +#, python-format +msgid "" +"However, the general issue of DHT information leakage in I2P needs " +"further investigation.\n" +"The floodfill routers are in a position to observe queries and gather " +"information.\n" +"Certainly, at a level of f = 0.2 (20% malicious nodes, as " +"specifed in the paper)\n" +"we expect that many of the Sybil threats we describe\n" +"(here,\n" +"here and\n" +"here)\n" +"become problematic for several reasons." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:899 +msgid "Moved to the netdb discussion page" +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:903 +msgid "End-to-end encryption of additional netDb lookups and responses." +msgstr "" + +#: i2p2www/pages/site/docs/how/network-database.html:907 +msgid "Better methods for tracking lookup responses." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:2 +msgid "Peer Profiling and Selection" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:3 +msgid "July 2010" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:8 +msgid "Peer Profiling" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:10 +#, python-format +msgid "" +"Peer profiling is the process of collecting data based on the " +"observed performance\n" +"of other routers or peers, and classifying those peers into groups.\n" +"Profiling does not use any claimed performance data published by " +"the peer itself\n" +"in the network database." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:17 +msgid "Profiles are used for two purposes:" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:19 +msgid "Selecting peers to relay our traffic through, which is discussed below" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:20 +#, python-format +msgid "" +"Choosing peers from the set of floodfill routers to use for network " +"database storage and queries,\n" +"which is discussed on the network database page" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:27 +#: i2p2www/pages/site/docs/how/peer-selection.html:187 +#: i2p2www/pages/site/docs/tunnels/implementation.html:289 +msgid "Peer Selection" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:28 +msgid "" +"Peer selection is the process of choosing which routers\n" +"on the network we want to relay our messages to go through (which peers " +"will we \n" +"ask to join our tunnels). To accomplish this, we keep track of how each\n" +"peer performs (the peer's \"profile\") and use that data to estimate how" +" \n" +"fast they are, how often they will be able to accept our requests, and \n" +"whether they seem to be overloaded or otherwise unable to perform what\n" +"they agree to reliably." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:38 +#, python-format +msgid "" +"Unlike some other anonymous networks, in I2P,\n" +"claimed bandwidth is untrusted and is only used to avoid those " +"peers\n" +"advertising very low bandwidth insufficient for routing tunnels.\n" +"All peer selection is done through profiling.\n" +"This prevents simple attacks based on peers claiming high bandwidth\n" +"in order to capture large numbers of tunnels.\n" +"It also makes\n" +"timing attacks\n" +"more difficult." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:50 +msgid "" +"Peer selection is done quite frequently, as a router may maintain a large" +" number\n" +"of client and exploratory tunnels, and a tunnel lifetime is only 10 " +"minutes." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:56 +msgid "Further Information" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:57 +#, python-format +msgid "" +"For more information see the paper\n" +"Peer Profiling and Selection in the I2P Anonymous " +"Network\n" +"presented at PET-CON 2009.1.\n" +"See below for notes on minor changes since the " +"paper was published." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:65 +msgid "Profiles" +msgstr "Profile" + +#: i2p2www/pages/site/docs/how/peer-selection.html:66 +#, python-format +msgid "" +"Each peer has a set of data points collected about them, including " +"statistics \n" +"about how long it takes for them to reply to a network database query, " +"how \n" +"often their tunnels fail, and how many new peers they are able to " +"introduce \n" +"us to, as well as simple data points such as when we last heard from them" +" or\n" +"when the last communication error occurred. The specific data points " +"gathered\n" +"can be found in the code." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:75 +msgid "" +"Profiles are fairly small, a few KB. To control memory usage, the profile" +" expiration time\n" +"lessens as the number of profiles grows.\n" +"Profiles are kept in memory until router shutdown, when they are written " +"to disk.\n" +"At startup, the profiles are read so the router need not reinitialize all" +" profiles,\n" +"thus allowing a router to quickly re-integrate into the network after " +"startup." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:85 +msgid "Peer Summaries" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:86 +msgid "" +"While the profiles themselves can be considered a summary of a peer's \n" +"performance, to allow for effective peer selection we break each summary " +"down \n" +"into four simple values, representing the peer's speed, its capacity, how" +" well \n" +"integrated into the network it is, and whether it is failing." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:93 +msgid "Speed" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:94 +msgid "" +"The speed calculation\n" +"simply goes through the profile and estimates how much data we can\n" +"send or receive on a single tunnel through the peer in a minute. For " +"this estimate it just looks at\n" +"performance in the previous minute." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:101 +msgid "Capacity" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:102 +msgid "" +"The capacity calculation\n" +"simply goes through the profile and estimates how many tunnels the peer\n" +"would agree to participate in over a given time period. For this " +"estimate it looks at \n" +"how many tunnel build requests\n" +"the peer has accepted, rejected, and dropped, and how many\n" +"of the agreed-to tunnels later failed.\n" +"While the calculation is time-weighted so that recent activity counts " +"more than later activity,\n" +"statistics up to 48 hours old may be included." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:113 +msgid "" +"Recognizing and avoiding unreliable and unreachable\n" +"peers is critically important.\n" +"Unfortunately, as the tunnel building and testing require the " +"participation of several peers,\n" +"it is difficult to positively identify the cause of a dropped build " +"request or test failure.\n" +"The router assigns a probability of failure to each of the\n" +"peers, and uses that probability in the capacity calculation.\n" +"Drops and test failures are weighted much higher than rejections." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:123 +msgid "Peer organization" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:124 +msgid "" +"As mentioned above, we drill through each peer's profile to come up with " +"a \n" +"few key calculations, and based upon those, we organize each peer into " +"three\n" +"groups - fast, high capacity, and standard." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:130 +msgid "The groupings are not mutually exclusive, nor are they unrelated:" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:134 +msgid "" +"A peer is considered \"high capacity\" if its capacity calculation meets " +"or \n" +"exceeds the median of all peers." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:138 +msgid "" +"A peer is considered \"fast\" if they are already \"high capacity\" and " +"their \n" +"speed calculation meets or exceeds the median of all peers." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:142 +msgid "A peer is considered \"standard\" if it is not \"high capacity\"" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:145 +#, python-format +msgid "" +"These groupings are implemented in the router's\n" +"ProfileOrganizer." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:150 +msgid "Group size limits" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:151 +msgid "The size of the groups may be limited." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:156 +msgid "" +"The fast group is limited to 30 peers.\n" +"If there would be more, only the ones with the highest speed rating are " +"placed in the group." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:160 +msgid "" +"The high capacity group is limited to 75 peers (including the fast group)" +"\n" +"If there would be more, only the ones with the highest capacity rating " +"are placed in the group." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:164 +msgid "" +"The standard group has no fixed limit, but is somewhat smaller than the " +"number of RouterInfos\n" +"stored in the local network database.\n" +"On an active router in today's network, there may be about 1000 " +"RouterInfos and 500 peer profiles\n" +"(including those in the fast and high capacity groups)" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:172 +msgid "Recalculation and Stability" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:173 +msgid "" +"Summaries are recalculated, and peers are resorted into groups, every 45 " +"seconds." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:177 +msgid "" +"The groups tend to be fairly stable, that is, there is not much \"churn\"" +" in the rankings\n" +"at each recalculation.\n" +"Peers in the fast and high capacity groups get more tunnels build through" +" them, which increases their speed and capacity ratings,\n" +"which reinforces their presence in the group." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:188 +msgid "The router selects peers from the above groups to build tunnels through." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:193 +msgid "Peer Selection for Client Tunnels" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:194 +msgid "" +"Client tunnels are used for application traffic, such as for HTTP proxies" +" and web servers." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:198 +msgid "" +"To reduce the susceptibility to some attacks,\n" +"and increase performance,\n" +"peers for building client tunnels are chosen randomly from the smallest " +"group, which is the \"fast\" group.\n" +"There is no bias toward selecting peers that were previously participants" +" in a tunnel for the same client." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:206 +msgid "Peer Selection for Exploratory Tunnels" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:207 +msgid "" +"Exploratory tunnels are used for router administrative purposes, such as " +"network database traffic\n" +"and testing client tunnels.\n" +"Exploratory tunnels are also used to contact previously unconnected " +"routers, which is why\n" +"they are called \"exploratory\".\n" +"These tunnels are usually low-bandwidth." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:215 +msgid "" +"Peers for building exploratory tunnels are generally chosen randomly from" +" the standard group.\n" +"If the success rate of these build attempts is low compared to the client" +" tunnel build success rate,\n" +"the router will select a weighted average of peers randomly from the high" +" capacity group instead.\n" +"This helps maintain a satisfactory build success rate even when network " +"performance is poor.\n" +"There is no bias toward selecting peers that were previously participants" +" in an exploratory tunnel." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:223 +msgid "" +"As the standard group includes a very large subset of all peers the " +"router knows about,\n" +"exploratory tunnels are essentially built through a random selection of " +"all peers,\n" +"until the build success rate becomes too low." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:231 +msgid "Restrictions" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:232 +msgid "" +"To prevent some simple attacks, and for performance, there are the " +"following restrictions:" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:236 +msgid "Two peers from the same /16 IP space may not be in the same tunnel." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:239 +msgid "" +"A peer may participate in a maximum of 33% of all tunnels created by " +"the router." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:242 +msgid "Peers with extremely low bandwidth are not used." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:245 +msgid "Peers for which a recent connection attempt failed are not used." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:252 +msgid "Peer Ordering in Tunnels" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:253 +#, python-format +msgid "" +"Peers are ordered within tunnels to\n" +"to deal with the predecessor attack\n" +"(2008 update).\n" +"More information is on the tunnel " +"page." +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:268 +msgid "Continue to analyze an tune speed and capacity calculations as necessary" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:271 +msgid "" +"Implement a more aggressive ejection strategy if necessary to control " +"memory usage as the network grows" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:274 +msgid "Evaluate group size limits" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:277 +msgid "Use GeoIP data to include or exclude certain peers, if configured" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:283 +#, python-format +msgid "" +"For those reading the paper\n" +"Peer Profiling and Selection in the I2P Anonymous " +"Network,\n" +"please keep in mind the following minor changes in I2P since the paper's " +"publication:" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:289 +msgid "The Integration calculation is still not used" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:290 +msgid "In the paper, \"groups\" are called \"tiers\"" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:291 +msgid "The \"Failing\" tier is no longer used" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:292 +msgid "The \"Not Failing\" tier is now named \"Standard\"" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:301 +msgid "One Cell Enough" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:303 +msgid "Tor Entry Guards" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:305 +msgid "Murdoch 2007 Paper" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:307 +msgid "Tune-up for Tor" +msgstr "" + +#: i2p2www/pages/site/docs/how/peer-selection.html:309 +msgid "Low-resource Routing Attacks Against Tor" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:2 +msgid "I2P: A scalable framework for anonymous communication" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:5 +#: i2p2www/pages/site/docs/how/tech-intro.html:20 +#: i2p2www/pages/site/docs/transport/ssu.html:338 +msgid "Introduction" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:7 +msgid "I2P Operation" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:12 +#: i2p2www/pages/site/docs/how/tech-intro.html:397 +msgid "Transport protocols" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:13 +#: i2p2www/pages/site/docs/how/tech-intro.html:454 +msgid "Cryptography" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:21 +msgid "" +"I2P is a scalable, self organizing, resilient packet switched anonymous \n" +"network layer, upon which any number of different anonymity or security " +"conscious \n" +"applications can operate. Each of these applications may make their own " +"anonymity, \n" +"latency, and throughput tradeoffs without worrying about the proper " +"implementation \n" +"of a free route mixnet, allowing them to blend their activity with the " +"larger \n" +"anonymity set of users already running on top of I2P." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:30 +msgid "" +"Applications available already provide the full range of typical Internet" +" activities -\n" +"anonymous web browsing, web hosting, chat, file sharing, e-mail,\n" +"blogging and content syndication, newsgroups, as well as several other " +"applications under development." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:36 +msgid "Web browsing: using any existing browser that supports using a proxy." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:37 +msgid "Chat: IRC, Jabber, I2P-Messenger." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:38 +msgid "" +"File sharing: I2PSnark, Robert, iMule, \n" +"I2Phex, PyBit, I2P-bt\n" +"and others." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:43 +msgid "" +"E-mail: susimail and I2P-Bote." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:44 +msgid "" +"Blog: using e.g. the pebble plugin or the distributed blogging software " +"Syndie." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:45 +msgid "" +"Distributed Data Store: Save your data redundantly in the Tahoe-LAFS " +"cloud over I2P." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:46 +msgid "Newsgroups: using any newsgroup reader that supports using a proxy." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:49 +msgid "" +"Unlike web sites hosted within content distribution networks like Freenet \n" +"or GNUnet, the services " +"hosted on \n" +"I2P are fully interactive - there are traditional web-style search " +"engines, \n" +"bulletin boards, blogs you can comment on, database driven sites, and " +"bridges \n" +"to query static systems like Freenet without needing to install it " +"locally." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:57 +msgid "" +"With all of these anonymity enabled applications, I2P takes on the role \n" +"of the message oriented middleware - applications say that they want to " +"send \n" +"some data to a cryptographic identifier (a \"destination\") and I2P takes" +" care \n" +"of making sure it gets there securely and anonymously. I2P also bundles a" +" \n" +"simple streaming library to allow I2P's " +"anonymous \n" +"best-effort messages to transfer as reliable, in-order streams, " +"transparently \n" +"offering a TCP based congestion control algorithm tuned for the high " +"bandwidth \n" +"delay product of the network. While there have been several simple SOCKS " +"proxies \n" +"available to tie existing applications into the network, their value has " +"been \n" +"limited as nearly every application routinely exposes what, in an " +"anonymous \n" +"context, is sensitive information. The only safe way to go is to fully " +"audit \n" +"an application to ensure proper operation and to assist in that we " +"provide \n" +"a series of APIs in various languages which can be used to make the most " +"out \n" +"of the network." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:74 +#, python-format +msgid "" +"I2P is not a research project - academic, commercial, or governmental, " +"but \n" +"is instead an engineering effort aimed at doing whatever is necessary to " +"provide \n" +"a sufficient level of anonymity to those who need it. It has been in " +"active \n" +"development since early 2003 with one full time developer and a dedicated" +" \n" +"group of part time contributors from all over the world. All of the work " +"done \n" +"on I2P is open source and freely available on the website, \n" +"with the majority of the code released outright into the public domain, " +"though \n" +"making use of a few cryptographic routines under BSD-style licenses. The " +"people \n" +"working on I2P do not control what people release client applications " +"under, \n" +"and there are several GPL'ed applications available (I2PTunnel, \n" +"susimail, I2PSnark, I2P-" +"Bote, \n" +"I2Phex and others.).\n" +"Funding for I2P comes entirely from " +"donations,\n" +"and does not receive any tax breaks in any jurisdiction at this time,\n" +"as many of the developers are themselves anonymous." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:92 +msgid "Operation" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:94 +msgid "" +"To understand I2P's operation, it is essential to understand a few key " +"concepts. \n" +"First, I2P makes a strict separation between the software participating " +"in \n" +"the network (a \"router\") and the anonymous endpoints (\"destinations\")" +" associated \n" +"with individual applications. The fact that someone is running I2P is not" +" \n" +"usually a secret. What is hidden is information on what the user is " +"doing, \n" +"if anything at all, as well as what router a particular destination is " +"connected \n" +"to. End users will typically have several local destinations on their " +"router \n" +"- for instance, one proxying in to IRC servers, another supporting the " +"user's \n" +"anonymous webserver (\"eepsite\"), another for an I2Phex instance, " +"another for \n" +"torrents, etc." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:107 +msgid "" +"Another critical concept to understand is the \"tunnel\".\n" +"A tunnel is a directed path through an explicitly selected list of " +"routers.\n" +"Layered encryption is used, so each of the routers can only decrypt a " +"single layer.\n" +"The decrypted information contains the IP of the next router, along with\n" +"the encrypted information to be forwarded.\n" +"Each tunnel has a starting point (the first router, also known as " +"\"gateway\")\n" +"and an end point. Messages can be sent only in one way. To send messages " +"back,\n" +"another tunnel is required." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:118 +#: i2p2www/pages/site/docs/tunnels/implementation.html:105 +msgid "Inbound and outbound tunnel schematic" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:120 +msgid "Figure 1: Two types of tunnels exist: inbound and outbound." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:123 +msgid "" +"Two types of tunnels exist:\n" +"\"outbound\" tunnels send messages away from the tunnel creator,\n" +"while \"inbound\" tunnels bring messages to the tunnel creator.\n" +"Combining these two tunnels allows users to send messages to each other.\n" +"The sender (\"Alice\" in the above image) sets up an outbound tunnel,\n" +"while the receiver (\"Bob\" in the above image) creates an inbound " +"tunnel.\n" +"The gateway of an inbound tunnel can receive messages from any other user" +"\n" +"and will send them on until the endpoint (\"Bob\").\n" +"The endpoint of the outbound tunnel will need to send the message\n" +"on to the gateway of the inbound tunnel.\n" +"To do this, the sender (\"Alice\") adds instructions to her encrypted " +"message.\n" +"Once the endpoint of the outbound tunnel decrypts the message,\n" +"it will have instructions to forward the message to the correct\n" +"inbound gateway (the gateway to \"Bob\")." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:140 +msgid "" +"A third critical concept to understand is I2P's \"network " +"database\" (or \"netDb\") \n" +"- a pair of algorithms used to share network metadata. The two types of " +"metadata \n" +"carried are \"routerInfo\" and \"leaseSets\" - the " +"routerInfo gives routers the \n" +"data necessary for contacting a particular router (their public keys, " +"transport \n" +"addresses, etc), while the leaseSet gives routers the information " +"necessary \n" +"for contacting a particular destination. A leaseSet contains a number of " +"\"leases\".\n" +"Each of this leases specifies a tunnel gateway, which allows reaching a " +"specific destination.\n" +"The full information contained in a lease:" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:151 +msgid "Inbound gateway for a tunnel that allows reaching a specific destination." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:152 +msgid "Time when a tunnel expires." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:153 +msgid "" +"Pair of public keys to be able to encrypt messages (to send through the " +"tunnel and reach the destination)." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:155 +msgid "" +"Routers themselves send their routerInfo to the netDb directly, while " +"leaseSets are sent through outbound tunnels\n" +"(leaseSets need to be sent anonymously, to avoid correlating a router " +"with his leaseSets)." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:160 +msgid "" +"We can combine the above concepts to build successful connections in the " +"network." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:164 +msgid "" +"To build up her own inbound and outbound tunnels, Alice does a lookup in " +"the netDb to collect routerInfo.\n" +"This way, she gathers lists of peers she can use as hops in her tunnels.\n" +"She can then send a build message to the first hop, requesting the " +"construction of a tunnel and asking\n" +"that router to send the construction message onward, until the tunnel has" +" been constructed." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:171 +msgid "Request information on other routers" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:173 +msgid "Build tunnel using router information" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:175 +msgid "Figure 2: Router information is used to build tunnels." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:178 +msgid "" +"When Alice wants to send a message to Bob, she first does a lookup in the" +" \n" +"netDb to find Bob's leaseSet, giving her his current inbound tunnel " +"gateways. \n" +"She then picks one of her outbound tunnels and sends the message down it " +"with \n" +"instructions for the outbound tunnel's endpoint to forward the message on" +" \n" +"to one of Bob's inbound tunnel gateways. When the outbound tunnel " +"endpoint \n" +"receives those instructions, it forwards the message as requested, and " +"when \n" +"Bob's inbound tunnel gateway receives it, it is forwarded down the tunnel" +" \n" +"to Bob's router. If Alice wants Bob to be able to reply to the message, " +"she \n" +"needs to transmit her own destination explicitly as part of the message " +"itself.\n" +"This can be done by introducing a higher-level layer, which is done in " +"the\n" +"streaming library.\n" +"Alice may also cut down on the response time by bundling her most \n" +"recent LeaseSet with the message so that Bob doesn't need to do a netDb " +"lookup \n" +"for it when he wants to reply, but this is optional." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:195 +msgid "Connect tunnels using LeaseSets" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:195 +msgid "Connect tunnels using leaseSets" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:197 +msgid "Figure 3: LeaseSets are used to connect outbound and inbound tunnels." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:200 +msgid "" +"While the tunnels themselves have layered encryption to prevent " +"unauthorized \n" +"disclosure to peers inside the network (as the transport layer itself " +"does \n" +"to prevent unauthorized disclosure to peers outside the network), it is " +"necessary \n" +"to add an additional end to end layer of encryption to hide the message " +"from \n" +"the outbound tunnel endpoint and the inbound tunnel gateway. This \"garlic \n" +"encryption\" lets Alice's router wrap up multiple messages into a " +"single \n" +"\"garlic message\", encrypted to a particular public key so that " +"intermediary \n" +"peers cannot determine either how many messages are within the garlic, " +"what \n" +"those messages say, or where those individual cloves are destined. For " +"typical \n" +"end to end communication between Alice and Bob, the garlic will be " +"encrypted \n" +"to the public key published in Bob's leaseSet, allowing the message to be" +" \n" +"encrypted without giving out the public key to Bob's own router." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:215 +msgid "" +"Another important fact to keep in mind is that I2P is entirely message " +"based \n" +"and that some messages may be lost along the way. Applications using I2P " +"can \n" +"use the message oriented interfaces and take care of their own congestion" +" \n" +"control and reliability needs, but most would be best served by reusing " +"the \n" +"provided streaming library to view I2P as " +"a streams \n" +"based network." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:225 +msgid "" +"Both inbound and outbound tunnels work along similar principles.\n" +"The tunnel gateway accumulates a number of tunnel messages, eventually " +"preprocessing \n" +"them into something for tunnel delivery. Next, the gateway encrypts that " +"preprocessed \n" +"data and forwards it to the first hop. That peer and subsequent tunnel " +"participants \n" +"add on a layer of encryption after verifying that it isn't a duplicate " +"before \n" +"forward it on to the next peer. Eventually, the message arrives at the " +"endpoint \n" +"where the messages are split out again and forwarded on as requested. The" +" \n" +"difference arises in what the tunnel's creator does - for inbound " +"tunnels, \n" +"the creator is the endpoint and they simply decrypt all of the layers " +"added, \n" +"while for outbound tunnels, the creator is the gateway and they pre-" +"decrypt \n" +"all of the layers so that after all of the layers of per-hop encryption " +"are \n" +"added, the message arrives in the clear at the tunnel endpoint." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:240 +msgid "" +"The choice of specific peers to pass on messages as well as their " +"particular \n" +"ordering is important to understanding both I2P's anonymity and " +"performance \n" +"characteristics. While the network database (below) has its own criteria " +"for \n" +"picking what peers to query and store entries on, tunnel creators may use" +" any peers \n" +"in the network in any order (and even any number of times) in a single " +"tunnel. \n" +"If perfect latency and capacity data were globally known, selection and " +"ordering \n" +"would be driven by the particular needs of the client in tandem with " +"their \n" +"threat model. Unfortunately, latency and capacity data is not trivial to " +"gather \n" +"anonymously, and depending upon untrusted peers to provide this " +"information \n" +"has its own serious anonymity implications." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:253 +msgid "" +"From an anonymity perspective, the simplest technique would be to pick " +"peers \n" +"randomly from the entire network, order them randomly and use those peers" +" \n" +"in that order for all eternity. From a performance perspective, the " +"simplest \n" +"technique would be to pick the fastest peers with the necessary spare " +"capacity, \n" +"spreading the load across different peers to handle transparent failover," +" \n" +"and to rebuild the tunnel whenever capacity information changes. While " +"the \n" +"former is both brittle and inefficient, the later requires inaccessible " +"information \n" +"and offers insufficient anonymity. I2P is instead working on offering a " +"range \n" +"of peer selection strategies, coupled with anonymity aware measurement " +"code \n" +"to organize the peers by their profiles." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:266 +msgid "" +"As a base, I2P is constantly profiling the peers with which it interacts" +" \n" +"with by measuring their indirect behavior - for instance, when a peer " +"responds \n" +"to a netDb lookup in 1.3 seconds, that round trip latency is recorded in " +"the \n" +"profiles for all of the routers involved in the two tunnels (inbound and " +"outbound) \n" +"through which the request and response passed, as well as the queried " +"peer's \n" +"profile. Direct measurement, such as transport layer latency or " +"congestion, \n" +"is not used as part of the profile, as it can be manipulated and " +"associated \n" +"with the measuring router, exposing them to trivial attacks. While " +"gathering \n" +"these profiles, a series of calculations are run on each to summarize its" +" \n" +"performance - its latency, capacity to handle lots of activity, whether " +"they \n" +"are currently overloaded, and how well integrated into the network they " +"seem \n" +"to be. These calculations are then compared for active peers to organize " +"the \n" +"routers into four tiers - fast and high capacity, high capacity, not " +"failing, \n" +"and failing. The thresholds for those tiers are determined dynamically, " +"and \n" +"while they currently use fairly simple algorithms, alternatives exist." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:284 +msgid "" +"Using this profile data, the simplest reasonable peer selection strategy" +" \n" +"is to pick peers randomly from the top tier (fast and high capacity), and" +" \n" +"this is currently deployed for client tunnels. Exploratory tunnels (used " +"for \n" +"netDb and tunnel management) pick peers randomly from the \"not failing\"" +" tier \n" +"(which includes routers in 'better' tiers as well), allowing the peer to " +"sample \n" +"routers more widely, in effect optimizing the peer selection through " +"randomized \n" +"hill climbing. These strategies alone do however leak information " +"regarding \n" +"the peers in the router's top tier through predecessor and netDb " +"harvesting \n" +"attacks. In turn, several alternatives exist which, while not balancing " +"the \n" +"load as evenly, will address the attacks mounted by particular classes of" +" \n" +"adversaries." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:298 +msgid "" +"By picking a random key and ordering the peers according to their XOR " +"distance \n" +"from it, the information leaked is reduced in predecessor and harvesting " +"attacks \n" +"according to the peers' failure rate and the tier's churn. Another simple" +" \n" +"strategy for dealing with netDb harvesting attacks is to simply fix the " +"inbound \n" +"tunnel gateway(s) yet randomize the peers further on in the tunnels. To " +"deal \n" +"with predecessor attacks for adversaries which the client contacts, the " +"outbound \n" +"tunnel endpoints would also remain fixed. The selection of which peer to " +"fix \n" +"on the most exposed point would of course need to have a limit to the " +"duration, \n" +"as all peers fail eventually, so it could either be reactively adjusted " +"or \n" +"proactively avoided to mimic a measured mean time between failures of " +"other \n" +"routers. These two strategies can in turn be combined, using a fixed " +"exposed \n" +"peer and an XOR based ordering within the tunnels themselves. A more " +"rigid \n" +"strategy would fix the exact peers and ordering of a potential tunnel, " +"only \n" +"using individual peers if all of them agree to participate in the same " +"way \n" +"each time. This varies from the XOR based ordering in that the " +"predecessor \n" +"and successor of each peer is always the same, while the XOR only makes " +"sure \n" +"their order doesn't change." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:318 +#, python-format +msgid "" +"As mentioned before, I2P currently (release 0.8) includes the tiered \n" +"random strategy above, with XOR-based ordering. A \n" +"more detailed discussion of the mechanics involved in tunnel operation, " +"management, \n" +"and peer selection can be found in the tunnel " +"spec." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:326 +#, python-format +msgid "" +"As mentioned earlier, I2P's netDb works to share the network's metadata.\n" +"This is detailed in the network database page,\n" +"but a basic explanation is available below." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:332 +msgid "" +"A percentage of I2P users are appointed as 'floodfill peers'.\n" +"Currently, I2P installations that have a lot of bandwidth and are fast " +"enough,\n" +"will appoint themselves as floodfill as soon as the number of existing " +"floodfill routers\n" +"drops too low." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:339 +#, python-format +msgid "" +"Other I2P routers will store their data and lookup data by sending simple" +" 'store' and 'lookup' queries to the floodfills.\n" +"If a floodfill router receives a 'store' query, it will spread the " +"information to other floodfill routers\n" +"using the Kademlia " +"algorithm.\n" +"The 'lookup' queries currently function differently, to avoid an " +"important\n" +"security issue.\n" +"When a lookup is done, the floodfill router will not forward the lookup " +"to other peers,\n" +"but will always answer by itself (if it has the requested data)." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:349 +msgid "Two types of information are stored in the network database." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:353 +msgid "" +"A RouterInfo stores information on a specific I2P router and how " +"to contact it" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:354 +msgid "" +"A LeaseSet stores information on a specific destination (e.g. I2P " +"website, e-mail server...)" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:356 +msgid "" +"All of this information is signed by the publishing party and verified by" +" any I2P router using or storing the information.\n" +"In addition, the data contains timing information, to avoid storage of " +"old entries and possible attacks.\n" +"This is also why I2P bundles the necessary code for maintaining the " +"correct time, occasionally querying some SNTP servers \n" +"(the pool.ntp.org round robin by" +" default)\n" +"and detecting skew between routers at the transport layer." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:364 +msgid "Some additional remarks are also important." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:369 +msgid "Unpublished and encrypted leasesets:" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:370 +msgid "" +"One could only want specific people to be able to reach a destination.\n" +"This is possible by not publishing the destination in the netDb. You will" +" however have to transmit the destination by other means.\n" +"An alternative are the 'encrypted leaseSets'. These leaseSets can only be" +" decoded by people with access to the decryption key." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:377 +msgid "Bootstrapping:" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:378 +msgid "" +"Bootstrapping the netDb is quite simple. Once a router manages to receive" +" a single routerInfo of a reachable peer,\n" +"it can query that router for references to other routers in the network.\n" +"Currently, a number of users post their routerInfo files to a website to " +"make this information available.\n" +"I2P automatically connects to one of these websites to gather routerInfo " +"files and bootstrap." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:386 +msgid "Lookup scalability:" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:387 +msgid "" +"Lookups in the I2P network are not forwarded to other netDb routers.\n" +"Currently, this is not a major problem, since the network is not very " +"large.\n" +"However, as the network grows, not all routerInfo and leaseSet files will" +" be present\n" +"on each netDb router. This will cause a deterioration of the percentage " +"of successful lookups.\n" +"Because of this, refinements to the netDb will be done in the next " +"releases." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:398 +msgid "" +"Communication between routers needs to provide confidentiality and " +"integrity \n" +"against external adversaries while authenticating that the router " +"contacted \n" +"is the one who should receive a given message. The particulars of how " +"routers \n" +"communicate with other routers aren't critical - three separate protocols" +" \n" +"have been used at different points to provide those bare necessities." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:406 +#, python-format +msgid "" +"I2P started with a TCP-based protocol which \n" +"has since been disabled. Then, to accommodate the need for high degree " +"communication \n" +"(as a number of routers will end up speaking with many others), I2P moved" +" \n" +"from a TCP based transport to a UDP-based one - " +"\"Secure \n" +"Semireliable UDP\", or \"SSU\"." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:414 +#, python-format +msgid "As described in the SSU spec:" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:418 +msgid "" +"The goal of this protocol is to provide secure, authenticated, \n" +"semireliable and unordered message delivery, exposing only a minimal " +"amount \n" +"of data easily discernible to third parties. It should support high " +"degree \n" +"communication as well as TCP-friendly congestion control and may include" +" \n" +"PMTU detection. It should be capable of efficiently moving bulk data at " +"rates \n" +"sufficient for home users. In addition, it should support techniques for " +"addressing \n" +"network obstacles, like most NATs or firewalls." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:428 +#, python-format +msgid "" +"Following the introduction of SSU, after issues with congestion collapse" +" \n" +"appeared, a new NIO-based TCP transport called NTCP \n" +"was implemented. It is enabled by default for outbound connections only. " +"Those \n" +"who configure their NAT/firewall to allow inbound connections and specify" +" \n" +"the external host and port (dyndns/etc is ok) on /config.jsp can receive " +"inbound \n" +"connections. As NTCP is NIO based, so it doesn't suffer from the 1 thread" +" \n" +"per connection issues of the old TCP transport." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:438 +msgid "" +"I2P supports multiple transports simultaneously. A particular transport \n" +"for an outbound connection is selected with \"bids\". Each transport bids" +" for \n" +"the connection and the relative value of these bids assigns the priority." +" \n" +"Transports may reply with different bids, depending on whether there is " +"already \n" +"an established connection to the peer." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:446 +#, python-format +msgid "" +"The current implementation ranks NTCP as the highest-priority transport \n" +"for outbound connections in most situations. SSU is enabled for both " +"outbound \n" +"and inbound connections. Your firewall and your I2P router must be " +"configured \n" +"to allow inbound NTCP connections. For further information see the NTCP \n" +"page." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:455 +msgid "" +"A bare minimum set of cryptographic primitives are combined together to \n" +"provide I2P's layered defenses against a variety of adversaries. At the " +"lowest \n" +"level, inter router communication is protected by the transport layer " +"security \n" +"- SSU encrypts each packet with AES256/CBC with both an explicit IV and " +"MAC \n" +"(HMAC-MD5-128) after agreeing upon an ephemeral session key through a " +"2048bit \n" +"Diffie-Hellman exchange, station-to-station authentication with the other" +" \n" +"router's DSA key, plus each network message has their own hash for local " +"integrity \n" +"checking. Tunnel messages passed over the " +"transports \n" +"have their own layered AES256/CBC encryption with an explicit IV and " +"verified \n" +"at the tunnel endpoint with an additional SHA256 hash. Various other " +"messages \n" +"are passed along inside \"garlic messages\", which are encrypted with " +"ElGamal/AES+SessionTags \n" +"(explained below)." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:470 +msgid "Garlic messages" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:471 +msgid "" +"Garlic messages are an extension of \"onion\" layered encryption, " +"allowing \n" +"the contents of a single message to contain multiple \"cloves\" - fully " +"formed \n" +"messages alongside their own instructions for delivery. Messages are " +"wrapped \n" +"into a garlic message whenever the message would otherwise be passing in " +"cleartext \n" +"through a peer who should not have access to the information - for " +"instance, \n" +"when a router wants to ask another router to participate in a tunnel, " +"they \n" +"wrap the request inside a garlic, encrypt that garlic to the receiving " +"router's \n" +"2048bit ElGamal public key, and forward it through a tunnel. Another " +"example \n" +"is when a client wants to send a message to a destination - the sender's " +"router \n" +"will wrap up that data message (alongside some other messages) into a " +"garlic, \n" +"encrypt that garlic to the 2048bit ElGamal public key published in the " +"recipient's \n" +"leaseSet, and forward it through the appropriate tunnels." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:486 +msgid "" +"The \"instructions\" attached to each clove inside the encryption layer " +"includes \n" +"the ability to request that the clove be forwarded locally, to a remote " +"router, \n" +"or to a remote tunnel on a remote router. There are fields in those " +"instructions \n" +"allowing a peer to request that the delivery be delayed until a certain " +"time \n" +"or condition has been met, though they won't be honored until the nontrivial \n" +"delays are deployed. It is possible to explicitly route garlic " +"messages \n" +"any number of hops without building tunnels, or even to reroute tunnel " +"messages \n" +"by wrapping them in garlic messages and forwarding them a number of hops " +"prior \n" +"to delivering them to the next hop in the tunnel, but those techniques " +"are \n" +"not currently used in the existing implementation." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:499 +msgid "Session tags" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:500 +msgid "" +"As an unreliable, unordered, message based system, I2P uses a simple " +"combination \n" +"of asymmetric and symmetric encryption algorithms to provide data " +"confidentiality \n" +"and integrity to garlic messages. As a whole, the combination is referred" +" \n" +"to as ElGamal/AES+SessionTags, but that is an excessively verbose way to " +"describe \n" +"the simple use of 2048bit ElGamal, AES256, SHA256 and 32 byte nonces." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:539 +msgid "" +"Session tags themselves have a very short lifetime, after which they are" +" \n" +"discarded if not used. In addition, the quantity stored for each key is " +"limited, \n" +"as are the number of keys themselves - if too many arrive, either new or " +"old \n" +"messages may be dropped. The sender keeps track whether messages using " +"session \n" +"tags are getting through, and if there isn't sufficient communication it " +"may \n" +"drop the ones previously assumed to be properly delivered, reverting back" +" \n" +"to the full expensive ElGamal encryption." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:549 +msgid "" +"One alternative is to transmit only a single session tag, and from that," +" \n" +"seed a deterministic PRNG for determining what tags to use or expect. By " +"keeping \n" +"this PRNG roughly synchronized between the sender and recipient (the " +"recipient \n" +"precomputes a window of the next e.g. 50 tags), the overhead of " +"periodically \n" +"bundling a large number of tags is removed, allowing more options in the " +"space/time \n" +"tradeoff, and perhaps reducing the number of ElGamal encryptions " +"necessary. \n" +"However, it would depend upon the strength of the PRNG to provide the " +"necessary \n" +"cover against internal adversaries, though perhaps by limiting the amount" +" \n" +"of times each PRNG is used, any weaknesses can be minimized. At the " +"moment, \n" +"there are no immediate plans to move towards these synchronized PRNGs." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:562 +msgid "Future" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:563 +msgid "" +"While I2P is currently functional and sufficient for many scenarios, " +"there \n" +"are several areas which require further improvement to meet the needs of " +"those \n" +"facing more powerful adversaries as well as substantial user experience " +"optimization." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:569 +msgid "Restricted route operation" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:570 +msgid "" +"I2P is an overlay network designed to be run on top of a functional " +"packet \n" +"switched network, exploiting the end to end principle to offer anonymity " +"and \n" +"security. While the Internet no longer fully embraces the end to end " +"principle\n" +"(due to the usage of NAT), \n" +"I2P does require a substantial portion of the network to be reachable - " +"there \n" +"may be a number of peers along the edges running using restricted routes," +" \n" +"but I2P does not include an appropriate routing algorithm for the " +"degenerate \n" +"case where most peers are unreachable. It would, however work on top of a" +" \n" +"network employing such an algorithm." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:582 +msgid "" +"Restricted route operation, where there are limits to what peers are " +"reachable \n" +"directly, has several different functional and anonymity implications, " +"dependent \n" +"upon how the restricted routes are handled. At the most basic level, " +"restricted \n" +"routes exist when a peer is behind a NAT or firewall which does not allow" +" \n" +"inbound connections. This was largely addressed in I2P 0.6.0.6 by " +"integrating \n" +"distributed hole punching into the transport layer, allowing people " +"behind \n" +"most NATs and firewalls to receive unsolicited connections without any " +"configuration. \n" +"However, this does not limit the exposure of the peer's IP address to " +"routers \n" +"inside the network, as they can simply get introduced to the peer through" +" \n" +"the published introducer." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:595 +msgid "" +"Beyond the functional handling of restricted routes, there are two levels" +" \n" +"of restricted operation that can be used to limit the exposure of one's " +"IP \n" +"address - using router-specific tunnels for communication, and offering " +"'client \n" +"routers'. For the former, routers can either build a new pool of tunnels " +"or \n" +"reuse their exploratory pool, publishing the inbound gateways to some of " +"them \n" +"as part of their routerInfo in place of their transport addresses. When a" +" \n" +"peer wants to get in touch with them, they see those tunnel gateways in " +"the \n" +"netDb and simply send the relevant message to them through one of the " +"published \n" +"tunnels. If the peer behind the restricted route wants to reply, it may " +"do \n" +"so either directly (if they are willing to expose their IP to the peer) " +"or \n" +"indirectly through their outbound tunnels. When the routers that the peer" +" \n" +"has direct connections to want to reach it (to forward tunnel messages, " +"for \n" +"instance), they simply prioritize their direct connection over the " +"published \n" +"tunnel gateway. The concept of 'client routers' simply extends the " +"restricted \n" +"route by not publishing any router addresses. Such a router would not " +"even \n" +"need to publish their routerInfo in the netDb, merely providing their " +"self \n" +"signed routerInfo to the peers that it contacts (necessary to pass the " +"router's \n" +"public keys). Both levels of restricted route operation are planned for " +"I2P \n" +"2.0." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:617 +msgid "" +"There are tradeoffs for those behind restricted routes, as they would " +"likely \n" +"participate in other people's tunnels less frequently, and the routers " +"which \n" +"they are connected to would be able to infer traffic patterns that would " +"not \n" +"otherwise be exposed. On the other hand, if the cost of that exposure is " +"less \n" +"than the cost of an IP being made available, it may be worthwhile. This, " +"of \n" +"course, assumes that the peers that the router behind a restricted route " +"contacts \n" +"are not hostile - either the network is large enough that the probability" +" \n" +"of using a hostile peer to get connected is small enough, or trusted (and" +" \n" +"perhaps temporary) peers are used instead." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:629 +msgid "Variable latency" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:630 +msgid "" +"Even though the bulk of I2P's initial efforts have been on low latency " +"communication, \n" +"it was designed with variable latency services in mind from the " +"beginning. \n" +"At the most basic level, applications running on top of I2P can offer the" +" \n" +"anonymity of medium and high latency communication while still blending " +"their \n" +"traffic patterns in with low latency traffic. Internally though, I2P can " +"offer \n" +"its own medium and high latency communication through the garlic " +"encryption \n" +"- specifying that the message should be sent after a certain delay, at a " +"certain \n" +"time, after a certain number of messages have passed, or another mix " +"strategy. \n" +"With the layered encryption, only the router that the clove exposed the " +"delay \n" +"request would know that the message requires high latency, allowing the " +"traffic \n" +"to blend in further with the low latency traffic. Once the transmission " +"precondition \n" +"is met, the router holding on to the clove (which itself would likely be " +"a \n" +"garlic message) simply forwards it as requested - to a router, to a " +"tunnel, \n" +"or, most likely, to a remote client destination." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:647 +msgid "" +"There are a substantial number of ways to exploit this capacity for high" +" \n" +"latency comm in I2P, but for the moment, doing so has been scheduled for " +"the \n" +"I2P 3.0 release. In the meantime, those requiring the anonymity that high" +" \n" +"latency comm can offer should look towards the application layer to " +"provide \n" +"it." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:655 +msgid "Open questions" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:657 +msgid "How to get rid of the timing constraint?" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:658 +msgid "Can we deal with the sessionTags more efficiently?" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:659 +msgid "" +"What, if any, batching/mixing strategies should be made available on the " +"tunnels?" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:660 +msgid "" +"What other tunnel peer selection and ordering strategies should be " +"available?" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:663 +msgid "Similar systems" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:665 +msgid "" +"I2P's architecture builds on the concepts of message oriented middleware," +" \n" +"the topology of DHTs, the anonymity and cryptography of free route " +"mixnets, \n" +"and the adaptability of packet switched networking. The value comes not " +"from \n" +"novel concepts of algorithms though, but from careful engineering " +"combining \n" +"the research results of existing systems and papers. While there are a " +"few \n" +"similar efforts worth reviewing, both for technical and functional " +"comparisons, \n" +"two in particular are pulled out here - Tor and Freenet." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:675 +#, python-format +msgid "See also the Network Comparisons Page." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:680 +#: i2p2www/pages/site/docs/how/tech-intro.html:745 +msgid "website" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:682 +msgid "" +"At first glance, Tor and I2P have many functional and anonymity related \n" +"similarities. While I2P's development began before we were aware of the " +"early \n" +"stage efforts on Tor, many of the lessons of the original onion routing " +"and \n" +"ZKS efforts were integrated into I2P's design. Rather than building an " +"essentially \n" +"trusted, centralized system with directory servers, I2P has a self " +"organizing \n" +"network database with each peer taking on the responsibility of profiling" +" \n" +"other routers to determine how best to exploit available resources. " +"Another \n" +"key difference is that while both I2P and Tor use layered and ordered " +"paths \n" +"(tunnels and circuits/streams), I2P is fundamentally a packet switched " +"network, \n" +"while Tor is fundamentally a circuit switched one, allowing I2P to " +"transparently \n" +"route around congestion or other network failures, operate redundant " +"pathways, \n" +"and load balance the data across available resources. While Tor offers " +"the \n" +"useful outproxy functionality by offering integrated outproxy discovery " +"and \n" +"selection, I2P leaves such application layer decisions up to applications" +" \n" +"running on top of I2P - in fact, I2P has even externalized the TCP-like " +"streaming \n" +"library itself to the application layer, allowing developers to " +"experiment \n" +"with different strategies, exploiting their domain specific knowledge to " +"offer \n" +"better performance." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:703 +msgid "" +"From an anonymity perspective, there is much similarity when the core " +"networks \n" +"are compared. However, there are a few key differences. When dealing with" +" \n" +"an internal adversary or most external adversaries, I2P's simplex tunnels" +" \n" +"expose half as much traffic data than would be exposed with Tor's duplex " +"circuits \n" +"by simply looking at the flows themselves - an HTTP request and response " +"would \n" +"follow the same path in Tor, while in I2P the packets making up the " +"request \n" +"would go out through one or more outbound tunnels and the packets making " +"up \n" +"the response would come back through one or more different inbound " +"tunnels. \n" +"While I2P's peer selection and ordering strategies should sufficiently " +"address \n" +"predecessor attacks, should a switch to bidirectional tunnels be " +"necessary,\n" +"we could simply build an inbound and outbound tunnel along the same " +"routers." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:717 +msgid "" +"Another anonymity issue comes up in Tor's use of telescopic tunnel " +"creation, \n" +"as simple packet counting and timing measurements as the cells in a " +"circuit \n" +"pass through an adversary's node exposes statistical information " +"regarding \n" +"where the adversary is within the circuit. I2P's unidirectional tunnel " +"creation \n" +"with a single message so that this data is not exposed. Protecting the " +"position \n" +"in a tunnel is important, as an adversary would otherwise be able to " +"mount \n" +"a series of powerful predecessor, intersection, and traffic confirmation " +"attacks." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:727 +msgid "" +"Tor's support for a second tier of \"onion proxies\" does offer a non-" +"trivial \n" +"degree of anonymity while requiring a low cost of entry, while I2P will " +"not \n" +"offer this topology until 2.0." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:733 +msgid "" +"On the whole, Tor and I2P complement each other in their focus - Tor " +"works \n" +"towards offering high speed anonymous Internet outproxying, while I2P " +"works \n" +"towards offering a decentralized resilient network in itself. In theory, " +"both \n" +"can be used to achieve both purposes, but given limited development " +"resources, \n" +"they both have their strengths and weaknesses. The I2P developers have " +"considered \n" +"the steps necessary to modify Tor to take advantage of I2P's design, but " +"concerns \n" +"of Tor's viability under resource scarcity suggest that I2P's packet " +"switching \n" +"architecture will be able to exploit scarce resources more effectively." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:747 +msgid "" +"Freenet played a large part in the initial stages of I2P's design - " +"giving \n" +"proof to the viability of a vibrant pseudonymous community completely " +"contained \n" +"within the network, demonstrating that the dangers inherent in outproxies" +" \n" +"could be avoided. The first seed of I2P began as a replacement " +"communication \n" +"layer for Freenet, attempting to factor out the complexities of a " +"scalable, \n" +"anonymous and secure point to point communication from the complexities " +"of \n" +"a censorship resistant distributed data store. Over time however, some of" +" \n" +"the anonymity and scalability issues inherent in Freenet's algorithms " +"made \n" +"it clear that I2P's focus should stay strictly on providing a generic " +"anonymous \n" +"communication layer, rather than as a component of Freenet. Over the " +"years, \n" +"the Freenet developers have come to see the weaknesses in the older " +"design, \n" +"prompting them to suggest that they will require a \"premix\" layer to " +"offer \n" +"substantial anonymity. In other words, Freenet needs to run on top of a " +"mixnet \n" +"such as I2P or Tor, with \"client nodes\" requesting and publishing data " +"through \n" +"the mixnet to the \"server nodes\" which then fetch and store the data " +"according \n" +"to Freenet's heuristic distributed data storage algorithms." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:766 +msgid "" +"Freenet's functionality is very complementary to I2P's, as Freenet " +"natively \n" +"provides many of the tools for operating medium and high latency systems," +" \n" +"while I2P natively provides the low latency mix network suitable for " +"offering \n" +"adequate anonymity. The logic of separating the mixnet from the " +"censorship-\n" +"resistant distributed data store still seems self-evident from an " +"engineering, \n" +"anonymity, security, and resource allocation perspective, so hopefully " +"the \n" +"Freenet team will pursue efforts in that direction, if not simply reusing" +" \n" +"(or helping to improve, as necessary) existing mixnets like I2P or Tor." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:777 +msgid "" +"It is worth mentioning that there has recently been discussion and work \n" +"by the Freenet developers on a \"globally scalable darknet\" using " +"restricted \n" +"routes between peers of various trust. While insufficient information has" +" \n" +"been made publicly available regarding how such a system would operate " +"for \n" +"a full review, from what has been said the anonymity and scalability " +"claims \n" +"seem highly dubious. In particular, the appropriateness for use in " +"hostile \n" +"regimes against state level adversaries has been tremendously overstated," +" \n" +"and any analysis on the implications of resource scarcity upon the " +"scalability \n" +"of the network has seemingly been avoided. Further questions regarding " +"susceptibility \n" +"to traffic analysis, trust and other topics do exist, but a more in-depth" +" \n" +"review of this \"globally scalable darknet\" will have to wait until the " +"Freenet \n" +"team makes more information available." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:793 +msgid "" +"I2P itself doesn't really do much - it simply sends messages to remote " +"destinations \n" +"and receives messages targeting local destinations - most of the " +"interesting \n" +"work goes on at the layers above it. By itself, I2P could be seen as an " +"anonymous \n" +"and secure IP layer, and the bundled streaming" +" library \n" +"as an implementation of an anonymous and secure TCP layer on top of it. " +"Beyond \n" +"that, I2PTunnel exposes a generic TCP " +"proxying \n" +"system for either getting into or out of the I2P network, plus a variety " +"of \n" +"network applications provide further functionality for end users." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:804 +msgid "Streaming library" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:805 +msgid "" +"The I2P streaming library can be viewed as a generic streaming interface " +"(mirroring TCP sockets),\n" +"and the implementation supports a sliding " +"window protocol\n" +"with several optimizations, to take into account the high delay over I2P." +"\n" +"Individual streams may adjust the maximum packet size and \n" +"other options, though the default of 4KB compressed seems a reasonable " +"tradeoff \n" +"between the bandwidth costs of retransmitting lost messages and the " +"latency \n" +"of multiple messages." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:815 +msgid "" +"In addition, in consideration of the relatively high cost of subsequent \n" +"messages, the streaming library's protocol for scheduling and delivering " +"messages \n" +"has been optimized to allow individual messages passed to contain as much" +" \n" +"information as is available. For instance, a small HTTP transaction " +"proxied \n" +"through the streaming library can be completed in a single round trip - " +"the \n" +"first message bundles a SYN, FIN and the small payload (an HTTP request " +"typically \n" +"fits) and the reply bundles the SYN, FIN, ACK and the small payload (many" +" \n" +"HTTP responses fit). While an additional ACK must be transmitted to tell " +"the \n" +"HTTP server that the SYN/FIN/ACK has been received, the local HTTP proxy " +"can \n" +"deliver the full response to the browser immediately." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:828 +msgid "" +"On the whole, however, the streaming library bears much resemblance to an" +" \n" +"abstraction of TCP, with its sliding windows, congestion control " +"algorithms \n" +"(both slow start and congestion avoidance), and general packet behavior " +"(ACK, \n" +"SYN, FIN, RST, etc)." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:835 +msgid "Naming library and addressbook" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:836 +#, python-format +msgid "" +"For more information see the Naming and " +"Addressbook page." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:840 +#: i2p2www/pages/site/docs/how/tech-intro.html:914 +#: i2p2www/pages/site/docs/how/tech-intro.html:961 +#: i2p2www/pages/site/docs/how/tech-intro.html:993 +#: i2p2www/pages/site/docs/how/tech-intro.html:1001 +#: i2p2www/pages/site/docs/how/tech-intro.html:1009 +#: i2p2www/pages/site/docs/how/tech-intro.html:1019 +#: i2p2www/pages/site/docs/how/tech-intro.html:1027 +#: i2p2www/pages/site/docs/how/tech-intro.html:1049 +#, python-format +msgid "Developed by: %(dev)s" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:842 +msgid "" +"Naming within I2P has been an oft-debated topic since the very beginning" +" \n" +"with advocates across the spectrum of possibilities. However, given I2P's" +" \n" +"inherent demand for secure communication and decentralized operation, the" +" \n" +"traditional DNS-style naming system is clearly out, as are \"majority " +"rules\" \n" +"voting systems. Instead, I2P ships with a generic naming library and a " +"base \n" +"implementation designed to work off a local name to destination mapping, " +"as \n" +"well as an optional add-on application called the \"addressbook\". The " +"addressbook \n" +"is a web-of-trust-driven secure, distributed, and human readable naming " +"system, \n" +"sacrificing only the call for all human readable names to be globally " +"unique \n" +"by mandating only local uniqueness. While all messages in I2P are " +"cryptographically \n" +"addressed by their destination, different people can have local " +"addressbook \n" +"entries for \"Alice\" which refer to different destinations. People can " +"still \n" +"discover new names by importing published addressbooks of peers specified" +" \n" +"in their web of trust, by adding in the entries provided through a third " +"party, \n" +"or (if some people organize a series of published addressbooks using a " +"first \n" +"come first serve registration system) people can choose to treat these " +"addressbooks \n" +"as name servers, emulating traditional DNS." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:862 +msgid "" +"I2P does not promote the use of DNS-like services though, as the damage \n" +"done by hijacking a site can be tremendous - and insecure destinations " +"have \n" +"no value. DNSsec itself still falls back on registrars and certificate " +"authorities, \n" +"while with I2P, requests sent to a destination cannot be intercepted or " +"the \n" +"reply spoofed, as they are encrypted to the destination's public keys, " +"and \n" +"a destination itself is just a pair of public keys and a certificate. " +"DNS-style \n" +"systems on the other hand allow any of the name servers on the lookup " +"path \n" +"to mount simple denial of service and spoofing attacks. Adding on a " +"certificate \n" +"authenticating the responses as signed by some centralized certificate " +"authority \n" +"would address many of the hostile nameserver issues but would leave open " +"replay \n" +"attacks as well as hostile certificate authority attacks." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:876 +msgid "" +"Voting style naming is dangerous as well, especially given the " +"effectiveness \n" +"of Sybil attacks in anonymous systems - the attacker can simply create an" +" \n" +"arbitrarily high number of peers and \"vote\" with each to take over a " +"given \n" +"name. Proof-of-work methods can be used to make identity non-free, but as" +" \n" +"the network grows the load required to contact everyone to conduct online" +" \n" +"voting is implausible, or if the full network is not queried, different " +"sets \n" +"of answers may be reachable." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:886 +msgid "" +"As with the Internet however, I2P is keeping the design and operation of" +" \n" +"a naming system out of the (IP-like) communication layer. The bundled " +"naming \n" +"library includes a simple service provider interface which alternate " +"naming \n" +"systems can plug into, allowing end users to drive what sort of naming " +"tradeoffs \n" +"they prefer." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:895 +msgid "" +"The old Syndie bundled with I2P has been replaced by the new Syndie which" +"\n" +"is distributed separately. For more information see the Syndie\n" +"pages." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:901 +msgid "" +"Syndie is a safe, anonymous blogging / content publication / content " +"aggregation \n" +"system. It lets you create information, share it with others, and read " +"posts \n" +"from those you're interested in, all while taking into consideration your" +" \n" +"needs for security and anonymity. Rather than building its own content " +"distribution \n" +"network, Syndie is designed to run on top of existing networks, " +"syndicating \n" +"content through eepsites, Tor hidden services, Freenet freesites, normal " +"websites, \n" +"usenet newsgroups, email lists, RSS feeds, etc. Data published with " +"Syndie \n" +"is done so as to offer pseudonymous authentication to anyone reading or " +"archiving \n" +"it." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:916 +msgid "" +"I2PTunnel is probably I2P's most popular and versatile client " +"application, \n" +"allowing generic proxying both into and out of the I2P network. I2PTunnel" +" \n" +"can be viewed as four separate proxying applications - a \"client\" which" +" receives \n" +"inbound TCP connections and forwards them to a given I2P destination, an " +"\"httpclient\" \n" +"(aka \"eepproxy\") which acts like an HTTP proxy and forwards the " +"requests to \n" +"the appropriate I2P destination (after querying the naming service if " +"necessary), \n" +"a \"server\" which receives inbound I2P streaming connections on a " +"destination \n" +"and forwards them to a given TCP host+port, and an \"httpserver\" which " +"extends \n" +"the \"server\" by parsing the HTTP request and responses to allow safer " +"operation. \n" +"There is an additional \"socksclient\" application, but its use is not " +"encouraged \n" +"for reasons previously mentioned." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:930 +msgid "" +"I2P itself is not an outproxy network - the anonymity and security " +"concerns \n" +"inherent in a mix net which forwards data into and out of the mix have " +"kept \n" +"I2P's design focused on providing an anonymous network which capable of " +"meeting \n" +"the user's needs without requiring external resources. However, the " +"I2PTunnel \n" +"\"httpclient\" application offers a hook for outproxying - if the " +"hostname requested \n" +"doesn't end in \".i2p\", it picks a random destination from a user-" +"provided \n" +"set of outproxies and forwards the request to them. These destinations " +"are \n" +"simply I2PTunnel \"server\" instances run by volunteers who have " +"explicitly \n" +"chosen to run outproxies - no one is an outproxy by default, and running " +"an \n" +"outproxy doesn't automatically tell other people to proxy through you. " +"While \n" +"outproxies do have inherent weaknesses, they offer a simple proof of " +"concept \n" +"for using I2P and provide some functionality under a threat model which " +"may \n" +"be sufficient for some users." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:946 +msgid "" +"I2PTunnel enables most of the applications in use. An \"httpserver\" " +"pointing \n" +"at a webserver lets anyone run their own anonymous website (or " +"\"eepsite\") \n" +"- a webserver is bundled with I2P for this purpose, but any webserver can" +" \n" +"be used. Anyone may run a \"client\" pointing at one of the anonymously " +"hosted \n" +"IRC servers, each of which are running a \"server\" pointing at their " +"local \n" +"IRCd and communicating between IRCds over their own \"client\" tunnels. " +"End \n" +"users also have \"client\" tunnels pointing at I2Pmail's \n" +"POP3 and SMTP destinations (which in turn are simply \"server\" instances" +" pointing \n" +"at POP3 and SMTP servers), as well as \"client\" tunnels pointing at " +"I2P's CVS \n" +"server, allowing anonymous development. At times people have even run " +"\"client\" \n" +"proxies to access the \"server\" instances pointing at an NNTP server." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:963 +msgid "" +"i2p-bt is a port of the mainline python BitTorrent client to run both the" +" \n" +"tracker and peer communication over I2P. Tracker requests are forwarded " +"through \n" +"the eepproxy to eepsites specified in the torrent file while tracker " +"responses \n" +"refer to peers by their destination explicitly, allowing i2p-bt to open " +"up \n" +"a streaming lib connection to query them " +"for \n" +"blocks." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:972 +msgid "" +"In addition to i2p-bt, a port of bytemonsoon has been made to I2P, making" +" \n" +"a few modifications as necessary to strip any anonymity-compromising " +"information \n" +"from the application and to take into consideration the fact that IPs " +"cannot \n" +"be used for identifying peers." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:980 +msgid "" +"I2PSnark developed: jrandom, et al, ported from mjw's Snark client" +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:986 +msgid "" +"Bundled with the I2P install, I2PSnark offers a simple anonymous " +"BitTorrent \n" +"client with multitorrent capabilities, exposing all of the functionality " +"through \n" +"a plain HTML web interface." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:995 +#, python-format +msgid "" +"Robert is a Bittorrent client written in Python.\n" +"It is hosted on http://%(bob)s/Robert.html " +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:1003 +#, python-format +msgid "" +"PyBit is a Bittorrent client written in Python.\n" +"It is hosted on %(pybit)s " +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:1011 +msgid "" +"I2Phex is a fairly direct port of the Phex Gnutella filesharing client to" +" \n" +"run entirely on top of I2P. While it has disabled some of Phex's " +"functionality, \n" +"such as integration with Gnutella webcaches, the basic file sharing and " +"chatting \n" +"system is fully functional." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:1021 +msgid "" +"iMule is a fairly direct port of the aMule filesharing client \n" +"running entirely inside I2P." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:1029 +#, python-format +msgid "" +"I2Pmail is more a service than an application - postman offers both " +"internal \n" +"and external email with POP3 and SMTP service through I2PTunnel instances" +" \n" +"accessing a series of components developed with mastiejaner, allowing " +"people \n" +"to use their preferred mail clients to send and receive mail " +"pseudonymously. \n" +"However, as most mail clients expose substantial identifying information," +" \n" +"I2P bundles susi23's web based susimail client which has been built " +"specifically \n" +"with I2P's anonymity needs in mind. The I2Pmail/mail.i2p service offers " +"transparent \n" +"virus filtering as well as denial of service prevention with hashcash " +"augmented \n" +"quotas. In addition, each user has control of their batching strategy " +"prior \n" +"to delivery through the mail.i2p outproxies, which are separate from the " +"mail.i2p \n" +"SMTP and POP3 servers - both the outproxies and inproxies communicate " +"with \n" +"the mail.i2p SMTP and POP3 servers through I2P itself, so compromising " +"those \n" +"non-anonymous locations does not give access to the mail accounts or " +"activity \n" +"patterns of the user. At the moment the developers work on a " +"decentralized \n" +"mailsystem, called \"v2mail\". More information can be found on the " +"eepsite \n" +"%(postman)s." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:1051 +msgid "" +"I2P-Bote is a distributed e-mail application. It does not use the " +"traditional\n" +"e-mail concept of sending an e-mail to a server and retrieving it from a " +"server.\n" +"Instead, it uses a Kademlia Distributed Hash Table to store mails.\n" +"One user can push a mail into the DHT, while another can request the " +"e-mail from the DHT.\n" +"And all the mails sent within the I2P-Bote network are automatically " +"encrypted end-to-end.
\n" +"Furthermore, I2P-Bote offers a remailer function on top of I2P, for " +"increased high-latency anonymity." +msgstr "" + +#: i2p2www/pages/site/docs/how/tech-intro.html:1061 +msgid "" +"I2P-Messenger is an end-to-end encrypted serverless communication " +"application.\n" +"For communication between two users, they need to give each other their " +"destination keys, to allow the other to connect.\n" +"It supports file transfer and has a search for other users, based on " +"Seedless." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:2 +msgid "I2P's Threat Model" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:3 +msgid "November 2010" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:7 +msgid "low" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:8 +msgid "medium" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:9 +msgid "high" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:34 +msgid "Damage Potential" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:35 +msgid "Reliability" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:36 +msgid "Exploitability" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:37 +msgid "Affected Users" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:38 +msgid "Discoverability" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:39 +msgid "Severity" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:40 +#: i2p2www/pages/site/docs/protocol/i2np.html:93 +msgid "Priority" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:45 +msgid "Index of Attacks" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:47 +#: i2p2www/pages/site/docs/how/threat-model.html:206 +msgid "Brute force attacks" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:48 +#: i2p2www/pages/site/docs/how/threat-model.html:250 +msgid "Timing attacks" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:49 +#: i2p2www/pages/site/docs/how/threat-model.html:287 +msgid "Intersection attacks" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:50 +#: i2p2www/pages/site/docs/how/threat-model.html:367 +msgid "Denial of service attacks" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:51 +#: i2p2www/pages/site/docs/how/threat-model.html:466 +msgid "Tagging attacks" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:52 +#: i2p2www/pages/site/docs/how/threat-model.html:484 +msgid "Partitioning attacks" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:53 +#: i2p2www/pages/site/docs/how/threat-model.html:524 +msgid "Predecessor attacks" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:54 +#: i2p2www/pages/site/docs/how/threat-model.html:569 +msgid "Harvesting attacks" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:55 +#: i2p2www/pages/site/docs/how/threat-model.html:616 +msgid "Identification Through Traffic Analysis" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:56 +#: i2p2www/pages/site/docs/how/threat-model.html:676 +msgid "Sybil attacks" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:57 +#: i2p2www/pages/site/docs/how/threat-model.html:725 +msgid "Buddy Exhaustion attacks" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:58 +#: i2p2www/pages/site/docs/how/threat-model.html:750 +msgid "Cryptographic attacks" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:59 +msgid "Floodfill attacks" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:60 +#: i2p2www/pages/site/docs/how/threat-model.html:811 +msgid "Other Network Database attacks" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:61 +msgid "Attacks on centralized resources" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:62 +#: i2p2www/pages/site/docs/how/threat-model.html:877 +msgid "Development attacks" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:63 +msgid "Implementation attacks" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:64 +#: i2p2www/pages/site/docs/how/threat-model.html:961 +msgid "Other Defenses" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:69 +msgid "What do we mean by \"anonymous\"?" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:71 +msgid "" +"Your level of anonymity can be described as \"how hard it is for someone\n" +"to find out information you don't want them to know?\" - who you are, " +"where\n" +"you are located, who you communicate with, or even when you communicate." +" \n" +"\"Perfect\" anonymity is not a useful concept here - software will not " +"make \n" +"you indistinguishable from people that don't use computers or who are not" +" on\n" +"the Internet. Instead, we are working to provide sufficient anonymity to" +" meet the\n" +"real needs of whomever we can - from those simply browsing websites, to " +"those exchanging\n" +"data, to those fearful of discovery by powerful organizations or states." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:82 +msgid "" +"The question of whether I2P provides sufficient anonymity for your \n" +"particular needs is a hard one, but this page will hopefully assist in \n" +"answering that question by exploring how I2P operates under various " +"attacks\n" +"so that you may decide whether it meets your needs." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:89 +msgid "" +"We welcome further research and analysis on I2P's resistance to the " +"threats described below.\n" +"More review of existing literature (much of it focused on Tor) and " +"original\n" +"work focused on I2P is needed." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:95 +msgid "Network Topology Summary" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:96 +#, python-format +msgid "" +"I2P builds off the ideas of many other \n" +"systems, but a few key points should be kept in" +" mind when \n" +"reviewing related literature:" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:102 +msgid "" +"I2P is a free route mixnet - the message creator explicitly " +"defines the\n" +"path that messages will be sent out (the outbound tunnel), and the " +"message \n" +"recipient explicitly defines the path that messages will be received on " +"(the\n" +"inbound tunnel)." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:108 +msgid "" +"I2P has no official entry and exit points - all peers fully " +"participate in the \n" +"mix, and there are no network layer in- or out-proxies (however, at the \n" +"application layer, a few proxies do exist)" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:113 +msgid "" +"I2P is fully distributed - there are no central controls or " +"authorities.\n" +"One could modify some routers to operate mix cascades (building tunnels " +"and giving\n" +"out the keys necessary to control the forwarding at the tunnel endpoint) " +"or directory \n" +"based profiling and selection, all without breaking compatibility with " +"the rest of \n" +"the network, but doing so is of course not necessary (and may even harm " +"one's\n" +"anonymity)." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:123 +#, python-format +msgid "" +"We have documented plans to implement nontrivial delays\n" +"and batching strategies \n" +"whose existence is only known to the particular hop or tunnel gateway " +"that \n" +"receives the message, allowing a mostly low latency mixnet to provide " +"cover \n" +"traffic for higher latency communication (e.g. email).\n" +"However we are aware that significant delays are required to provide " +"meaningful\n" +"protection, and that implementation of such delays will be a significant " +"challenge.\n" +"It is not clear at this time whether we will actually implement these " +"delay features." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:134 +msgid "" +"In theory, routers along the message path may inject an \n" +"arbitrary number of hops before forwarding the message to the next peer, " +"though\n" +"the current implementation does not." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:141 +msgid "The Threat Model" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:142 +msgid "" +"I2P design started in 2003, not long after the advent of\n" +"[Onion Routing],\n" +"[Freenet], and\n" +"[Tor].\n" +"Our design benefits substantially from the research published around that" +" time.\n" +"I2P uses several onion routing techniques, so we continue to benefit\n" +"from the significant academic interest in Tor." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:152 +msgid "" +"Taking from the attacks and analysis put forth in the \n" +"anonymity " +"literature (largely \n" +"Traffic Analysis: " +"Protocols, Attacks, Design \n" +"Issues and Open Problems), the following briefly describes a wide " +"variety \n" +"of attacks as well as many of I2Ps defenses. We update\n" +"this list to include new attacks as they are identified." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:161 +msgid "" +"Included are some attacks that may be unique to I2P.\n" +"We do not have good answers for all these attacks, however\n" +"we continue to do research and improve our defenses." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:167 +msgid "" +"In addition, many of these attacks are significantly easier than\n" +"they should be, due to the modest size of the current network.\n" +"While we are aware of some limitations that need to be addressed,\n" +"I2P is designed to support hundreds of thousands, or millions, of\n" +"participants.\n" +"As we continue to spread the word and grow the network,\n" +"these attacks will become much harder." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:177 +#, python-format +msgid "" +"The\n" +"network comparisons and\n" +"\"garlic\" terminology pages may also " +"be helpful\n" +"to review." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:210 +msgid "" +"A brute force attack can be mounted by a global passive or active " +"adversary, \n" +"watching all the messages pass between all of the nodes and attempting to" +" correlate\n" +"which message follows which path. Mounting this attack against I2P " +"should be \n" +"nontrivial, as all peers in the network are frequently sending messages " +"(both\n" +"end to end and network maintenance messages), plus an end to end message " +"changes\n" +"size and data along its path. In addition, the external adversary does " +"not have\n" +"access to the messages either, as inter-router communication is both " +"encrypted\n" +"and streamed (making two 1024 byte messages indistinguishable from one " +"2048 byte\n" +"message)." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:222 +msgid "" +"However, a powerful attacker can use brute force to detect trends - if " +"they \n" +"can send 5GB to an I2P destination and monitor everyone's network " +"connection,\n" +"they can eliminate all peers who did not receive 5GB of data. Techniques" +" to \n" +"defeat this attack exist, but may be prohibitively expensive (see: \n" +"Tarzan's " +"mimics\n" +"or constant rate traffic). Most users are not concerned with this " +"attack, as \n" +"the cost of mounting it are extreme (and often require illegal activity)." +" \n" +"However, the attack is still possible, for example by an observer at\n" +"a large ISP or an Internet exchange point.\n" +"Those who want to defend against it \n" +"would want to take appropriate countermeasures, such as\n" +"setting low bandwidth limits, and using unpublished or encrypted " +"leasesets for eepsites.\n" +"Other countermeasures, such as nontrivial delays and restricted routes, " +"are\n" +"not currently implemented." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:239 +#, python-format +msgid "" +"As a partial defense against a single router or group of routers trying " +"to route all the network's traffic,\n" +"routers contain limits as to how many tunnels can be routed through a " +"single peer.\n" +"As the network grows, these limits are subject to further adjustment.\n" +"Other mechanisms for peer rating, selection and avoidance\n" +"are discussed on the\n" +"peer selection page." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:254 +msgid "" +"I2P's messages are unidirectional and do not necessarily imply that a " +"reply\n" +"will be sent. However, applications on top of I2P will most likely have\n" +"recognizable patterns within the frequency of their messages - for " +"instance, an \n" +"HTTP request will be a small message with a large sequence of reply " +"messages \n" +"containing the HTTP response. Using this data as well as a broad view of" +" the \n" +"network topology, an attacker may be able to disqualify some links as " +"being too \n" +"slow to have passed the message along." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:264 +msgid "" +"This sort of attack is powerful, but its applicability to I2P is non " +"obvious,\n" +"as the variation on message delays due to queuing, message processing, " +"and \n" +"throttling will often meet or exceed the time of passing a message along " +"a \n" +"single link - even when the attacker knows that a reply will be sent as " +"soon as\n" +"the message is received. There are some scenarios which will expose " +"fairly \n" +"automatic replies though - the streaming library does (with the SYN+ACK) " +"as does the \n" +"message mode of guaranteed delivery (with the " +"DataMessage+DeliveryStatusMessage)." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:274 +#, python-format +msgid "" +"Without protocol scrubbing or higher latency, global active adversaries " +"can \n" +"gain substantial information. As such, people concerned with these " +"attacks could\n" +"increase the latency (using nontrivial " +"delays or \n" +"batching strategies), include protocol " +"scrubbing, or\n" +"other advanced tunnel routing techniques,\n" +"but these are unimplemented in I2P." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:283 +#, python-format +msgid "" +"References: Low-Resource Routing Attacks Against " +"Anonymous Systems" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:291 +msgid "" +"Intersection attacks against low latency systems are extremely powerful -" +"\n" +"periodically make contact with the target and keep track of what peers " +"are on\n" +"the network. Over time, as node churn occurs the attacker will gain \n" +"significant information about the target by simply intersecting the sets " +"of\n" +"peers that are online when a message successfully goes through. The cost" +" of \n" +"this attack is significant as the network grows, but may be feasible in " +"some\n" +"scenarios." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:301 +#, python-format +msgid "" +"In summary, if an attacker is at both ends of your tunnel at the same " +"time,\n" +"he may be successful.\n" +"I2P does not have a full defense to this for low latency communication.\n" +"This is an inherent weakness of low-latency onion routing.\n" +"Tor provides a similar disclaimer." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:309 +msgid "Partial defenses implemented in I2P:" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:313 +#, python-format +msgid "strict ordering of peers" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:316 +#, python-format +msgid "" +"peer profiling and selection from a " +"small group that changes slowly" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:319 +msgid "Limits on the number of tunnels routed through a single peer" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:322 +msgid "" +"Prevention of peers from the same /16 IP range from being members of a " +"single tunnel" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:325 +msgid "" +"For eepsites or other hosted services, we support\n" +"simultaneous hosting on multiple routers, or\n" +"multihoming" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:332 +msgid "" +"Even in total, these defenses are not a complete solution.\n" +"Also, we have made some design choices that may significantly increase " +"our vulnerability:" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:337 +msgid "We do not use low-bandwidth \"guard nodes\"" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:340 +msgid "" +"We use tunnel pools comprised of several tunnels, and traffic can shift " +"from tunnel to tunnel." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:343 +msgid "Tunnels are not long-lived; new tunnels are built every 10 minutes." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:346 +msgid "" +"Tunnel lengths are configurable.\n" +"While 3-hop tunnels are recommended for full protection, several " +"applications and\n" +"services use 2-hop tunnels by default." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:353 +#, python-format +msgid "" +"In the future, it could\n" +"for peers who can afford significant delays (per nontrivial\n" +"delays and batching strategies). " +"In addition,\n" +"this is only relevant for destinations that other people know about - a " +"private\n" +"group whose destination is only known to trusted peers does not have to " +"worry,\n" +"as an adversary can't \"ping\" them to mount the attack.

" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:362 +#, python-format +msgid "Reference: One Cell Enough" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:369 +msgid "" +"There are a whole slew of denial of service attacks available against " +"I2P,\n" +"each with different costs and consequences:" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:375 +msgid "" +"Greedy user attack: This is simply\n" +"people trying to consume significantly more resources than they are \n" +"willing to contribute. The defense against this is:" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:381 +#, python-format +msgid "" +"Set defaults so that most users provide resources to the network.\n" +"In I2P, users route traffic by default. In sharp distinction to\n" +"other networks,\n" +"over 95% of I2P users relay traffic for others." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:387 +msgid "" +"Provide easy configuration options so that users may increase their\n" +"contribution (share percentage) to the network. Display easy-to-" +"understand\n" +"metrics such as \"share ratio\" so that users may see what they are " +"contributing." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:392 +msgid "" +"Maintain a strong community with blogs, forums, IRC, and other means of " +"communication." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:399 +#, python-format +msgid "" +"Starvation attack: A hostile user may attempt to harm the network " +"by\n" +"creating a significant number of peers in the network who are not " +"identified as\n" +"being under control of the same entity (as with Sybil). These nodes then" +" \n" +"decide not to provide any resources to the network, causing existing " +"peers \n" +"to search through a larger network database or request more tunnels than" +" \n" +"should be necessary. \n" +"Alternatively, the nodes may provide intermittent service by periodically" +"\n" +"dropping selected traffic, or refusing connections to certain peers.\n" +"This behavior may be indistinguishable from that of a heavily-loaded or " +"failing node.\n" +"I2P addresses these issues by maintaining profiles on the \n" +"peers, attempting to identify underperforming ones and simply ignoring \n" +"them, or using them rarely.\n" +"We have significantly enhanced the\n" +"ability to recognize and avoid troublesome peers; however there are still" +"\n" +"significant efforts required in this area." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:419 +#, python-format +msgid "" +"Flooding attack: A hostile user may attempt to flood the network,\n" +"a peer, a destination, or a tunnel. Network and peer flooding is " +"possible,\n" +"and I2P does nothing to prevent standard IP layer flooding. The flooding" +" of\n" +"a destination with messages by sending a large number to the target's " +"various\n" +"inbound tunnel gateways is possible, but the destination will know this " +"both\n" +"by the contents of the message and because the tunnel's tests will fail." +" The\n" +"same goes for flooding just a single tunnel. I2P has no defenses for a " +"network\n" +"flooding attack. For a destination and tunnel flooding attack, the " +"target\n" +"identifies which tunnels are unresponsive and builds new ones. New code " +"could\n" +"also be written to add even more tunnels if the client wishes to handle " +"the\n" +"larger load. If, on the other hand, the load is more than the client can" +"\n" +"deal with, they can instruct the tunnels to throttle the number of " +"messages or\n" +"bytes they should pass on (once the advanced tunnel\n" +"operation is implemented)." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:438 +msgid "" +"CPU load attack: There are currently some methods for people to \n" +"remotely request that a peer perform some cryptographically expensive \n" +"operation, and a hostile attacker could use these to flood that peer with" +"\n" +"a large number of them in an attempt to overload the CPU. Both using " +"good \n" +"engineering practices and potentially requiring nontrivial certificates \n" +"(e.g. HashCash) to be attached to these expensive requests should " +"mitigate\n" +"the issue, though there may be room for an attacker to exploit various\n" +"bugs in the implementation." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:451 +#, python-format +msgid "" +"Floodfill DOS attack: A hostile user may attempt to harm the " +"network by\n" +"becoming a floodfill router. The current defenses against unreliable,\n" +"intermittent, or malicious floodfill routers are poor.\n" +"A floodfill router may provide bad or no response to lookups, and\n" +"it may also interfere with inter-floodfill communication.\n" +"Some defenses and\n" +"peer profiling are implemented,\n" +"however there is much more to do.\n" +"For more information see the\n" +"network database page." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:470 +#, python-format +msgid "" +"Tagging attacks - modifying a message so that it can later be identified" +" \n" +"further along the path - are by themselves impossible in I2P, as messages" +" \n" +"passed through tunnels are signed. However, if an attacker is the " +"inbound \n" +"tunnel gateway as well as a participant further along in that tunnel, " +"with\n" +"collusion they can identify the fact that they are in the same tunnel " +"(and \n" +"prior to adding unique hop ids and " +"other updates,\n" +"colluding peers within the same tunnel can recognize that fact without " +"any \n" +"effort). An attacker in an outbound tunnel and any part of an inbound " +"tunnel cannot \n" +"collude however, as the tunnel encryption pads and modifies the data " +"separately\n" +"for the inbound and outbound tunnels. External attackers cannot do " +"anything,\n" +"as the links are encrypted and messages signed." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:488 +msgid "" +"Partitioning attacks - finding ways to segregate (technically or " +"analytically)\n" +"the peers in a network - are important to keep in mind when dealing with " +"a \n" +"powerful adversary, since the size of the network plays a key role in " +"determining\n" +"your anonymity. Technical partitioning by cutting links between peers to" +" create\n" +"fragmented networks is addressed by I2P's built in network database, " +"which \n" +"maintains statistics about various peers so as to allow any existing " +"connections\n" +"to other fragmented sections to be exploited so as to heal the network. " +"However,\n" +"if the attacker does disconnect all links to uncontrolled peers, " +"essentially\n" +"isolating the target, no amount of network database healing will fix it." +" At\n" +"that point, the only thing the router can hope to do is notice that a " +"significant\n" +"number of previously reliable peers have become unavailable and alert the" +" client\n" +"that it is temporarily disconnected (this detection code is not " +"implemented at\n" +"the moment)." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:504 +#, python-format +msgid "" +"Partitioning the network analytically by looking for differences in how " +"routers \n" +"and destinations behave and grouping them accordingly is also a very " +"powerful\n" +"attack. For instance, an attacker harvesting" +" the network\n" +"database will know when a particular destination has 5 inbound tunnels in" +" their\n" +"LeaseSet while others have only 2 or 3, allowing the adversary to " +"potentially \n" +"partition clients by the number of tunnels selected. Another partition " +"is \n" +"possible when dealing with the nontrivial " +"delays and \n" +"batching strategies, as the tunnel " +"gateways and the\n" +"particular hops with non-zero delays will likely stand out. However, " +"this data\n" +"is only exposed to those specific hops, so to partition effectively on " +"that \n" +"matter, the attacker would need to control a significant portion of the " +"network\n" +"(and still that would only be a probabilistic partition, as they wouldn't" +" know\n" +"which other tunnels or messages have those delays)." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:520 +#, python-format +msgid "" +"Also discussed on the network database " +"page (bootstrap attack)." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:528 +msgid "" +"The predecessor attack is passively gathering statistics in an attempt to" +" see\n" +"what peers are 'close' to the destination by participating in their " +"tunnels and\n" +"keeping track of the previous or next hop (for outbound or inbound " +"tunnels, \n" +"respectively). Over time, using a perfectly random sample of peers and " +"random\n" +"ordering, an attacker would be able to see which peer shows up as " +"'closer' \n" +"statistically more than the rest, and that peer would in turn be where " +"the\n" +"target is located." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:538 +#, python-format +msgid "" +"I2P avoids this in four ways: first, the peers selected to participate in" +"\n" +"tunnels are not randomly sampled throughout the network - they are " +"derived from\n" +"the peer selection algorithm which " +"breaks them\n" +"into tiers. Second, with strict " +"ordering of peers\n" +"in a tunnel, the fact that a peer shows up more frequently does not mean " +"they're\n" +"the source. Third, with permuted " +"tunnel length\n" +"(not enabled by default)\n" +"even 0 hop tunnels can provide plausible deniability as the occasional \n" +"variation of the gateway will look like normal tunnels. Fourth, with \n" +"restricted routes " +"(unimplemented), only the peer with\n" +"a restricted connection to the target will ever contact the target, while" +" \n" +"attackers will merely run into that gateway." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:555 +#, python-format +msgid "" +"The current tunnel build method\n" +"was specifically designed to combat the predecessor attack.\n" +"See also the intersection attack." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:561 +#, python-format +msgid "" +"References: %(pdf2008)s\n" +"which is an update to the 2004 predecessor attack paper\n" +"%(pdf2004)s." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:573 +msgid "" +"\"Harvesting\" means compiling a list of users running I2P.\n" +"It can be used for legal attacks and to help\n" +"other attacks by simply running a peer, seeing who it connects to, and \n" +"harvesting whatever references to other peers it can find." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:580 +msgid "" +"I2P itself is not designed with effective defenses against\n" +"this attack, since there is the distributed network database \n" +"containing just this information.\n" +"The following factors make the attack somewhat harder in practice:" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:587 +msgid "" +"Network growth will make it more difficult to obtain a given proportion " +"of the network" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:590 +msgid "Floodfill routers implement query limits as DOS protection" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:593 +msgid "" +"\"Hidden mode\", which prevents a router from publishing its information " +"to the netDb,\n" +"(but also prevents it from relaying data) is not widely used now but " +"could be." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:599 +#, python-format +msgid "" +"In future implementations,\n" +"basic and \n" +"comprehensive restricted " +"routes,\n" +"this attack loses much of its power, as the \"hidden\" peers do not " +"publish their\n" +"contact addresses in the network database - only the tunnels through " +"which \n" +"they can be reached (as well as their public keys, etc)." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:608 +msgid "" +"In the future, routers could use GeoIP to identify if they are in a " +"particular\n" +"country where identification as an I2P node would be risky.\n" +"In that case, the router could automatically enable hidden mode, or\n" +"enact other restricted route methods." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:620 +#, python-format +msgid "" +"By inspecting the traffic into and out of a router, a malicious ISP\n" +"or state-level firewall could identify that a computer is running I2P.\n" +"As discussed above, I2P is not specifically " +"designed\n" +"to hide that a computer is running I2P. However, several design decisions" +" made\n" +"in the design of the\n" +"transport layer and protocols\n" +"make it somewhat difficult to identify I2P traffic:" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:630 +msgid "Random port selection" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:633 +msgid "Point-to-Point Encryption of all traffic" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:636 +msgid "" +"DH key exchange with no protocol bytes or other unencrypted constant " +"fields" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:639 +#, python-format +msgid "" +"Simultaneous use of both\n" +"TCP and\n" +"UDP transports.\n" +"UDP may be much harder for some Deep Packet Inspection (DPI) equipment to" +" track." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:647 +msgid "" +"In the near future, we plan to directly address traffic analysis issues " +"by further obfuscation of I2P transport protocols, possibly including:" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:651 +msgid "" +"Padding at the transport layer to random lengths, especially during the " +"connection handshake" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:654 +msgid "" +"Study of packet size distribution signatures, and additional padding as " +"necessary" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:657 +msgid "" +"Development of additional transport methods that mimic SSL or other " +"common protocols" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:660 +msgid "" +"Review of padding strategies at higher layers to see how they affect " +"packet sizes at the transport layer" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:663 +msgid "" +"Review of methods implemented by various state-level firewalls to block " +"Tor" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:666 +msgid "Working directly with DPI and obfuscation experts" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:671 +#, python-format +msgid "" +"Reference: Breaking and Improving Protocol " +"Obfuscation" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:680 +msgid "" +"Sybil describes a category of attacks where the adversary creates " +"arbitrarily\n" +"large numbers of colluding nodes and uses the increased numbers to help \n" +"mounting other attacks. For instance, if an attacker is in a network " +"where peers\n" +"are selected randomly and they want an 80% chance to be one of those " +"peers, they\n" +"simply create five times the number of nodes that are in the network and " +"roll \n" +"the dice. When identity is free, Sybil can be a very potent technique " +"for a \n" +"powerful adversary. The primary technique to address this is simply to " +"make \n" +"identity 'non free' - Tarzan\n" +"(among others) uses the fact that IP addresses are limited, while \n" +"IIP used \n" +"HashCash to 'charge' for " +"creating a new\n" +"identity. We currently have not implemented any particular technique to " +"address\n" +"Sybil, but do include placeholder certificates in the router's and \n" +"destination's data structures which can contain a HashCash certificate of" +" \n" +"appropriate value when necessary (or some other certificate proving " +"scarcity)." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:698 +msgid "Requiring HashCash Certificates in various places has two major problems:" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:702 +msgid "Maintaining backward compatibility" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:705 +msgid "" +"The classic HashCash problem -\n" +"selecting HashCash values that are meaningful proofs of work on high-end " +"machines,\n" +"while still being feasible on low-end machines such as mobile devices." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:712 +msgid "" +"Various limitations on the number of routers in a given IP range restrict" +"\n" +"the vulnerability to attackers that don't have the ability to put " +"machines\n" +"in several IP blocks.\n" +"However, this is not a meaningful defense against a powerful adversary." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:719 +#, python-format +msgid "" +"See the network database page\n" +"for more Sybil discussion." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:729 +#, python-format +msgid "" +"(Reference: In Search of an Anonymouns and Secure " +"Lookup Section 5.2)" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:733 +#, python-format +msgid "" +"By refusing to accept or forward tunnel build requests, except to a " +"colluding peer, a router could ensure\n" +"that a tunnel is formed wholly from its set of colluding routers.\n" +"The chances of success are enhanced if there is a large number of " +"colluding routers,\n" +"i.e. a Sybil attack.\n" +"This is somewhat mitigated by our\n" +"peer profiling methods used to monitor " +"the performance\n" +"of peers.\n" +"However, this is a powerful attack as the number of routers approaches\n" +"f = 0.2, or 20% malicious nodes, as specifed in the paper.\n" +"The malicous routers could also maintain connections to the target router" +" and provide\n" +"excellent forwarding bandwidth for traffic over those connections, in an " +"attempt\n" +"to manipulate the profiles managed by the target and appear attractive.\n" +"Further research and defenses may be necessary." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:754 +#, python-format +msgid "" +"We use strong cryptography with long keys, and\n" +"we assume the security of the industry-standard cryptographic primitives " +"used in I2P, as documented\n" +"on the low-level cryptography page. \n" +"Security features include the immediate detection of \n" +"altered messages along the path, the inability to decrypt messages not " +"addressed to you,\n" +"and defense against man-in-the-middle attacks.\n" +"The key sizes chosen in 2003 were quite conservative at the time, and are" +" still longer than\n" +"those used in other anonymity " +"networks.\n" +"We don't think the current key lengths are our biggest weakness,\n" +"especially for traditional, non-state-level adversaries;\n" +"bugs and the small size of the network are much more worrisome.\n" +"Of course, all cryptographic algorithms eventually become obsolete due to" +"\n" +"the advent of faster processors, cryptographic research, and advancements" +" in\n" +"methods such as rainbow tables, clusters of video game hardware, etc.\n" +"Unfortunately, I2P was not designed with easy mechanisms to lengthen keys" +" or change\n" +"shared secret values while maintaining backward compatibility." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:773 +#, python-format +msgid "" +"Upgrading the various data structures and protocols to support longer " +"keys\n" +"will have to be tackled eventually, and this will be a\n" +"major undertaking, just as it will be " +"for \n" +"others.\n" +"Hopefully, through careful planning, we can minimize the disruption, and\n" +"implement mechanisms to make it easier for future transitions." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:782 +msgid "" +"In the future, several I2P protocols and data structures\n" +"support securely padding messages to arbitrary sizes, so messages could " +"be made constant\n" +"size or garlic messages could be modified randomly so that some cloves " +"appear to contain\n" +"more subcloves than they actually do. At the moment, however, garlic, " +"tunnel, and \n" +"end to end messages include simple random padding." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:792 +msgid "Floodfill Anonymity attacks" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:796 +#, python-format +msgid "" +"In addition to the floodfill DOS attacks described\n" +"above, floodfill routers are uniquely positioned\n" +"to learn about network participants, due to their role\n" +"in the netDb, and the high frequency of communication with those " +"participants.\n" +"This is somewhat mitigated because floodfill routers only manage a " +"portion\n" +"of the total keyspace, and the keyspace rotates daily, as explained \n" +"on the network database page.\n" +"The specific mechanisms by which routers communicate with floodfills have" +" been\n" +"carefully designed.\n" +"However, these threats should be studied further.\n" +"The specific potential threats and corresponding defenses are a topic for" +" future research." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:812 +#, python-format +msgid "" +"A hostile user may attempt to harm the network by\n" +"creating one or more floodfill routers and crafting them to offer\n" +"bad, slow, or no responses.\n" +"Several scenarios are discussed on the\n" +"network database page." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:822 +msgid "Central Resource Attacks" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:826 +msgid "" +"There are a few centralized or limited resources (some inside I2P, some " +"not)\n" +"that could be attacked or used as a vector for attacks.\n" +"The absence of jrandom starting November 2007, followed by the loss of " +"the i2p.net hosting service in January 2008,\n" +"highlighted numerous centralized resources in the development and " +"operation of the I2P network,\n" +"most of which are now distributed.\n" +"Attacks on externally-reachable resources mainly affect the ability of " +"new users to find us,\n" +"not the operation of the network itself." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:836 +#, python-format +msgid "" +"The website is mirrored and uses DNS round-robin" +" for external public access." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:839 +#, python-format +msgid "" +"Routers now support multiple external reseed " +"locations,\n" +"however more reseed hosts may be needed, and the handling of unreliable " +"or malicious\n" +"reseed hosts may need improvement." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:844 +msgid "" +"Routers now support multiple update file locations.\n" +"A malicious update host could feed a huge file, need to limit the size." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:848 +msgid "Routers now support multiple default trusted update signers." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:851 +msgid "" +"Routers now better handle multiple unreliable " +"floodfill peers.\n" +"Malicious floodfills needs more study." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:855 +#, python-format +msgid "" +"The code is now stored in a distributed source " +"control system." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:858 +msgid "" +"Routers rely on a single news host, but there is a hardcoded backup URL " +"pointing to a different host.\n" +"A malicious news host could feed a huge file, need to limit the size." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:862 +#, python-format +msgid "" +"Naming system services, including addressbook " +"subscription providers, add-host services,\n" +"and jump services, could be malicious. Substantial protections for " +"subscriptions were implemented\n" +"in release 0.6.1.31, with additional enhancements in subsequent releases." +"\n" +"However, all naming services require some measure of trust, see\n" +"the naming page for details." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:869 +msgid "" +"We remain reliant on the DNS service for i2p2.de, losing this would cause" +" substantial\n" +"disruption in our ability to attract new users,\n" +"and would shrink the network (in the short-to-medium term), just as the " +"loss of i2p.net did." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:881 +msgid "" +"These attacks aren't directly on the network, but instead go after its " +"development team \n" +"by either introducing legal hurdles on anyone contributing to the " +"development\n" +"of the software, or by using whatever means are available to get the " +"developers to \n" +"subvert the software. Traditional technical measures cannot defeat these" +" attacks, and\n" +"if someone threatened the life or livelihood of a developer (or even just" +" issuing a \n" +"court order along with a gag order, under threat of prison), we would " +"have a big problem." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:890 +msgid "However, two techniques help defend against these attacks:" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:894 +#, python-format +msgid "" +"All components of the network must be open source to enable inspection, " +"verification, \n" +"modification, and improvement. If a developer is compromised, once it is" +" noticed \n" +"the community should demand explanation and cease to accept that " +"developer's work.\n" +"All checkins to our distributed source control " +"system\n" +"are cryptographically signed, and the release packagers use a trust-list " +"system\n" +"to restrict modifications to those previously approved." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:902 +#, python-format +msgid "" +"Development over the network itself, allowing developers to stay " +"anonymous but still \n" +"secure the development process. All I2P development can occur through " +"I2P - using\n" +"a distributed source control system,\n" +"a distributed source control system, IRC chat,\n" +"public web servers,\n" +"discussion forums (forum.i2p), and the software distribution sites,\n" +"all available within I2P." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:913 +msgid "" +"We also maintain relationships with various organizations that offer " +"legal advice,\n" +"should any defense be necessary." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:918 +msgid "Implementation attacks (bugs)" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:922 +msgid "" +"Try as we might, most nontrivial applications include errors in the " +"design or \n" +"implementation, and I2P is no exception. There may be bugs that could be" +" exploited to \n" +"attack the anonymity or security of the communication running over I2P in" +" unexpected \n" +"ways. To help withstand attacks against the design or protocols in use, " +"we publish \n" +"all designs and documentation and solicit review and criticism with \n" +"the hope that many eyes will improve the system.\n" +"We do not believe in\n" +"security through " +"obscurity." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:933 +msgid "" +"In addition, the code is being \n" +"treated the same way, with little aversion towards reworking or throwing " +"out \n" +"something that isn't meeting the needs of the software system (including " +"ease of \n" +"modification). Documentation for the design and implementation of the " +"network and \n" +"the software components are an essential part of security, as without " +"them it is \n" +"unlikely that developers would be willing to spend the time to learn the " +"software \n" +"enough to identify shortcomings and bugs." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:943 +msgid "" +"Our software is likely, in particular, to contain bugs related to denial " +"of service\n" +"through out-of-memory errors (OOMs), cross-site-scripting (XSS) issues " +"in the router console,\n" +"and other vulnerabilities to non-standard inputs via the various " +"protocols." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:949 +#, python-format +msgid "" +"I2P is still a small network with a small development community and " +"almost no\n" +"interest from academic or research groups.\n" +"Therefore we lack the analysis that\n" +"other anonymity networks\n" +"may have received. We continue to recruit people to\n" +"get involved and help." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:962 +msgid "Blocklists" +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:963 +msgid "" +"To some extent, I2P could be enhanced to avoid peers operating at IP " +"addresses\n" +"listed in a blocklist. Several blocklists are commonly available in " +"standard formats,\n" +"listing anti-P2P organizations, potential state-level adversaries, and " +"others." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:969 +msgid "" +"To the extent that active peers actually do show up in the actual " +"blocklist,\n" +"blocking by only a subset of peers would tend to segment the network,\n" +"exacerbate reachability problems, and decrease overall reliability.\n" +"Therefore we would want to agree on a particular blocklist and\n" +"enable it by default." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:977 +msgid "" +"Blocklists are only a part (perhaps a small part) of an array of defenses" +"\n" +"against maliciousness.\n" +"In large part the profiling system does a good job of measuring\n" +"router behavior so that we don't need to trust anything in netDb.\n" +"However there is more that can be done. For each of the areas in the\n" +"list above there are improvements we can make in detecting badness." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:986 +msgid "" +"If a blocklist is hosted at a central location with automatic updates\n" +"the network is vulnerable to a\n" +"central resource attack.\n" +"Automatic subscription to a list gives the list provider the power to " +"shut\n" +"the i2p network down. Completely." +msgstr "" + +#: i2p2www/pages/site/docs/how/threat-model.html:994 +msgid "" +"Currently, a default blocklist is distributed with our software,\n" +"listing only the IPs of past DOS sources.\n" +"There is no automatic update mechanism.\n" +"Should a particular IP range implement serious attacks on the I2P " +"network,\n" +"we would have to ask people to update their blocklist manually through\n" +"out-of-band mechanisms such as forums, blogs, etc." +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:2 +msgid "Tunnel Routing" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:3 +msgid "July 2011" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:7 +msgid "" +"This page contains an overview of I2P tunnel terminology and operation, " +"with\n" +"links to more technical pages, details, and specifications." +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:12 +#, python-format +msgid "" +"As briefly explained in the introduction, I2P " +"builds virtual \"tunnels\" -\n" +"temporary and unidirectional paths through a sequence of routers. These" +" \n" +"tunnels are classified as either inbound tunnels (where everything \n" +"given to it goes towards the creator of the tunnel) or outbound tunnels\n" +"(where the tunnel creator shoves messages away from them). When Alice\n" +"wants to send a message to Bob, she will (typically) send it out one of\n" +"her existing outbound tunnels with instructions for that tunnel's " +"endpoint\n" +"to forward it to the gateway router for one of Bob's current inbound \n" +"tunnels, which in turn passes it to Bob." +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:25 +msgid "Alice connecting through her outbound tunnel to Bob via his inbound tunnel" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:27 +msgid "Outbound Gateway" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:28 +msgid "Outbound Participant" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:29 +#: i2p2www/pages/site/docs/tunnels/implementation.html:131 +msgid "Outbound Endpoint" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:30 +#: i2p2www/pages/site/docs/tunnels/implementation.html:140 +msgid "Inbound Gateway" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:31 +msgid "Inbound Participant" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:32 +msgid "Inbound Endpoint" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:36 +msgid "Tunnel vocabulary" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:38 +#, python-format +msgid "" +"Tunnel gateway - the first router in a tunnel. For inbound " +"tunnels,\n" +"this is the one mentioned in the LeaseSet published in the\n" +"network database. For outbound tunnels, the\n" +"gateway is the originating router. (e.g. both A and D above)" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:44 +msgid "" +"Tunnel endpoint - the last router in a tunnel. (e.g. both C and F" +" above)" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:45 +msgid "" +"Tunnel participant - all routers in a tunnel except for the " +"gateway or\n" +"endpoint (e.g. both B and E above)" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:49 +msgid "" +"n-Hop tunnel - a tunnel with a specific number of inter-router " +"jumps, e.g.:" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:51 +msgid "0-hop tunnel - a tunnel where the gateway is also the endpoint" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:52 +msgid "" +"1-hop tunnel - a tunnel where the gateway talks directly to the " +"endpoint" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:53 +msgid "" +"2-(or more)-hop tunnel - a tunnel where there is at least one " +"intermediate\n" +"tunnel participant. (the above diagram includes two 2-hop tunnels - one\n" +"outbound from Alice, one inbound to Bob)" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:60 +#, python-format +msgid "" +"Tunnel ID - A 4 " +"byte integer\n" +"different for each hop in a tunnel, and unique among all tunnels on a " +"router.\n" +"Chosen randomly by the tunnel creator." +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:67 +msgid "Tunnel Build Information" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:68 +#, python-format +msgid "" +"Routers performing the three roles (gateway, participant, endpoint) are " +"given\n" +"different pieces of data in the initial\n" +"Tunnel Build Message\n" +"to accomplish their tasks:" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:75 +msgid "The tunnel gateway gets:" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:77 +#: i2p2www/pages/site/docs/how/tunnel-routing.html:97 +#, python-format +msgid "" +"tunnel encryption key - an AES private key for " +"encrypting\n" +"messages and instructions to the next hop" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:81 +#: i2p2www/pages/site/docs/how/tunnel-routing.html:101 +#, python-format +msgid "" +"tunnel IV key - an AES private key for " +"double-encrypting\n" +"the IV to the next hop" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:85 +#: i2p2www/pages/site/docs/how/tunnel-routing.html:105 +#, python-format +msgid "" +"reply key - an AES public key for " +"encrypting\n" +"the reply to the tunnel build request" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:89 +#: i2p2www/pages/site/docs/how/tunnel-routing.html:109 +msgid "" +"reply IV - the IV for encrypting the reply to the tunnel build " +"request" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:90 +msgid "tunnel id - 4 byte integer (inbound gateways only)" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:91 +msgid "" +"next hop - what router is the next one in the path (unless this is" +" a 0-hop tunnel, and the gateway is also the endpoint)" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:92 +#: i2p2www/pages/site/docs/how/tunnel-routing.html:112 +msgid "next tunnel id - The tunnel ID on the next hop" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:95 +msgid "All intermediate tunnel participants get:" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:110 +msgid "tunnel id - 4 byte integer" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:111 +msgid "next hop - what router is the next one in the path" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:115 +msgid "The tunnel endpoint gets:" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:117 +#, python-format +msgid "" +"tunnel encryption key - an AES private key for " +"encrypting\n" +"messages and instructions to the the endpoint (itself)" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:121 +#, python-format +msgid "" +"tunnel IV key - an AES private key for " +"double-encrypting\n" +"the IV to the endpoint (itself)" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:125 +#, python-format +msgid "" +"reply key - an AES public key for " +"encrypting\n" +"the reply to the tunnel build request (outbound endpoints only)" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:129 +msgid "" +"reply IV - the IV for encrypting the reply to the tunnel build " +"request (outbound endpoints only)" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:130 +msgid "tunnel id - 4 byte integer (outbound endpoints only)" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:131 +msgid "" +"reply router - the inbound gateway of the tunnel to send the reply" +" through (outbound endpoints only)" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:132 +msgid "" +"reply tunnel id - The tunnel ID of the reply router (outbound " +"endpoints only)" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:137 +#, python-format +msgid "" +"Details are in the\n" +"tunnel creation specification." +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:142 +msgid "Tunnel pooling" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:143 +#, python-format +msgid "" +"Several tunnels for a particular purpose may be grouped into a \"tunnel " +"pool\",\n" +"as described in the\n" +"tunnel specification.\n" +"This provides redundancy and additional bandwidth.\n" +"The pools used by the router itself are called \"exploratory tunnels\".\n" +"The pools used by applications are called \"client tunnels\"." +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:154 +msgid "Tunnel length" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:155 +#, python-format +msgid "" +"As mentioned above, each client requests that their router provide " +"tunnels to\n" +"include at least a certain number of hops.\n" +"The decision as to how many routers\n" +"to have in one's outbound and inbound tunnels has an important effect " +"upon the\n" +"latency, throughput, reliability, and anonymity provided by I2P - the " +"more peers\n" +"that messages have to go through, the longer it takes to get there and " +"the more\n" +"likely that one of those routers will fail prematurely. The less routers" +" in a\n" +"tunnel, the easier it is for an adversary to mount traffic analysis " +"attacks and\n" +"pierce someone's anonymity.\n" +"Tunnel lengths are specified by clients via\n" +"I2CP options.\n" +"The maximum number of hops in a tunnel is 7." +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:171 +msgid "0-hop tunnels" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:172 +msgid "" +"With no remote routers in a tunnel, the user has very basic plausible\n" +"deniability (since no one knows for sure that the peer that sent them the" +"\n" +"message wasn't simply just forwarding it on as part of the tunnel). " +"However, it\n" +"would be fairly easy to mount a statistical analysis attack and notice " +"that\n" +"messages targeting a specific destination are always sent through a " +"single\n" +"gateway. Statistical analysis against outbound 0-hop tunnels are more " +"complex,\n" +"but could show similar information (though would be slightly harder to " +"mount)." +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:182 +msgid "1-hop tunnels" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:183 +#, python-format +msgid "" +"With only one remote router in a tunnel, the user has both plausible\n" +"deniability and basic anonymity, as long as they are not up against an " +"internal\n" +"adversary (as described on threat model)." +" However,\n" +"if the adversary ran a sufficient number of routers such that the single " +"remote\n" +"router in the tunnel is often one of those compromised ones, they would " +"be able\n" +"to mount the above statistical traffic analysis attack." +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:192 +msgid "2-hop tunnels" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:193 +msgid "" +"With two or more remote routers in a tunnel, the costs of mounting the " +"traffic\n" +"analysis attack increases, since many remote routers would have to be " +"compromised\n" +"to mount it." +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:199 +msgid "3-hop (or more) tunnels" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:200 +#, python-format +msgid "" +"To reduce the susceptibility to some attacks,\n" +"3 or more hops are recommended for the highest level of protection.\n" +"Recent studies\n" +"also conclude that more than 3 hops does not provide additional " +"protection." +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:208 +msgid "Tunnel default lengths" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:209 +#, python-format +msgid "" +"The router uses 2-hop tunnels by default for its exploratory tunnels.\n" +"Client tunnel defaults are set by the application, using\n" +"I2CP options.\n" +"Most applications use 2 or 3 hops as their default." +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:218 +msgid "Tunnel testing" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:219 +#, python-format +msgid "" +"All tunnels are periodically tested by their creator by sending a\n" +"DeliveryStatusMessage out an outbound tunnel and bound for another " +"inbound tunnel\n" +"(testing both tunnels at once). If either fails a number of consecutive " +"tests, it is marked as no longer\n" +"functional. If it was used for a client's inbound tunnel, a new leaseSet\n" +"is created.\n" +"Tunnel test failures are also reflected in the\n" +"capacity rating in the peer " +"profile." +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:230 +msgid "Tunnel creation" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:231 +#, python-format +msgid "" +"Tunnel creation is handled by garlic " +"routing\n" +"a Tunnel Build Message to a router, requesting that they participate in " +"the\n" +"tunnel (providing them with all of the appropriate information, as above," +" along\n" +"with a certificate, which right now is a 'null' cert, but will support " +"hashcash\n" +"or other non-free certificates when necessary).\n" +"That router forwards the message to the next hop in the tunnel.\n" +"Details are in the\n" +"tunnel creation specification." +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:245 +#, python-format +msgid "" +"Multi-layer encryption is handled by garlic" +" encryption\n" +"of tunnel messages.\n" +"Details are in the\n" +"tunnel specification.\n" +"The IV of each hop is encrypted with a separate key as explained there." +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:257 +msgid "" +"Other tunnel test techniques could be used, such as\n" +"garlic wrapping a number of tests into cloves, testing individual tunnel\n" +"participants separately, etc." +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:263 +msgid "Move to 3-hop exploratory tunnels defaults." +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:267 +msgid "" +"In a distant future release,\n" +"options specifying the pooling, mixing, and chaff generation settings may" +" be implemented." +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:272 +msgid "" +"In a distant future release,\n" +"limits on the quantity and size of messages allowed during the\n" +"tunnel's lifetime may be implemented (e.g. no more than 300 messages or\n" +"1MB per minute)." +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:284 +#: i2p2www/pages/site/docs/tunnels/unidirectional.html:15 +msgid "Tunnel specification" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:286 +#: i2p2www/pages/site/docs/tunnels/unidirectional.html:17 +msgid "Tunnel creation specification" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:288 +msgid "Unidirectional tunnels" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:290 +msgid "Tunnel message specification" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:292 +msgid "Garlic routing" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:294 +msgid "ElGamal/AES+SessionTag" +msgstr "" + +#: i2p2www/pages/site/docs/how/tunnel-routing.html:296 +msgid "I2CP options" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:3 +msgid "February 2016" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:6 +msgid "" +"The I2P Client Protocol (I2CP) exposes a strong separation of concerns " +"between\n" +"the router and any client that wishes to communicate over the network. " +"It enables\n" +"secure and asynchronous messaging by sending and receiving messages over " +"a \n" +"single TCP socket.\n" +"With I2CP, a client application tells the\n" +"router who they are (their \"destination\"), what anonymity, reliability," +" and \n" +"latency tradeoffs to make, and where to send messages. In turn the " +"router uses\n" +"I2CP to tell the client when any messages have arrived, and to request " +"authorization\n" +"for some tunnels to be used." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:18 +#, python-format +msgid "" +"The protocol itself is implemented in Java, to provide the\n" +"Client SDK.\n" +"This SDK is exposed in the i2p.jar package, which implements the client-" +"side of I2CP.\n" +"Clients should never need to access the router.jar package, which " +"contains the\n" +"router itself and the router-side of I2CP.\n" +"There is also a C library implementation.\n" +"A non-Java client would also have to implement the\n" +"streaming library for TCP-style connections." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:31 +#, python-format +msgid "" +"Applications can take advantage of the base I2CP plus the \n" +"streaming and datagram libraries\n" +"by using the Simple Anonymous Messaging or BOB protocols,\n" +"which do not require clients to deal with any sort of cryptography.\n" +"Also, clients may access the network by one of several proxies -\n" +"HTTP, CONNECT, and SOCKS 4/4a/5.\n" +"Alternatively, Java clients may access those libraries in " +"ministreaming.jar and streaming.jar.\n" +"So there are several options for both Java and non-Java applications." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:43 +#, python-format +msgid "" +"Client-side end-to-end encryption (encrypting the data over the I2CP " +"connection)\n" +"was disabled in I2P release 0.6,\n" +"leaving in place the ElGamal/AES end-to-end " +"encryption\n" +"which is implemented in the router.\n" +"The only cryptography that client libraries must still implement is\n" +"DSA public/private key signing\n" +"for LeaseSets and\n" +"Session Configurations, and" +" management of those keys." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:56 +msgid "" +"In a standard I2P installation, port 7654 is used by external java " +"clients to communicate\n" +"with the local router via I2CP.\n" +"By default, the router binds to address 127.0.0.1. To bind to 0.0.0.0, " +"set the\n" +"router advanced configuration option " +"i2cp.tcp.bindAllInterfaces=true and restart.\n" +"Clients in the same JVM as the router pass messages directly to the " +"router\n" +"through an internal JVM interface." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:65 +#, python-format +msgid "" +"The router also supports external connections over SSL.\n" +"While SSL is not the default, it is strongly recommended for any traffic " +"that may\n" +"be exposed to the open Internet. The authorization user/password (if " +"any), the\n" +"Private Key and\n" +"Signing Private " +"Key for the\n" +"Destination\n" +"are all transmitted in-the-clear unless SSL is enabled." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:75 +msgid "I2CP Protocol Specification" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:76 +#, python-format +msgid "Now on the I2CP Specification page." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:81 +msgid "I2CP Initialization" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:82 +#, python-format +msgid "" +"When a client connects to the router, it first sends a single protocol " +"version byte (0x2A).\n" +"Then it sends a GetDate Message and " +"waits for the SetDate Message " +"response.\n" +"Next, it sends a CreateSession " +"Message containing the session configuration.\n" +"It next awaits a RequestLeaseSet" +" Message from the router, indicating that inbound tunnels\n" +"have been built, and responds with a CreateLeaseSetMessage containing the" +" signed LeaseSet.\n" +"The client may now initiate or receive connections from other I2P " +"destinations." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:91 +msgid "I2CP Options" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:92 +#: i2p2www/pages/site/docs/protocol/i2cp.html:99 +msgid "Router-side Options" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:93 +#, python-format +msgid "" +"The following options are traditionally passed to the router via\n" +"a SessionConfig contained " +"in a CreateSession Message or " +"a ReconfigureSession " +"Message." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:104 +#: i2p2www/pages/site/docs/protocol/i2cp.html:479 +msgid "As Of Release" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:105 +#: i2p2www/pages/site/docs/protocol/i2cp.html:480 +msgid "Recommended Arguments" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:106 +#: i2p2www/pages/site/docs/protocol/i2cp.html:481 +msgid "Allowable Range" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:117 +msgid "" +"The timeout (ms) for all sent messages. Unused.\n" +"See the protocol specification for per-message settings." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:129 +msgid "" +"Minimum number of ElGamal/AES Session Tags before we send more.\n" +"Recommended: approximately tagsToSend * 2/3" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:141 +msgid "" +"Number of ElGamal/AES Session Tags to send at a time.\n" +"For clients with relatively low bandwidth per-client-pair (IRC, some UDP " +"apps), this may be set lower." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:153 +msgid "" +"Comma-separated list of Base 64 Hashes of peers to build tunnels through;" +" for debugging only" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:162 +msgid "Should generally be set to true for clients and false for servers" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:171 +#: i2p2www/pages/site/docs/protocol/i2cp.html:519 +msgid "" +"If true, the router just sends the MessagePayload instead\n" +"of sending a MessageStatus and awaiting a ReceiveMessageBegin." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:183 +msgid "" +"Guaranteed is disabled;\n" +"None implemented in 0.8.1; the streaming lib default is None as of 0.8.1," +" the client side default is None as of 0.9.4" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:195 +msgid "" +"For authorization, if required by the router.\n" +"If the client is running in the same JVM as a router, this option is not " +"required.\n" +"Warning - username and password are sent in the clear to the router, " +"unless using SSL (i2cp.SSL=true).\n" +"Authorization is only recommended when using SSL." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:217 +msgid "If incoming zero hop tunnel is allowed" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:226 +msgid "If outgoing zero hop tunnel is allowed" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:232 +#: i2p2www/pages/site/docs/protocol/i2cp.html:241 +#: i2p2www/pages/site/docs/protocol/i2cp.html:250 +#: i2p2www/pages/site/docs/protocol/i2cp.html:262 +#: i2p2www/pages/site/docs/protocol/i2cp.html:274 +#: i2p2www/pages/site/docs/protocol/i2cp.html:283 +#: i2p2www/pages/site/docs/protocol/i2cp.html:292 +#: i2p2www/pages/site/docs/protocol/i2cp.html:307 +#: i2p2www/pages/site/docs/protocol/i2cp.html:343 +#: i2p2www/pages/site/docs/protocol/i2cp.html:355 +#: i2p2www/pages/site/docs/protocol/i2cp.html:368 +#, python-format +msgid "number from %(from)s to %(to)s" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:233 +#: i2p2www/pages/site/docs/protocol/i2cp.html:242 +#: i2p2www/pages/site/docs/protocol/i2cp.html:369 +msgid "No limit" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:235 +msgid "Number of redundant fail-over for tunnels in" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:244 +msgid "Number of redundant fail-over for tunnels out" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:251 +#: i2p2www/pages/site/docs/protocol/i2cp.html:263 +#: i2p2www/pages/site/docs/protocol/i2cp.html:275 +#: i2p2www/pages/site/docs/protocol/i2cp.html:284 +#: i2p2www/pages/site/docs/protocol/i2cp.html:293 +#: i2p2www/pages/site/docs/protocol/i2cp.html:308 +#: i2p2www/pages/site/docs/protocol/i2cp.html:344 +#: i2p2www/pages/site/docs/protocol/i2cp.html:356 +#: i2p2www/pages/site/docs/protocol/i2cp.html:608 +#, python-format +msgid "%(from)s to %(to)s" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:253 +#: i2p2www/pages/site/docs/protocol/i2cp.html:265 +msgid "" +"Number of IP bytes to match to determine if\n" +"two routers should not be in the same tunnel. 0 to disable." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:277 +msgid "Length of tunnels in" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:286 +msgid "Length of tunnels out" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:295 +msgid "" +"Random amount to add or subtract to the length of tunnels in.\n" +"A positive number x means add a random amount from 0 to x inclusive.\n" +"A negative number -x means add a random amount from -x to x inclusive.\n" +"The router will limit the total length of the tunnel to 0 to 7 inclusive." +"\n" +"The default variance was 1 prior to release 0.7.6." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:310 +msgid "" +"Random amount to add or subtract to the length of tunnels out.\n" +"A positive number x means add a random amount from 0 to x inclusive.\n" +"A negative number -x means add a random amount from -x to x inclusive.\n" +"The router will limit the total length of the tunnel to 0 to 7 inclusive." +"\n" +"The default variance was 1 prior to release 0.7.6." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:325 +msgid "" +"Name of tunnel - generally used in routerconsole, which will\n" +"use the first few characters of the Base64 hash of the destination by " +"default." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:337 +msgid "Name of tunnel - generally ignored unless inbound.nickname is unset." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:346 +msgid "" +"Priority adjustment for outbound messages.\n" +"Higher is higher priority." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:358 +msgid "" +"Number of tunnels in.\n" +"Limit was increased from 6 to 16 in release 0.9; however, numbers higher " +"than 6 are\n" +"incompatible with older releases." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:371 +msgid "Number of tunnels out" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:380 +msgid "Used for consistent peer ordering across restarts." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:399 +msgid "" +"Any other options prefixed with \"inbound.\" are stored\n" +"in the \"unknown options\" properties of the inbound tunnel pool's " +"settings." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:411 +msgid "" +"Any other options prefixed with \"outbound.\" are stored\n" +"in the \"unknown options\" properties of the outbound tunnel pool's " +"settings." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:423 +msgid "" +"Set to false to disable ever bundling a reply LeaseSet.\n" +"For clients that do not publish their LeaseSet, this option must be true\n" +"for any reply to be possible. \"true\" is also recommended for multihomed" +" servers\n" +"with long connection times." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:430 +msgid "" +"Setting to \"false\" may save significant outbound bandwidth, especially " +"if\n" +"the client is configured with a large number of inbound tunnels (Leases)." +"\n" +"If replies are still required, this may shift the bandwidth burden to\n" +"the far-end client and the floodfill.\n" +"There are several cases where \"false\" may be appropriate:" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:438 +msgid "Unidirectional communication, no reply required" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:439 +msgid "LeaseSet is published and higher reply latency is acceptable" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:440 +msgid "" +"LeaseSet is published, client is a \"server\", all connections are " +"inbound\n" +"so the connecting far-end destination obviously has the leaseset already." +"\n" +"Connections are either short, or it is acceptable for latency on a long-" +"lived\n" +"connection to temporarily increase while the other end re-fetches the " +"LeaseSet\n" +"after expiration.\n" +"HTTP servers may fit these requirements." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:453 +msgid "" +"Note: Large quantity, length, or variance settings may cause significant " +"performance or reliability problems." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:457 +#, python-format +msgid "" +"Note: As of release 0.7.7, option names and values must use UTF-8 " +"encoding.\n" +"This is primarily useful for nicknames.\n" +"Prior to that release, options with multi-byte characters were corrupted." +"\n" +"Since options are encoded in a Mapping,\n" +"all option names and values are limited to 255 bytes (not characters) " +"maximum." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:465 +#: i2p2www/pages/site/docs/protocol/i2cp.html:474 +msgid "Client-side Options" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:466 +msgid "" +"The following options are interpreted on the client side,\n" +"and will be interpreted if passed to the I2PSession via the " +"I2PClient.createSession() call.\n" +"The streaming lib should also pass these options through to I2CP.\n" +"Other implementations may have different defaults." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:490 +#: i2p2www/pages/site/docs/protocol/i2cp.html:590 +#, python-format +msgid "%(num)s minimum" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:492 +msgid "(ms) Idle time required (default 30 minutes)" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:501 +msgid "Close I2P session when idle" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:510 +msgid "Encrypt the lease" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:531 +msgid "Gzip outbound data" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:540 +msgid "For encrypted leasesets. Base 64 SessionKey (44 characters)" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:549 +msgid "" +"Base 64 private key for encryption.\n" +"Optionally preceded by the key type and ':'.\n" +"Only \"ELGAMAL_2048:\" is supported, which is the default.\n" +"I2CP will generate the public key from the private key.\n" +"Use for persistent leaseset keys across restarts." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:564 +msgid "" +"Base 64 private key for signatures.\n" +"Optionally preceded by the key type and ':'.\n" +"DSA_SHA1 is the default.\n" +"Key type must match the signature type in the destination.\n" +"I2CP will generate the public key from the private key.\n" +"Use for persistent leaseset keys across restarts." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:580 +msgid "" +"Guaranteed is disabled;\n" +"None implemented in 0.8.1; None is the default as of 0.9.4" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:592 +msgid "(ms) Idle time required (default 20 minutes, minimum 5 minutes)" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:601 +msgid "Reduce tunnel quantity when idle" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:610 +msgid "Tunnel quantity when reduced (applies to both inbound and outbound)" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:619 +msgid "" +"Connect to the router using SSL.\n" +"If the client is running in the same JVM as a router, this option is " +"ignored, and the client connects to that router internally." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:631 +msgid "" +"Router hostname.\n" +"If the client is running in the same JVM as a router, this option is " +"ignored, and the client connects to that router internally." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:643 +msgid "" +"Router I2CP port.\n" +"If the client is running in the same JVM as a router, this option is " +"ignored, and the client connects to that router internally." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:650 +msgid "" +"Note: All arguments, including numbers, are strings. True/false values " +"are case-insensitive strings.\n" +"Anything other than case-insensitive \"true\" is interpreted as false.\n" +"All option names are case-sensitive." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:656 +msgid "I2CP Payload Data Format and Multiplexing" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:657 +#, python-format +msgid "" +"The end-to-end messages handled by I2CP (i.e. the data sent by the client" +" in a\n" +"SendMessageMessage\n" +"and received by the client in a\n" +"MessagePayloadMessage)\n" +"are gzipped with a standard 10-byte gzip\n" +"header beginning with 0x1F 0x8B 0x08 as\n" +"specified by RFC " +"1952.\n" +"As of release 0.7.1, I2P uses ignored portions of the gzip header to " +"include\n" +"protocol, from-port, and to-port information, thus supporting streaming " +"and\n" +"datagrams on the same destination, and allowing query/response using " +"datagrams\n" +"to work reliably in the presence of multiple channels." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:671 +msgid "" +"The gzip function cannot be completely turned off, however setting " +"i2cp.gzip=false\n" +"turns the gzip effort setting to 0, which may save a little CPU." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:677 +#: i2p2www/pages/site/docs/protocol/i2np.html:32 +msgid "Bytes" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:678 +msgid "Content" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:683 +msgid "Gzip header" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:688 +msgid "Gzip flags" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:693 +msgid "I2P Source port (Gzip mtime)" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:698 +msgid "I2P Destination port (Gzip mtime)" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:703 +msgid "Gzip xflags" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:708 +msgid "I2P Protocol (6 = Streaming, 17 = Datagram, 18 = Raw Datagrams) (Gzip OS)" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:717 +msgid "" +"Data integrity is verified with the standard gzip CRC-32 as\n" +"specified by RFC 1952." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:725 +msgid "" +"The current authorization mechanism could be modified to use hashed " +"passwords." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:729 +msgid "" +"The Signing Private Keys is included in the Create Lease Set message,\n" +"it is not required. Revocation is unimplemented.\n" +"It should be replaced with random data or removed." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2cp.html:735 +#, python-format +msgid "" +"Some improvements may be able to use messages previously defined but not " +"implemented.\n" +"For reference, here is the\n" +"I2CP Protocol Specification Version 0.9\n" +"(PDF) dated August 28, 2003.\n" +"That document also references the\n" +"Common Data Structures Specification Version 0.9." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:2 +msgid "I2P Network Protocol" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:3 +msgid "June 2013" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:6 +msgid "" +"The I2P Network Protocol (I2NP),\n" +"which is sandwiched between I2CP and the various I2P transport protocols," +" manages the\n" +"routing and mixing of messages between routers, as well as the selection " +"of what\n" +"transports to use when communicating with a peer for which there are " +"multiple\n" +"common transports supported." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:14 +msgid "I2NP Definition" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:15 +msgid "" +"I2NP (I2P Network Protocol) messages can be used for one-hop, router-to-" +"router, point-to-point messages.\n" +"By encrypting and wrapping messages in other messages, they can be sent " +"in a secure way\n" +"through multiple hops to the ultimate destination.\n" +"Priority is only used locally at the origin, i.e. when queuing for " +"outbound delivery." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:22 +#, python-format +msgid "" +"The priorities listed below may not be current and are subject to change." +"\n" +"See the OutNetMessage Javadocs\n" +"for the current priority settings.\n" +"Priority queueing implementation may vary." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:29 +msgid "Message Format" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:32 +msgid "Field" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:33 +msgid "Unique ID" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:34 +msgid "Expiration" +msgstr "Skadim" + +#: i2p2www/pages/site/docs/protocol/i2np.html:35 +#: i2p2www/pages/site/docs/protocol/i2np.html:92 +msgid "Payload Length" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:36 +msgid "Checksum" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:37 +msgid "Payload" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:40 +#, python-format +msgid "" +"While the maximum payload size is nominally 64KB, the size is further " +"constrained by the\n" +"method of fragmenting I2NP messages into multiple 1KB tunnel messages as " +"described on\n" +"the tunnel implementation page.\n" +"The maximum number of fragments is 64, and the message may not be " +"perfectly aligned,\n" +"So the message must nominally fit in 63 fragments." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:48 +msgid "" +"The maximum size of an initial fragment is 956 bytes (assuming TUNNEL " +"delivery mode);\n" +"the maximum size of a follow-on fragment is 996 bytes.\n" +"Therefore the maximum size is approximately 956 + (62 * 996) = 62708 " +"bytes, or 61.2 KB." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:54 +msgid "" +"In addition, the transports may have additional restrictions.\n" +"NTCP currently limits to 16KB - 6 = 16378 bytes but this will be " +"increased in a future release.\n" +"The SSU limit is approximately 32 KB." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:60 +msgid "" +"Note that these are not the limits for datagrams that the client sees, as" +" the\n" +"router may bundle a reply leaseset and/or session tags together with the " +"client message\n" +"in a garlic message. The leaseset and tags together may add about 5.5KB.\n" +"Therefore the current datagram limit is about 10KB. This limit will be\n" +"increased in a future release." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:68 +msgid "Message Types" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:69 +msgid "" +"Higher-numbered priority is higher priority.\n" +"The majority of traffic is TunnelDataMessages (priority 400),\n" +"so anything above 400 is essentially high priority, and\n" +"anything below is low priority.\n" +"Note also that many of the messages are generally routed\n" +"through exploratory tunnels, not client tunnels, and\n" +"therefore may not be in the same queue unless the\n" +"first hops happen to be on the same peer." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:80 +msgid "" +"Also, not all message types are sent unencrypted.\n" +"For example, when testing a tunnel, the router wraps a\n" +"DeliveryStatusMessage, which is wrapped in a GarlicMessage,\n" +"which is wrapped in a DataMessage." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:90 +msgid "Message" +msgstr "Mesazh" + +#: i2p2www/pages/site/docs/protocol/i2np.html:91 +msgid "Type" +msgstr "Lloj" + +#: i2p2www/pages/site/docs/protocol/i2np.html:94 +msgid "Comments" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:102 +msgid "May vary" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:108 +msgid "" +"Size is 65 + 32*(number of hashes) where typically, the hashes for\n" +"three floodfill routers are returned." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:117 +msgid "Varies" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:119 +msgid "" +"Priority may vary.\n" +"Size is 898 bytes for a typical 2-lease leaseSet.\n" +"RouterInfo structures are compressed, and size varies; however\n" +"there is a continuing effort to reduce the amount of data published in a " +"RouterInfo\n" +"as we approach release 1.0." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:133 +msgid "Priority may vary on a per-destination basis" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:143 +msgid "" +"Used for message replies, and for testing tunnels - generally wrapped in " +"a GarlicMessage" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:151 +msgid "" +"Generally wrapped in a DataMessage -\n" +"but when unwrapped, given a priority of 100 by the forwarding router" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:178 +msgid "" +"The most common message. Priority for tunnel participants, outbound " +"endpoints, and inbound gateways was\n" +"reduced to 200 as of release 0.6.1.33.\n" +"Outbound gateway messages (i.e. those originated locally) remains at 400." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:198 +msgid "Shorter TunnelBuildMessage as of 0.7.12" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:206 +msgid "Shorter TunnelBuildReplyMessage as of 0.7.12" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:209 +#, python-format +msgid "Others listed in 2003 Spec" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:215 +msgid "Obsolete, Unused" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:219 +msgid "Full Protocol Specification" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:220 +#, python-format +msgid "" +"On the I2NP Specification page.\n" +"See also the\n" +"Common Data Structure Specification " +"page." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/i2np.html:227 +msgid "" +"It isn't clear whether the current priority scheme is generally " +"effective,\n" +"and whether the priorities for various messages should be adjusted " +"further.\n" +"This is a topic for further research, analysis and testing." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:2 +msgid "Protocol Stack" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:7 +#, python-format +msgid "" +"Here is the protocol stack for I2P.\n" +"See also the Index to Technical Documentation." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:12 +msgid "" +"Each of the layers in the stack provides extra capabilities.\n" +"The capabilities are listed below, starting at the bottom of the protocol" +" stack." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:18 +msgid "Internet Layer:" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:20 +msgid "" +"IP: Internet Protocol, allow addressing hosts on the regular internet and" +" routing packets across the internet using best-effort delivery." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:23 +msgid "Transport Layer:" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:25 +msgid "" +"TCP: Transmission Control Protocol, allow reliable, in-order delivery of " +"packets across the internet." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:27 +msgid "" +"UDP: User Datagram Protocol, allow unreliable, out-of-order delivery of " +"packets across the internet." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:30 +msgid "" +"I2P Transport Layer: provide encrypted connections between 2 I2P " +"routers. These are not anonymous yet, this is strictly a hop-to-hop " +"connection.\n" +"Two protocols are implemented to provide these capabilities. NTCP builds " +"on top of TCP, while SSU uses UDP." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:35 +msgid "NIO-based TCP" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:37 +msgid "Secure Semi-reliable UDP" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:40 +msgid "I2P Tunnel Layer: provide full encrypted tunnel connections." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:42 +#, python-format +msgid "" +"Tunnel messages: tunnel messages are " +"large messages containing encrypted I2NP (see below) messages and " +"encrypted instructions for their delivery.\n" +"The encryption is layered. The first hop will decrypt the tunnel message " +"and read a part. Another part can still be encrypted (with another key)," +"\n" +"so it will be forwarded." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:48 +#, python-format +msgid "" +"I2NP messages: I2P Network Protocol messages are" +" used to pass messages through multiple routers. These I2NP messages are " +"combined in tunnel messages." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:53 +msgid "" +"I2P Garlic Layer: provide encrypted and anonymous end-to-end I2P " +"message delivery." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:55 +#, python-format +msgid "" +"I2NP messages: I2P Network Protocol messages are" +" wrapped in each other and used to ensure encryption between two tunnels " +"and are passed along from source to destination, keeping both anonymous." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:61 +msgid "" +"The following layers are strictly speaking no longer part of the I2P " +"Protocol stack, they are not part of the core 'I2P router' functionality." +"\n" +"However, each of these layers adds additional functionality, to allow " +"applications simple and convenient I2P usage." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:67 +msgid "" +"I2P Client Layer: allow any client to use I2P functionality, " +"without requiring the direct use of the router API." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:69 +#, python-format +msgid "" +"I2CP: I2P Client Protocol, allows secure and " +"asynchronous messaging over I2P by communicating messages over the I2CP " +"TCP socket." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:74 +msgid "" +"I2P End-to-end Transport Layer: allow TCP- or UDP-like " +"functionality on top of I2P." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:76 +#, python-format +msgid "" +"Streaming Library: an implementation of " +"TCP-like streams over I2P. This allows easier porting of existing " +"applications to I2P." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:80 +#, python-format +msgid "" +"Datagram Library: an implementation of UDP-" +"like messages over I2P. This allows easier porting of existing " +"applications to I2P." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:85 +msgid "" +"I2P Application Interface Layer: additional (optional) libraries " +"allowing easier implementations on top of I2P." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:93 +msgid "I2P Application Proxy Layer: proxy systems." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:95 +#, python-format +msgid "HTTP Client/Server, IRC Client, SOCKS, Streamr" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:99 +msgid "" +"Finally, what could be considered the 'I2P application layer', is " +"a large number of applications on top of I2P.\n" +"We can order this based on the I2P stack layer they use." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:104 +msgid "Streaming/datagram applications: i2psnark, Syndie, i2phex..." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:105 +msgid "SAM/BOB applications: IMule, i2p-bt, i2prufus, Robert..." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:106 +#, python-format +msgid "" +"Other I2P applications: Syndie, EepGet, plugins..." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:107 +msgid "" +"Regular applications: Jetty, Apache, Monotone, CVS, browsers, " +"e-mail..." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:111 +msgid "I2P Network stack" +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:113 +msgid "Figure 1: The layers in the I2P Network stack." +msgstr "" + +#: i2p2www/pages/site/docs/protocol/index.html:118 +msgid "Note: SAM/SAMv2 can use both the streaming lib and datagrams." +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:2 +msgid "Transport Overview" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:3 +msgid "September 2014" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:6 +msgid "Transports in I2P" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:8 +msgid "" +"A \"transport\" in I2P is a method for direct, point-to-point " +"communication\n" +"between two routers.\n" +"Transports must provide confidentiality and integrity \n" +"against external adversaries while authenticating that the router " +"contacted \n" +"is the one who should receive a given message." +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:16 +msgid "" +"I2P supports multiple transports simultaneously.\n" +"There are two transports currently implemented:" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:21 +#, python-format +msgid "NTCP, a Java New I/O (NIO) TCP transport" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:22 +#, python-format +msgid " SSU, or Secure Semireliable UDP" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:25 +msgid "" +"Each provides a \"connection\" paradigm, with authentication,\n" +"flow control, acknowledgments and retransmission." +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:31 +msgid "Transport Services" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:33 +msgid "The transport subsystem in I2P provides the following services:" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:37 +#, python-format +msgid "" +"Reliable delivery of I2NP messages.\n" +"Transports support I2NP message delivery ONLY.\n" +"They are not general-purpose data pipes." +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:42 +msgid "In-order delivery of messages is NOT guaranteed by all transports." +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:43 +msgid "" +"Maintain a set of router addresses, one or more for each transport,\n" +"that the router publishes as its global contact information (the " +"RouterInfo).\n" +"Each transport may connect using one of these addresses, which may be\n" +"IPv4 or (as of version 0.9.8) IPv6." +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:49 +msgid "Selection of the best transport for each outgoing message" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:50 +msgid "Queueing of outbound messages by priority" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:51 +msgid "" +"Bandwidth limiting, both outbound and inbound, according to router " +"configuration" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:52 +msgid "Setup and teardown of transport connections" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:53 +msgid "Encryption of point-to-point communications" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:54 +msgid "" +"Maintenance of connection limits for each transport, implementation of " +"various thresholds for these limits,\n" +"and communication of threshold status to the router so it may make " +"operational changes based on the status" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:58 +msgid "Firewall port opening using UPnP (Universal Plug and Play)" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:59 +msgid "Cooperative NAT/Firewall traversal" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:60 +msgid "" +"Local IP detection by various methods, including UPnP, inspection of " +"incoming connections, and enumeration of network devices" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:61 +msgid "" +"Coordination of firewall status and local IP, and changes to either, " +"among the transports" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:62 +#: i2p2www/pages/site/docs/transport/ssu.html:36 +msgid "" +"Communication of firewall status and local IP, and changes to either, to " +"the router and the user interface" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:63 +msgid "" +"Determination of a consensus clock, which is used to periodically update " +"the router's clock, as a backup for NTP" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:64 +msgid "" +"Maintenance of status for each peer, including whether it is connected, " +"whether it was recently connected,\n" +"and whether it was reachable in the last attempt" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:68 +msgid "Qualification of valid IP addresses according to a local rule set" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:69 +msgid "" +"Honoring the automated and manual lists of banned peers maintained by the" +" router,\n" +"and refusing outbound and inbound connections to those peers" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:76 +msgid "Transport Addresses" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:78 +msgid "" +"The transport subsystem maintains a set of router addresses, each of " +"which lists a transport method, IP, and port.\n" +"These addresses constitute the advertised contact points, and are " +"published by the router to the network database.\n" +"Addresses may also contain an arbitrary set of additional options." +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:84 +msgid "Each transport method may publish multiple router addresses." +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:88 +msgid "Typical scenarios are:" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:90 +msgid "" +"A router has no published addresses, so it is considered \"hidden\" and " +"cannot receive incoming connections" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:91 +#, python-format +msgid "" +"A router is firewalled, and therefore publishes an SSU address which " +"contains a list of cooperating\n" +"peers or \"introducers\" who will assist in NAT traversal (see the SSU spec for details)" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:95 +msgid "" +"A router is not firewalled or its NAT ports are open; it publishes both " +"NTCP and SSU addresses containing\n" +"directly-accessible IP and ports." +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:101 +msgid "Transport Selection" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:103 +#, python-format +msgid "" +"The transport system delivers I2NP messages " +"only. The transport selected for any message is\n" +"independent of the upper-layer protocols and contents (router or client " +"messages, whether an external application was using\n" +"TCP or UDP to connect to I2P, whether the upper layer was using\n" +"the streaming library\n" +"streaming\n" +"or\n" +"datagrams,\n" +"datagrams\n" +"etc.)." +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:117 +msgid "" +"For each outgoing message, the transport system solicits \"bids\" from " +"each transport.\n" +"The transport bidding the lowest (best) value wins the bid and receives " +"the message for delivery.\n" +"A transport may refuse to bid." +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:123 +msgid "Whether a transport bids, and with what value, depend on numerous factors:" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:127 +msgid "Configuration of transport preferences" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:128 +msgid "Whether the transport is already connected to the peer" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:129 +msgid "" +"The number of current connections compared to various connection limit " +"thresholds" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:130 +msgid "Whether recent connection attempts to the peer have failed" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:131 +msgid "" +"The size of the message, as different transports have different size " +"limits" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:132 +msgid "" +"Whether the peer can accept incoming connections for that transport, as " +"advertised in its RouterInfo" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:133 +msgid "Whether the connection would be indirect (requiring introducers) or direct" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:134 +msgid "The peer's transport preference, as advertised in its RouterInfo" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:137 +msgid "" +"In general, the bid values are selected so that two routers are only " +"connected by a single transport\n" +"at any one time. However, this is not a requirement." +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:144 +msgid "New Transports and Future Work" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:146 +msgid "Additional transports may be developed, including:" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:151 +msgid "A TLS/SSH look-alike transport" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:152 +msgid "" +"An \"indirect\" transport for routers that are not reachable by all other" +" routers (one form of \"restricted routes\")" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:153 +msgid "Tor-compatible pluggable transports" +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:156 +msgid "" +"Work continues on adjusting default connection limits for each transport." +"\n" +"I2P is designed as a \"mesh network\", where it is assumed that any " +"router can connect to any other router.\n" +"This assumption may be broken by routers that have exceeded their " +"connection limits, and by\n" +"routers that are behind restrictive state firewalls (restricted routes)." +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:163 +msgid "" +"The current connection limits are higher for SSU than for NTCP, based on " +"the assumption that\n" +"the memory requirements for an NTCP connection are higher than that for " +"SSU.\n" +"However, as NTCP buffers are partially in the kernel and SSU buffers are " +"on the Java heap,\n" +"that assumption is difficult to verify." +msgstr "" + +#: i2p2www/pages/site/docs/transport/index.html:170 +#, python-format +msgid "" +"Analyze Breaking and Improving Protocol " +"Obfuscation\n" +"and see how transport-layer padding may improve things." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:2 +msgid "NTCP (NIO-based TCP)" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:6 +#, python-format +msgid "" +"NTCP is one of two transports currently " +"implemented in I2P.\n" +"The other is SSU.\n" +"NTCP is a Java NIO-based transport introduced in I2P release 0.6.1.22.\n" +"Java NIO (new I/O) does not suffer from the 1 thread per connection " +"issues of the old TCP transport.\n" +"NTCP-over-IPv6 is supported as of version 0.9.8." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:14 +msgid "" +"By default, NTCP uses the IP/Port\n" +"auto-detected by SSU. When enabled on config.jsp,\n" +"SSU will notify/restart NTCP when the external address changes\n" +"or when the firewall status changes.\n" +"Now you can enable inbound TCP without a static IP or dyndns service." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:22 +msgid "" +"The NTCP code within I2P is relatively lightweight (1/4 the size of the " +"SSU code)\n" +"because it uses the underlying Java TCP transport for reliable delivery." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:28 +#: i2p2www/pages/site/docs/transport/ssu.html:39 +msgid "Router Address Specification" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:30 +#: i2p2www/pages/site/docs/transport/ssu.html:41 +msgid "The following properties are stored in the network database." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:45 +msgid "NTCP Protocol Specification" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:47 +msgid "Standard Message Format" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:48 +msgid "" +"After establishment,\n" +"the NTCP transport sends individual I2NP messages, with a simple " +"checksum.\n" +"The unencrypted message is encoded as follows:" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:66 +msgid "" +"The data is then AES/256/CBC encrypted. The session key for the " +"encryption\n" +"is negotiated during establishment (using Diffie-Hellman 2048 bit).\n" +"The establishment between two routers is implemented in the " +"EstablishState class\n" +"and detailed below.\n" +"The IV for AES/256/CBC encryption is the last 16 bytes of the previous " +"encrypted message." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:74 +msgid "" +"0-15 bytes of padding are required to bring the total message length\n" +"(including the six size and checksum bytes) to a multiple of 16.\n" +"The maximum message size is currently 16 KB.\n" +"Therefore the maximum data size is currently 16 KB - 6, or 16378 bytes.\n" +"The minimum data size is 1." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:82 +msgid "Time Sync Message Format" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:83 +msgid "" +"One special case is a metadata message where the sizeof(data) is 0. In\n" +"that case, the unencrypted message is encoded as:" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:94 +msgid "" +"Total length: 16 bytes. The time sync message is sent at approximately 15" +" minute intervals.\n" +"The message is encrypted just as standard messages are." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:100 +msgid "Checksums" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:101 +#, python-format +msgid "" +"The standard and time sync messages use the Adler-32 checksum\n" +"as defined in the ZLIB Specification." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:107 +#: i2p2www/pages/site/docs/transport/ssu.html:183 +msgid "Idle Timeout" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:108 +#: i2p2www/pages/site/docs/transport/ssu.html:184 +msgid "" +"Idle timeout and connection close is at the discretion of each endpoint " +"and may vary.\n" +"The current implementation lowers the timeout as the number of " +"connections approaches the\n" +"configured maximum, and raises the timeout when the connection count is " +"low.\n" +"The recommended minimum timeout is two minutes or more, and the " +"recommended\n" +"maximum timeout is ten minutes or more." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:117 +msgid "RouterInfo Exchange" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:118 +msgid "" +"After establishment, and every 30-60 minutes thereafter,\n" +"the two routers should generally exchange RouterInfos using a " +"DatabaseStoreMessage.\n" +"However, Alice should check if the first queued message is a " +"DatabaseStoreMessage\n" +"so as not to send a duplicate message; this is often the case when " +"connecting to a floodfill router." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:126 +msgid "Establishment Sequence" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:127 +msgid "" +"In the establish state, there is a 4-phase message sequence to exchange " +"DH keys and signatures.\n" +"In the first two messages there is a 2048-bit Diffie Hellman exchange.\n" +"Then, signatures of the critical data are exchanged to confirm the " +"connection." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:143 +msgid "Legend:" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:144 +msgid "256 byte DH public keys" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:148 +msgid "timestamps (4 bytes, seconds since epoch)" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:149 +msgid "32 byte Session key" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:150 +msgid "2 byte size of Alice identity to follow" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:153 +msgid "DH Key Exchange" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:154 +#, python-format +msgid "" +"The initial 2048-bit DH key exchange\n" +"uses the same shared prime (p) and generator (g) as that used for I2P's\n" +"ElGamal encryption." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:160 +msgid "" +"The DH key exchange consists of a number of steps, displayed below.\n" +"The mapping between these steps and the messages sent between I2P " +"routers,\n" +"is marked in bold." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:166 +msgid "" +"Alice generates a secret integer x. She then calculates X = g^x mod" +" p." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:167 +msgid "Alice sends X to Bob (Message 1)." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:168 +msgid "" +"Bob generates a secret integer y. He then calculates Y = g^y mod " +"p." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:169 +msgid "Bob sends Y to Alice.(Message 2)" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:170 +msgid "Alice can now compute sessionKey = Y^x mod p." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:171 +msgid "Bob can now compute sessionKey = X^y mod p." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:172 +msgid "" +"Both Alice and Bob now have a shared key sessionKey = g^(x*y) mod " +"p." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:174 +#, python-format +msgid "" +"The sessionKey is then used to exchange identities in Message 3 " +"and Message 4.\n" +"The exponent (x and y) length for the DH exchange is documented on the\n" +"cryptography page." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:194 +msgid "Message 1 (Session Request)" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:195 +#, python-format +msgid "" +"This is the DH request. Alice already has Bob's\n" +"Router " +"Identity,\n" +"IP address, and port, as contained in his\n" +"Router Info,\n" +"which was published to the\n" +"network database.\n" +"Alice sends Bob:" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:208 +#: i2p2www/pages/site/docs/transport/ntcp.html:251 +#: i2p2www/pages/site/docs/transport/ntcp.html:333 +#: i2p2www/pages/site/docs/transport/ntcp.html:438 +msgid "Size:" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:210 +msgid "Contents:" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:228 +msgid "256 byte X from Diffie Hellman" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:230 +msgid "SHA256 Hash(X) xored with SHA256 Hash(Bob's `RouterIdentity`)" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:237 +#: i2p2www/pages/site/docs/transport/ntcp.html:320 +#: i2p2www/pages/site/docs/transport/ntcp.html:399 +msgid "Notes:" +msgstr "Shënime:" + +#: i2p2www/pages/site/docs/transport/ntcp.html:238 +msgid "" +"Bob verifies HXxorHI using his own router hash. If it does not verify,\n" +"Alice has contacted the wrong router, and Bob drops the connection." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:244 +msgid "Message 2 (Session Created)" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:245 +msgid "This is the DH reply. Bob sends Alice:" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:253 +#: i2p2www/pages/site/docs/transport/ntcp.html:335 +#: i2p2www/pages/site/docs/transport/ntcp.html:440 +msgid "Unencrypted Contents:" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:275 +#: i2p2www/pages/site/docs/transport/ntcp.html:311 +msgid "256 byte Y from Diffie Hellman" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:277 +msgid "SHA256 Hash(X concatenated with Y)" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:280 +#: i2p2www/pages/site/docs/transport/ntcp.html:365 +msgid "4 byte timestamp (seconds since the epoch)" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:282 +msgid "12 bytes random data" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:286 +#: i2p2www/pages/site/docs/transport/ntcp.html:377 +#: i2p2www/pages/site/docs/transport/ntcp.html:467 +msgid "Encrypted Contents:" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:313 +#, python-format +msgid "" +"48 bytes AES encrypted using the DH " +"session key and\n" +" the last 16 bytes of Y as the IV" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:321 +msgid "" +"Alice may drop the connection if the clock skew with Bob is too high as " +"calculated using tsB." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:326 +msgid "Message 3 (Session Confirm A)" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:327 +msgid "" +"This contains Alice's router identity, and a signature of the critical " +"data. Alice sends Bob:" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:361 +msgid "2 byte size of Alice's router identity to follow (387+)" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:363 +msgid "Alice's 387+ byte `RouterIdentity`" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:367 +#: i2p2www/pages/site/docs/transport/ntcp.html:462 +msgid "0-15 bytes random data" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:369 +msgid "" +"the `Signature` of the following concatenated data:\n" +" X, Y, Bob's `RouterIdentity`, tsA, tsB.\n" +" Alice signs it with the `SigningPrivateKey` associated with " +"the `SigningPublicKey` in her `RouterIdentity`" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:390 +#, python-format +msgid "" +"448 bytes AES encrypted using the DH" +" session key and\n" +" the last 16 bytes of HXxorHI (i.e., the last 16 bytes " +"of message #1) as the IV" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:401 +msgid "Bob verifies the signature, and on failure, drops the connection." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:404 +msgid "" +"Bob may drop the connection if the clock skew with Alice is too high as " +"calculated using tsA." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:407 +msgid "" +"Alice will use the last 16 bytes of the encrypted contents of this " +"message as the IV for the next message." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:431 +msgid "Message 4 (Session Confirm B)" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:432 +msgid "This is a signature of the critical data. Bob sends Alice:" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:456 +msgid "" +"the `Signature` of the following concatenated data:\n" +" X, Y, Alice's `RouterIdentity`, tsA, tsB.\n" +" Bob signs it with the `SigningPrivateKey` associated with " +"the `SigningPublicKey` in his `RouterIdentity`" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:480 +#, python-format +msgid "" +"Data AES encrypted using the DH " +"session key and\n" +" the last 16 bytes of the encrypted contents of message " +"#2 as the IV\n" +" 48 bytes for a DSA signature, may vary for other " +"signature types" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:489 +msgid "Alice verifies the signature, and on failure, drops the connection." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:492 +msgid "" +"Bob will use the last 16 bytes of the encrypted contents of this message " +"as the IV for the next message." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:507 +msgid "After Establishment" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:508 +msgid "" +"The connection is established, and standard or time sync messages may be " +"exchanged.\n" +"All subsequent messages are AES encrypted using the negotiated DH session" +" key.\n" +"Alice will use the last 16 bytes of the encrypted contents of message #3 " +"as the next IV.\n" +"Bob will use the last 16 bytes of the encrypted contents of message #4 as" +" the next IV." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:517 +msgid "Check Connection Message" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:518 +msgid "" +"Alternately, when Bob receives a connection, it could be a\n" +"check connection (perhaps prompted by Bob asking for someone\n" +"to verify his listener).\n" +"Check Connection is not currently used.\n" +"However, for the record, check connections are formatted as follows.\n" +"A check info connection will receive 256 bytes containing:" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:527 +msgid "32 bytes of uninterpreted, ignored data" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:528 +msgid "1 byte size" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:529 +msgid "" +"that many bytes making up the local router's IP address (as reached by " +"the remote side)" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:530 +msgid "2 byte port number that the local router was reached on" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:531 +msgid "" +"4 byte i2p network time as known by the remote side (seconds since the " +"epoch)" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:532 +msgid "uninterpreted padding data, up to byte 223" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:533 +msgid "" +"xor of the local router's identity hash and the SHA256 of bytes 32 " +"through bytes 223" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:536 +msgid "Check connection is completely disabled as of release 0.9.12." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:540 +msgid "Discussion" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:541 +#, python-format +msgid "Now on the NTCP Discussion Page." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:547 +msgid "The maximum message size should be increased to approximately 32 KB." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:551 +msgid "" +"A set of fixed packet sizes may be appropriate to further hide the data \n" +"fragmentation to external adversaries, but the tunnel, garlic, and end to" +" \n" +"end padding should be sufficient for most needs until then.\n" +"However, there is currently no provision for padding beyond the next " +"16-byte boundary,\n" +"to create a limited number of message sizes." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:559 +msgid "" +"Memory utilization (including that of the kernel) for NTCP should be " +"compared to that for SSU." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ntcp.html:563 +msgid "" +"Can the establishment messages be randomly padded somehow, to frustrate\n" +"identification of I2P traffic based on initial packet sizes?" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:2 +msgid "Secure Semireliable UDP" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:7 +#, python-format +msgid "" +"SSU (also called \"UDP\" in much of the I2P documentation and user " +"interfaces)\n" +"is one of two transports currently " +"implemented in I2P.\n" +"The other is NTCP." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:13 +msgid "" +"SSU is the newer of the two transports,\n" +"introduced in I2P release 0.6.\n" +"In a standard I2P installation, the router uses both NTCP and SSU for " +"outbound connections.\n" +"SSU-over-IPv6 is supported as of version 0.9.8." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:20 +msgid "" +"SSU is called \"semireliable\" because it will repeatedly retransmit " +"unacknowledged messages,\n" +"but only up to a maximum number of times. After that, the message is " +"dropped." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:25 +msgid "SSU Services" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:27 +msgid "" +"Like the NTCP transport, SSU provides reliable, encrypted, connection-" +"oriented, point-to-point data transport.\n" +"Unique to SSU, it also provides IP detection and NAT traversal services, " +"including:" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:33 +msgid "" +"Cooperative NAT/Firewall traversal using introducers" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:34 +msgid "" +"Local IP detection by inspection of incoming packets and peer testing" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:35 +msgid "" +"Communication of firewall status and local IP, and changes to either to " +"NTCP" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:47 +#: i2p2www/pages/site/docs/transport/ssu.html:60 +#: i2p2www/pages/site/docs/transport/ssu.html:61 +#: i2p2www/pages/site/docs/transport/ssu.html:63 +#: i2p2www/pages/site/docs/transport/ssu.html:66 +#: i2p2www/pages/site/docs/transport/ssu.html:67 +#: i2p2www/pages/site/docs/transport/ssu.html:73 +msgid "See below" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:80 +msgid "Protocol Details" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:82 +msgid "Congestion control" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:84 +msgid "" +"SSU's need for only semireliable delivery, TCP-friendly operation,\n" +"and the capacity for high throughput allows a great deal of latitude in\n" +"congestion control. The congestion control algorithm outlined below is\n" +"meant to be both efficient in bandwidth as well as simple to implement." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:91 +msgid "" +"Packets are scheduled according to the router's policy, taking care\n" +"not to exceed the router's outbound capacity or to exceed the measured \n" +"capacity of the remote peer. The measured capacity operates along the\n" +"lines of TCP's slow start and congestion avoidance, with additive " +"increases\n" +"to the sending capacity and multiplicative decreases in face of " +"congestion.\n" +"Unlike for TCP, routers may give up on some messages after\n" +"a given period or number of retransmissions while continuing to transmit" +" \n" +"other messages." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:102 +msgid "" +"The congestion detection techniques vary from TCP as well, since each \n" +"message has its own unique and nonsequential identifier, and each message" +"\n" +"has a limited size - at most, 32KB. To efficiently transmit this " +"feedback\n" +"to the sender, the receiver periodically includes a list of fully ACKed \n" +"message identifiers and may also include bitfields for partially received" +"\n" +"messages, where each bit represents the reception of a fragment. If \n" +"duplicate fragments arrive, the message should be ACKed again, or if the\n" +"message has still not been fully received, the bitfield should be \n" +"retransmitted with any new updates." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:114 +msgid "" +"The current implementation does not pad the packets to\n" +"any particular size, but instead just places a single message fragment " +"into\n" +"a packet and sends it off (careful not to exceed the MTU)." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:121 +msgid "" +"As of router version 0.8.12,\n" +"two MTU values are used for IPv4: 620 and 1484.\n" +"The MTU value is adjusted based on the percentage of packets that are " +"retransmitted." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:127 +msgid "" +"For both MTU values, it is desirable that (MTU % 16) == 12, so that\n" +"the payload portion after the 28-byte IP/UDP header is a multiple of\n" +"16 bytes, for encryption purposes." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:133 +msgid "" +"For the small MTU value, it is desirable to pack a 2646-byte\n" +"Variable Tunnel Build Message efficiently into multiple packets;\n" +"with a 620-byte MTU, it fits into 5 packets with nicely." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:139 +msgid "" +"Based on measurements, 1492 fits nearly all reasonably small I2NP " +"messages\n" +"(larger I2NP messages may be up to 1900 to 4500 bytes, which isn't going " +"to fit\n" +"into a live network MTU anyway)." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:145 +msgid "" +"The MTU values were 608 and 1492 for releases 0.8.9 - 0.8.11.\n" +"The large MTU was 1350 prior to release 0.8.9." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:150 +msgid "" +"The maximum receive packet size\n" +"is 1571 bytes as of release 0.8.12.\n" +"For releases 0.8.9 - 0.8.11 it was 1535 bytes.\n" +"Prior to release 0.8.9 it was 2048 bytes." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:157 +msgid "" +"As of release 0.9.2, if a router's network interface MTU is less than " +"1484,\n" +"it will publish that in the network database, and other routers should\n" +"honor that when a connection is established." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:163 +msgid "" +"For IPv6, the minimum MTU is 1280. The IPv6 IP/UDP header is 48 bytes,\n" +"so we use an MTU where (MTN % 16 == 0), which is true for 1280.\n" +"The maximum IPv6 MTU is 1488.\n" +" (max was 1472 prior to version 0.9.28)." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:170 +msgid "Message Size Limits" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:171 +msgid "" +"While the maximum message size is nominally 32KB, the practical\n" +"limit differs. The protocol limits the number of fragments to 7 bits, or " +"128.\n" +"The current implementation, however, limits each message to a maximum of " +"64 fragments,\n" +"which is sufficient for 64 * 534 = 33.3 KB when using the 608 MTU.\n" +"Due to overhead for bundled LeaseSets and session keys, the practical " +"limit\n" +"at the application level is about 6KB lower, or about 26KB.\n" +"Further work is necessary to raise the UDP transport limit above 32KB.\n" +"For connections using the larger MTU, larger messages are possible." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:193 +msgid "Keys" +msgstr "Kyçe" + +#: i2p2www/pages/site/docs/transport/ssu.html:195 +msgid "" +"All encryption used is AES256/CBC with 32 byte keys and 16 byte IVs.\n" +"When Alice originates a session with Bob,\n" +"the MAC and session keys are negotiated as part of the DH exchange, and " +"are then used\n" +"for the HMAC and encryption, respectively. During the DH exchange, \n" +"Bob's publicly knowable introKey is used for the MAC and encryption." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:203 +msgid "" +"Both the initial message and the subsequent\n" +"reply use the introKey of the responder (Bob) - the responder does \n" +"not need to know the introKey of the requester (Alice). The DSA \n" +"signing key used by Bob should already be known to Alice when she \n" +"contacts him, though Alice's DSA key may not already be known by \n" +"Bob." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:212 +msgid "" +"Upon receiving a message, the receiver checks the \"from\" IP address and" +" port\n" +"with all established sessions - if there are matches,\n" +"that session's MAC keys are tested in the HMAC. If none\n" +"of those verify or if there are no matching IP addresses, the \n" +"receiver tries their introKey in the MAC. If that does not verify,\n" +"the packet is dropped. If it does verify, it is interpreted \n" +"according to the message type, though if the receiver is overloaded,\n" +"it may be dropped anyway." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:223 +msgid "" +"If Alice and Bob have an established session, but Alice loses the \n" +"keys for some reason and she wants to contact Bob, she may at any \n" +"time simply establish a new session through the SessionRequest and\n" +"related messages. If Bob has lost the key but Alice does not know\n" +"that, she will first attempt to prod him to reply, by sending a \n" +"DataMessage with the wantReply flag set, and if Bob continually \n" +"fails to reply, she will assume the key is lost and reestablish a \n" +"new one." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:234 +#, python-format +msgid "" +"For the DH key agreement,\n" +"RFC3526 2048bit\n" +"MODP group (#14) is used:" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:244 +#, python-format +msgid "" +"These are the same p and g used for I2P's\n" +"ElGamal encryption." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:249 +msgid "Replay prevention" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:251 +msgid "" +"Replay prevention at the SSU layer occurs by rejecting packets \n" +"with exceedingly old timestamps or those which reuse an IV. To\n" +"detect duplicate IVs, a sequence of Bloom filters are employed to\n" +"\"decay\" periodically so that only recently added IVs are detected." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:258 +msgid "" +"The messageIds used in DataMessages are defined at layers above\n" +"the SSU transport and are passed through transparently. These IDs\n" +"are not in any particular order - in fact, they are likely to be\n" +"entirely random. The SSU layer makes no attempt at messageId \n" +"replay prevention - higher layers should take that into account." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:266 +msgid "Addressing" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:268 +msgid "" +"To contact an SSU peer, one of two sets of information is necessary:\n" +"a direct address, for when the peer is publicly reachable, or an\n" +"indirect address, for using a third party to introduce the peer.\n" +"There is no restriction on the number of addresses a peer may have." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:280 +msgid "" +"Each of the addresses may also expose a series of options - special\n" +"capabilities of that particular peer. For a list of available\n" +"capabilities, see below." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:286 +#, python-format +msgid "" +"The addresses, options, and capabilities are published in the network database." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:291 +msgid "Direct Session Establishment" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:292 +msgid "" +"Direct session establishment is used when no third party is required for " +"NAT traversal.\n" +"The message sequence is as follows:" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:297 +msgid "Connection establishment (direct)" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:298 +msgid "" +"Alice connects directly to Bob.\n" +"IPv6 is supported as of version 0.9.8." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:313 +#, python-format +msgid "" +"After the SessionConfirmed message is received, Bob sends a small\n" +"DeliveryStatus message\n" +"as a confirmation.\n" +"In this message, the 4-byte message ID is set to a random number, and the" +"\n" +"8-byte \"arrival time\" is set to the current network-wide ID, which is 2" +"\n" +"(i.e. 0x0000000000000002)." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:322 +#, python-format +msgid "" +"After the status message is sent, the peers usually exchange\n" +"DatabaseStore messages\n" +"containing their\n" +"RouterInfos,\n" +"however, this is not required." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:331 +msgid "" +"It does not appear that the type of the status message or its contents " +"matters.\n" +"It was originally added becasue the DatabaseStore message was delayed\n" +"several seconds; since the store is now sent immediately, perhaps\n" +"the status message can be eliminated." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:340 +msgid "" +"Introduction keys are delivered through an external channel \n" +"(the network database, where they are identical to the router Hash for " +"now)\n" +"and must be used when establishing a session key. For the indirect\n" +"address, the peer must first contact the relayhost and ask them for\n" +"an introduction to the peer known at that relayhost under the given\n" +"tag. If possible, the relayhost sends a message to the addressed\n" +"peer telling them to contact the requesting peer, and also gives \n" +"the requesting peer the IP and port on which the addressed peer is\n" +"located. In addition, the peer establishing the connection must \n" +"already know the public keys of the peer they are connecting to (but\n" +"not necessary to any intermediary relay peer)." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:354 +msgid "" +"Indirect session establishment by means of a third party introduction\n" +"is necessary for efficient NAT traversal. Charlie, a router behind a\n" +"NAT or firewall which does not allow unsolicited inbound UDP packets,\n" +"first contacts a few peers, choosing some to serve as introducers. Each\n" +"of these peers (Bob, Bill, Betty, etc) provide Charlie with an " +"introduction\n" +"tag - a 4 byte random number - which he then makes available to the " +"public\n" +"as methods of contacting him. Alice, a router who has Charlie's " +"published\n" +"contact methods, first sends a RelayRequest packet to one or more of the" +" \n" +"introducers, asking each to introduce her to Charlie (offering the \n" +"introduction tag to identify Charlie). Bob then forwards a RelayIntro\n" +"packet to Charlie including Alice's public IP and port number, then sends" +"\n" +"Alice back a RelayResponse packet containing Charlie's public IP and port" +"\n" +"number. When Charlie receives the RelayIntro packet, he sends off a " +"small\n" +"random packet to Alice's IP and port (poking a hole in his NAT/firewall)," +"\n" +"and when Alice receives Bob's RelayResponse packet, she begins a new \n" +"full direction session establishment with the specified IP and port." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:381 +msgid "Connection establishment (indirect using an introducer)" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:383 +msgid "Alice first connects to introducer Bob, who relays the request to Charlie." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:401 +msgid "" +"After the hole punch, the session is established between Alice and " +"Charlie as in a direct establishment." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:413 +msgid "Peer testing" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:415 +msgid "" +"The automation of collaborative reachability testing for peers is\n" +"enabled by a sequence of PeerTest messages. With its proper \n" +"execution, a peer will be able to determine their own reachability\n" +"and may update its behavior accordingly. The testing process is \n" +"quite simple:" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:434 +msgid "" +"Each of the PeerTest messages carry a nonce identifying the\n" +"test series itself, as initialized by Alice. If Alice doesn't \n" +"get a particular message that she expects, she will retransmit\n" +"accordingly, and based upon the data received or the messages\n" +"missing, she will know her reachability. The various end states\n" +"that may be reached are as follows:" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:444 +msgid "" +"If she doesn't receive a response from Bob, she will retransmit\n" +"up to a certain number of times, but if no response ever arrives,\n" +"she will know that her firewall or NAT is somehow misconfigured, \n" +"rejecting all inbound UDP packets even in direct response to an\n" +"outbound packet. Alternately, Bob may be down or unable to get \n" +"Charlie to reply." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:453 +msgid "" +"If Alice doesn't receive a PeerTest message with the \n" +"expected nonce from a third party (Charlie), she will retransmit\n" +"her initial request to Bob up to a certain number of times, even\n" +"if she has received Bob's reply already. If Charlie's first message \n" +"still doesn't get through but Bob's does, she knows that she is\n" +"behind a NAT or firewall that is rejecting unsolicited connection\n" +"attempts and that port forwarding is not operating properly (the\n" +"IP and port that Bob offered up should be forwarded)." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:464 +msgid "" +"If Alice receives Bob's PeerTest message and both of Charlie's\n" +"PeerTest messages but the enclosed IP and port numbers in Bob's \n" +"and Charlie's second messages don't match, she knows that she is \n" +"behind a symmetric NAT, rewriting all of her outbound packets with\n" +"different 'from' ports for each peer contacted. She will need to\n" +"explicitly forward a port and always have that port exposed for \n" +"remote connectivity, ignoring further port discovery." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:474 +msgid "" +"If Alice receives Charlie's first message but not his second,\n" +"she will retransmit her PeerTest message to Charlie up to a \n" +"certain number of times, but if no response is received she knows\n" +"that Charlie is either confused or no longer online." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:482 +msgid "" +"Alice should choose Bob arbitrarily from known peers who seem\n" +"to be capable of participating in peer tests. Bob in turn should\n" +"choose Charlie arbitrarily from peers that he knows who seem to be\n" +"capable of participating in peer tests and who are on a different\n" +"IP from both Bob and Alice. If the first error condition occurs\n" +"(Alice doesn't get PeerTest messages from Bob), Alice may decide\n" +"to designate a new peer as Bob and try again with a different nonce." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:492 +msgid "" +"Alice's introduction key is included in all of the PeerTest \n" +"messages so that she doesn't need to already have an established\n" +"session with Bob and so that Charlie can contact her without knowing\n" +"any additional information. Alice may go on to establish a session\n" +"with either Bob or Charlie, but it is not required." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:520 +msgid "Transmission window, ACKs and Retransmissions" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:521 +#, python-format +msgid "" +"The DATA message may contain ACKs of full messages and\n" +"partial ACKs of individual fragments of a message. See\n" +"the data message section of\n" +"the protocol specification page\n" +"for details." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:529 +#, python-format +msgid "" +"The details of windowing, ACK, and retransmission strategies are not " +"specified\n" +"here. See the Java code for the current implementation.\n" +"During the establishment phase, and for peer testing, routers\n" +"should implement exponential backoff for retransmission.\n" +"For an established connection, routers should implement\n" +"an adjustable transmission window, RTT estimate and timeout, similar to " +"TCP\n" +"or streaming.\n" +"See the code for initial, min and max parameters." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:541 +msgid "Security" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:542 +msgid "" +"UDP source addresses may, of course, be spoofed.\n" +"Additionally, the IPs and ports contained inside specific\n" +"SSU messages (RelayRequest, RelayResponse, RelayIntro, PeerTest)\n" +"may not be legitimate.\n" +"Also, certain actions and responses may need to be rate-limited." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:550 +msgid "" +"The details of validation are not specified\n" +"here. Implementers should add defenses where appropriate." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:556 +msgid "Peer capabilities" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:560 +msgid "" +"If the peer address contains the 'B' capability, that means \n" +"they are willing and able to participate in peer tests as\n" +"a 'Bob' or 'Charlie'." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:572 +msgid "" +"If the peer address contains the 'C' capability, that means\n" +"they are willing and able to serve as an introducer - serving\n" +"as a Bob for an otherwise unreachable Alice." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:581 +msgid "" +"Analysis of current SSU performance, including assessment of window size " +"adjustment\n" +"and other parameters, and adjustment of the protocol implementation to " +"improve\n" +"performance, is a topic for future work." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:587 +msgid "" +"The current implementation repeatedly sends acknowledgments for the same " +"packets,\n" +"which unnecessarily increases overhead." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:592 +msgid "" +"The default small MTU value of 620 should be analyzed and possibly " +"increased.\n" +"The current MTU adjustment strategy should be evaluated.\n" +"Does a streaming lib 1730-byte packet fit in 3 small SSU packets? " +"Probably not." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:598 +msgid "The protocol should be extended to exchange MTUs during the setup." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:602 +msgid "Rekeying is currently unimplemented and may never be." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:606 +msgid "" +"The potential use of the 'challenge' fields in RelayIntro and " +"RelayResponse,\n" +"and use of the padding field in SessionRequest and SessionCreated, is " +"undocumented." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:611 +msgid "" +"Instead of a single fragment per packet, a more efficient\n" +"strategy may be to bundle multiple message fragments into the same " +"packet,\n" +"so long as it doesn't exceed the MTU." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:617 +msgid "" +"A set of fixed packet sizes may be appropriate to further hide the data \n" +"fragmentation to external adversaries, but the tunnel, garlic, and end to" +" \n" +"end padding should be sufficient for most needs until then." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:623 +msgid "" +"Why are introduction keys the same as the router hash, should it be " +"changed, would there be any benefit?" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:627 +msgid "Capacities appear to be unused." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:631 +msgid "" +"Signed-on times in SessionCreated and SessionConfirmed appear to be " +"unused or unverified." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:636 +msgid "Implementation Diagram" +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:637 +msgid "" +"This diagram\n" +"should accurately reflect the current implementation, however there may " +"be small differences." +msgstr "" + +#: i2p2www/pages/site/docs/transport/ssu.html:645 +msgid "Now on the SSU specification page" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:2 +msgid "Tunnel Implementation" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:3 +msgid "October 2010" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:7 +msgid "This page documents the current tunnel implementation." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:9 +msgid "Tunnel overview" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:11 +msgid "" +"Within I2P, messages are passed in one direction through a virtual\n" +"tunnel of peers, using whatever means are available to pass the \n" +"message on to the next hop. Messages arrive at the tunnel's \n" +"gateway, get bundled up and/or fragmented into fixed-size tunnel " +"messages, \n" +"and are forwarded on to the next hop in the tunnel, which processes and " +"verifies\n" +"the validity of the message and sends it on to the next hop, and so on, " +"until\n" +"it reaches the tunnel endpoint. That endpoint takes the messages\n" +"bundled up by the gateway and forwards them as instructed - either\n" +"to another router, to another tunnel on another router, or locally." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:23 +msgid "" +"Tunnels all work the same, but can be segmented into two different\n" +"groups - inbound tunnels and outbound tunnels. The inbound tunnels\n" +"have an untrusted gateway which passes messages down towards the \n" +"tunnel creator, which serves as the tunnel endpoint. For outbound \n" +"tunnels, the tunnel creator serves as the gateway, passing messages\n" +"out to the remote endpoint." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:32 +msgid "" +"The tunnel's creator selects exactly which peers will participate\n" +"in the tunnel, and provides each with the necessary configuration\n" +"data. They may have any number of hops.\n" +"It is the intent to make\n" +"it hard for either participants or third parties to determine the length " +"of \n" +"a tunnel, or even for colluding participants to determine whether they " +"are a\n" +"part of the same tunnel at all (barring the situation where colluding " +"peers are\n" +"next to each other in the tunnel)." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:43 +msgid "" +"In practice, a series of tunnel pools are used for different\n" +"purposes - each local client destination has its own set of inbound\n" +"tunnels and outbound tunnels, configured to meet its anonymity and\n" +"performance needs. In addition, the router itself maintains a series\n" +"of pools for participating in the network database and for managing\n" +"the tunnels themselves." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:52 +msgid "" +"I2P is an inherently packet switched network, even with these \n" +"tunnels, allowing it to take advantage of multiple tunnels running \n" +"in parallel, increasing resilience and balancing load. Outside of\n" +"the core I2P layer, there is an optional end to end streaming library \n" +"available for client applications, exposing TCP-esque operation,\n" +"including message reordering, retransmission, congestion control, etc." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:61 +#, python-format +msgid "" +"An overview of I2P tunnel terminology is\n" +"on the tunnel overview page." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:66 +msgid "Tunnel Operation (Message Processing)" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:69 +#, python-format +msgid "" +"After a tunnel is built, I2NP messages are " +"processed and passed through it.\n" +"Tunnel operation has four distinct processes, taken on by various \n" +"peers in the tunnel." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:75 +msgid "" +"First, the tunnel gateway accumulates a number\n" +"of I2NP messages and preprocesses them into tunnel messages for\n" +"delivery." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:80 +msgid "" +"Next, that gateway encrypts that preprocessed data, then\n" +"forwards it to the first hop." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:84 +msgid "" +"That peer, and subsequent tunnel \n" +"participants, unwrap a layer of the encryption, verifying that it isn't\n" +"a duplicate, then forward it on to the next peer." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:89 +msgid "" +"Eventually, the tunnel messages arrive at the endpoint where the I2NP " +"messages\n" +"originally bundled by the gateway are reassembled and forwarded on as \n" +"requested." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:96 +msgid "" +"Intermediate tunnel participants do not know whether they are in an\n" +"inbound or an outbound tunnel; they always \"encrypt\" for the next hop.\n" +"Therefore, we take advantage of symmetric AES encryption\n" +"to \"decrypt\" at the outbound tunnel gateway,\n" +"so that the plaintext is revealed at the outbound endpoint." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:110 +msgid "Role" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:111 +msgid "Preprocessing" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:112 +msgid "Encryption Operation" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:113 +msgid "Postprocessing" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:117 +msgid "Outbound Gateway (Creator)" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:118 +#: i2p2www/pages/site/docs/tunnels/implementation.html:141 +msgid "Fragment, Batch, and Pad" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:119 +msgid "Iteratively encrypt (using decryption operations)" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:120 +#: i2p2www/pages/site/docs/tunnels/implementation.html:127 +#: i2p2www/pages/site/docs/tunnels/implementation.html:143 +#: i2p2www/pages/site/docs/tunnels/implementation.html:150 +msgid "Forward to next hop" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:124 +#: i2p2www/pages/site/docs/tunnels/implementation.html:147 +msgid "Participant" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:126 +msgid "Decrypt (using an encryption operation)" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:133 +msgid "Decrypt (using an encryption operation) to reveal plaintext tunnel message" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:134 +msgid "Reassemble Fragments, Forward as instructed to Inbound Gateway or Router" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:142 +#: i2p2www/pages/site/docs/tunnels/implementation.html:149 +msgid "Encrypt" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:154 +msgid "Inbound Endpoint (Creator)" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:156 +msgid "Iteratively decrypt to reveal plaintext tunnel message" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:157 +msgid "Reassemble Fragments, Receive data" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:163 +msgid "Gateway Processing" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:164 +msgid "Message Preprocessing" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:166 +#, python-format +msgid "" +"A tunnel gateway's function is to fragment and pack\n" +"I2NP messages into fixed-size\n" +"tunnel messages\n" +"and encrypt the tunnel messages.\n" +"Tunnel messages contain the following:" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:174 +msgid "A 4 byte Tunnel ID" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:175 +msgid "A 16 byte IV (initialization vector)" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:176 +msgid "A checksum" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:177 +msgid "Padding, if necessary" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:178 +msgid "One or more { delivery instruction, I2NP message fragment } pairs" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:181 +msgid "" +"Tunnel IDs are 4 byte numbers used at each hop - participants know what\n" +"tunnel ID to listen for messages with and what tunnel ID they should be " +"forwarded\n" +"on as to the next hop, and each hop chooses the tunnel ID which they " +"receive messages\n" +"on. Tunnels themselves are short-lived (10 minutes).\n" +"Even if subsequent tunnels are built using the same sequence of \n" +"peers, each hop's tunnel ID will change." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:190 +msgid "" +"To prevent adversaries from tagging the messages along the path by " +"adjusting\n" +"the message size, all tunnel messages are a fixed 1024 bytes in size. To" +" accommodate \n" +"larger I2NP messages as well as to support smaller ones more efficiently," +" the\n" +"gateway splits up the larger I2NP messages into fragments contained " +"within each\n" +"tunnel message. The endpoint will attempt to rebuild the I2NP message " +"from the\n" +"fragments for a short period of time, but will discard them as necessary." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:199 +#, python-format +msgid "" +"Details are in the\n" +"tunnel message specification." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:205 +msgid "Gateway Encryption" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:207 +msgid "" +"After the preprocessing of messages into a padded payload, the gateway " +"builds\n" +"a random 16 byte IV value, iteratively encrypting it and the tunnel " +"message as\n" +"necessary, and forwards the tuple {tunnelID, IV, encrypted tunnel " +"message} to the next hop." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:213 +msgid "" +"How encryption at the gateway is done depends on whether the tunnel is an" +"\n" +"inbound or an outbound tunnel. For inbound tunnels, they simply select a" +" random\n" +"IV, postprocessing and updating it to generate the IV for the gateway and" +" using \n" +"that IV along side their own layer key to encrypt the preprocessed data." +" For outbound \n" +"tunnels they must iteratively decrypt the (unencrypted) IV and " +"preprocessed \n" +"data with the IV and layer keys for all hops in the tunnel. The result " +"of the outbound\n" +"tunnel encryption is that when each peer encrypts it, the endpoint will " +"recover \n" +"the initial preprocessed data." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:225 +msgid "Participant Processing" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:227 +msgid "" +"When a peer receives a tunnel message, it checks that the message came " +"from\n" +"the same previous hop as before (initialized when the first message comes" +" through\n" +"the tunnel). If the previous peer is a different router, or if the " +"message has\n" +"already been seen, the message is dropped. The participant then encrypts" +" the \n" +"received IV with AES256/ECB using their IV key to determine the current " +"IV, uses \n" +"that IV with the participant's layer key to encrypt the data, encrypts " +"the \n" +"current IV with AES256/ECB using their IV key again, then forwards the " +"tuple \n" +"{nextTunnelId, nextIV, encryptedData} to the next hop. This double " +"encryption\n" +"of the IV (both before and after use) help address a certain class of\n" +"confirmation attacks." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:243 +msgid "" +"Duplicate message detection is handled by a decaying Bloom filter on " +"message\n" +"IVs. Each router maintains a single Bloom filter to contain the XOR of " +"the IV and\n" +"the first block of the message received for all of the tunnels it is " +"participating\n" +"in, modified to drop seen entries after 10-20 minutes (when the tunnels " +"will have\n" +"expired). The size of the bloom filter and the parameters used are " +"sufficient to\n" +"more than saturate the router's network connection with a negligible " +"chance of \n" +"false positive. The unique value fed into the Bloom filter is the XOR of" +" the IV \n" +"and the first block so as to prevent nonsequential colluding peers in the" +" tunnel \n" +"from tagging a message by resending it with the IV and first block " +"switched." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:256 +msgid "Endpoint Processing" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:258 +msgid "" +"After receiving and validating a tunnel message at the last hop in the " +"tunnel,\n" +"how the endpoint recovers the data encoded by the gateway depends upon " +"whether \n" +"the tunnel is an inbound or an outbound tunnel. For outbound tunnels, " +"the \n" +"endpoint encrypts the message with its layer key just like any other " +"participant, \n" +"exposing the preprocessed data. For inbound tunnels, the endpoint is " +"also the \n" +"tunnel creator so they can merely iteratively decrypt the IV and message," +" using the \n" +"layer and IV keys of each step in reverse order." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:268 +msgid "" +"At this point, the tunnel endpoint has the preprocessed data sent by the " +"gateway,\n" +"which it may then parse out into the included I2NP messages and forwards " +"them as\n" +"requested in their delivery instructions." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:275 +msgid "Tunnel Building" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:277 +msgid "" +"When building a tunnel, the creator must send a request with the " +"necessary\n" +"configuration data to each of the hops and wait for all of them to agree " +"before\n" +"enabling the tunnel. The requests are encrypted so that only the peers " +"who need\n" +"to know a piece of information (such as the tunnel layer or IV key) has " +"that\n" +"data. In addition, only the tunnel creator will have access to the " +"peer's\n" +"reply. There are three important dimensions to keep in mind when " +"producing\n" +"the tunnels: what peers are used (and where), how the requests are sent " +"(and \n" +"replies received), and how they are maintained." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:291 +msgid "" +"Beyond the two types of tunnels - inbound and outbound - there are two " +"styles\n" +"of peer selection used for different tunnels - exploratory and client.\n" +"Exploratory tunnels are used for both network database maintenance and " +"tunnel\n" +"maintenance, while client tunnels are used for end to end client messages." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:299 +msgid "Exploratory tunnel peer selection" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:301 +msgid "" +"Exploratory tunnels are built out of a random selection of peers from a " +"subset\n" +"of the network. The particular subset varies on the local router and on " +"what their\n" +"tunnel routing needs are. In general, the exploratory tunnels are built " +"out of\n" +"randomly selected peers who are in the peer's \"not failing but active\" " +"profile\n" +"category. The secondary purpose of the tunnels, beyond merely tunnel " +"routing,\n" +"is to find underutilized high capacity peers so that they can be promoted" +" for\n" +"use in client tunnels." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:311 +#, python-format +msgid "" +"Exploratory peer selection is discussed further on the\n" +"Peer Profiling and Selection page." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:317 +msgid "Client tunnel peer selection" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:319 +msgid "" +"Client tunnels are built with a more stringent set of requirements - the " +"local\n" +"router will select peers out of its \"fast and high capacity\" profile " +"category so\n" +"that performance and reliability will meet the needs of the client " +"application.\n" +"However, there are several important details beyond that basic selection " +"that \n" +"should be adhered to, depending upon the client's anonymity needs." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:327 +#, python-format +msgid "" +"Client peer selection is discussed further on the\n" +"Peer Profiling and Selection page." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:332 +msgid "Peer Ordering within Tunnels" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:334 +#, python-format +msgid "" +"Peers are ordered within tunnels to deal with the\n" +"predecessor attack\n" +"(2008 update)." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:341 +msgid "" +"To frustrate the predecessor \n" +"attack, the tunnel selection keeps the peers selected in a strict order -" +"\n" +"if A, B, and C are in a tunnel for a particular tunnel pool, the hop " +"after A is always B, and the hop after\n" +"B is always C." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:348 +msgid "" +"Ordering is implemented by generating a random 32-byte key for each\n" +"tunnel pool at startup.\n" +"Peers should not be able to guess the ordering, or an attacker could\n" +"craft two router hashes far apart to maximize the chance of being at both" +"\n" +"ends of a tunnel.\n" +"Peers are sorted by XOR distance of the\n" +"SHA256 Hash of (the peer's hash concatenated with the random key) from " +"the random key" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:363 +msgid "" +"Because each tunnel pool uses a different random key, ordering is " +"consistent\n" +"within a single pool but not between different pools.\n" +"New keys are generated at each router restart." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:370 +msgid "Request delivery" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:372 +#, python-format +msgid "" +"A multi-hop tunnel is built using a single build message which is " +"repeatedly\n" +"decrypted and forwarded. In the terminology of\n" +"Hashing it out in Public,\n" +"this is \"non-interactive\" telescopic tunnel building." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:379 +#, python-format +msgid "" +"This tunnel request preparation, delivery, and response method is\n" +"designed to reduce the number of\n" +"predecessors exposed, cuts the number of messages transmitted, verifies " +"proper\n" +"connectivity, and avoids the message counting attack of traditional " +"telescopic\n" +"tunnel creation.\n" +"(This method, which sends messages to extend a tunnel through the " +"already-established\n" +"part of the tunnel, is termed \"interactive\" telescopic tunnel building " +"in\n" +"the \"Hashing it out\" paper.)" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:390 +#, python-format +msgid "" +"The details of tunnel request and response messages, and their " +"encryption,\n" +"are specified here." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:395 +msgid "" +"Peers may reject tunnel creation requests for a variety of reasons, " +"though\n" +"a series of four increasingly severe rejections are known: probabilistic " +"rejection\n" +"(due to approaching the router's capacity, or in response to a flood of " +"requests), \n" +"transient overload, bandwidth overload, and critical failure. When " +"received, \n" +"those four are interpreted by the tunnel creator to help adjust their " +"profile of\n" +"the router in question." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:404 +#, python-format +msgid "" +"For more information on peer profiling, see the\n" +"Peer Profiling and Selection page." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:410 +msgid "Tunnel Pools" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:412 +#, python-format +msgid "" +"To allow efficient operation, the router maintains a series of tunnel " +"pools,\n" +"each managing a group of tunnels used for a specific purpose with their " +"own\n" +"configuration. When a tunnel is needed for that purpose, the router " +"selects one\n" +"out of the appropriate pool at random. Overall, there are two " +"exploratory tunnel\n" +"pools - one inbound and one outbound - each using the router's default " +"configuration.\n" +"In addition, there is a pair of pools for each local destination -\n" +"one inbound and one outbound tunnel pool. Those pools use the " +"configuration specified\n" +"when the local destination connects to the router via I2CP, or the router's defaults if\n" +"not specified." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:424 +#, python-format +msgid "" +"Each pool has within its configuration a few key settings, defining how " +"many\n" +"tunnels to keep active, how many backup tunnels to maintain in case of " +"failure,\n" +"how long the tunnels should be, whether those\n" +"lengths should be randomized, as \n" +"well as any of the other settings allowed when configuring individual " +"tunnels.\n" +"Configuration options are specified on the I2CP " +"page." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:434 +msgid "Tunnel Lengths and Defaults" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:436 +msgid "On the tunnel overview page" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:438 +msgid "Anticipatory Build Strategy and Priority" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:440 +msgid "" +"Tunnel building is expensive, and tunnels expire a fixed time after they " +"are built.\n" +"However, when a pool that runs out of tunnels, the Destination is " +"essentially dead.\n" +"In addition, tunnel build success rate may vary greatly with both local " +"and global\n" +"network conditions.\n" +"Therefore, it is important to maintain an anticipatory, adaptive build " +"strategy\n" +"to ensure that new tunnels are successfully built before they are needed," +"\n" +"without building an excess of tunnels, building them too soon,\n" +"or consuming too much CPU or bandwidth creating and sending the encrypted" +" build messages." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:451 +msgid "" +"For each tuple {exploratory/client, in/out, length, length variance}\n" +"the router maintains statistics on the time required for a successful\n" +"tunnel build.\n" +"Using these statistics, it calculates how long before a tunnel's " +"expiration\n" +"it should start attempting to build a replacement.\n" +"As the expiration time approaches without a successful replacement,\n" +"it starts multiple build attempts in parallel, and then\n" +"will increase the number of parallel attempts if necessary." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:462 +msgid "" +"To cap bandwidth and CPU usage,\n" +"the router also limits the maximum number of build attempts outstanding\n" +"across all pools.\n" +"Critical builds (those for exploratory tunnels, and for pools that have\n" +"run out of tunnels) are prioritized." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:471 +msgid "Tunnel Message Throttling" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:473 +msgid "" +"Even though the tunnels within I2P bear a resemblance to a circuit " +"switched\n" +"network, everything within I2P is strictly message based - tunnels are " +"merely\n" +"accounting tricks to help organize the delivery of messages. No " +"assumptions are\n" +"made regarding reliability or ordering of messages, and retransmissions " +"are left\n" +"to higher levels (e.g. I2P's client layer streaming library). This " +"allows I2P\n" +"to take advantage of throttling techniques available to both packet " +"switched and\n" +"circuit switched networks. For instance, each router may keep track of " +"the \n" +"moving average of how much data each tunnel is using, combine that with " +"all of \n" +"the averages used by other tunnels the router is participating in, and be" +" able\n" +"to accept or reject additional tunnel participation requests based on its" +" \n" +"capacity and utilization. On the other hand, each router can simply drop" +" \n" +"messages that are beyond its capacity, exploiting the research used on " +"the \n" +"normal Internet." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:489 +msgid "" +"In the current implementation, routers implement a\n" +"weighted random early discard (WRED) strategy.\n" +"For all participating routers (internal participant, inbound gateway, and" +" outbound endpoint),\n" +"the router will start randomly dropping a portion of messages as the\n" +"bandwidth limits are approached.\n" +"As traffic gets closer to, or exceeds, the limits, more messages are " +"dropped.\n" +"For an internal participant, all messages are fragmented and padded and " +"therefore are the same size.\n" +"At the inbound gateway and outbound endpoint, however, the dropping " +"decision is made\n" +"on the full (coalesced) message, and the message size is taken into " +"account.\n" +"Larger messages are more likely to be dropped.\n" +"Also, messages are more likely to be dropped at the outbound endpoint " +"than the inbound gateway,\n" +"as those messages are not as \"far along\" in their journey and thus the " +"network cost of\n" +"dropping those messages is lower." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:507 +msgid "Mixing/batching" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:509 +msgid "" +"What strategies could be used at the gateway and at each hop for " +"delaying,\n" +"reordering, rerouting, or padding messages? To what extent should this " +"be done\n" +"automatically, how much should be configured as a per tunnel or per hop " +"setting,\n" +"and how should the tunnel's creator (and in turn, user) control this " +"operation?\n" +"All of this is left as unknown, to be worked out for a distant future " +"release." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:518 +msgid "Padding" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:519 +msgid "" +"The padding strategies can be used on a variety of levels, addressing the" +"\n" +"exposure of message size information to different adversaries.\n" +"The current fixed tunnel message size is 1024 bytes. Within this " +"however, the fragmented\n" +"messages themselves are not padded by the tunnel at all, though for end " +"to end \n" +"messages, they may be padded as part of the garlic wrapping." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/implementation.html:529 +msgid "" +"WRED strategies have a significant impact on end-to-end performance,\n" +"and prevention of network congestion collapse.\n" +"The current WRED strategy should be carefully evaluated and improved." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/old-implementation.html:2 +msgid "Old Tunnel Implementation" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/old-implementation.html:5 +#, python-format +msgid "" +"Note: Obsolete - NOT used! Replaced in 0.6.1.10 - see here for the current implementation" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/unidirectional.html:3 +msgid "November 2016" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/unidirectional.html:7 +msgid "" +"This page describes the origins and design of I2P's unidirectional " +"tunnels.\n" +"For further information see:" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/unidirectional.html:13 +msgid "Tunnel overview page" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/unidirectional.html:19 +msgid "Tunnel design discussion" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/unidirectional.html:21 +msgid "Peer selection" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/unidirectional.html:23 +msgid "Meeting 125 (~13:12-13:30)" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/unidirectional.html:28 +msgid "Review" +msgstr "Rishikim" + +#: i2p2www/pages/site/docs/tunnels/unidirectional.html:30 +msgid "" +"While we aren't aware of any published research on the advantages of \n" +"unidirecdtional tunnels,\n" +"they appear to make it harder to detect a \n" +"request/response pattern, which is quite possible to detect over a \n" +"bidirectional tunnel.\n" +"Several apps and protocols, notably HTTP,\n" +"do transfer data in such manner. Having the traffic follow the same \n" +"route to its destination and back could make it easier for an \n" +"attacker who has only timing and traffic volume data to infer the path a" +" \n" +"tunnel is taking.\n" +"Having the response come back along a different path arguably \n" +"makes it harder." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/unidirectional.html:45 +msgid "" +"When dealing with \n" +"an internal adversary or most external adversaries, I2P's undirectional " +"tunnels\n" +"expose half as much traffic data than would be exposed with bidirectional" +" circuits\n" +"by simply looking at the flows themselves - an HTTP request and response " +"would \n" +"follow the same path in Tor, while in I2P the packets making up the " +"request \n" +"would go out through one or more outbound tunnels and the packets making " +"up \n" +"the response would come back through one or more different inbound " +"tunnels." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/unidirectional.html:55 +msgid "" +"The strategy of using two separate tunnels for inbound and outbound\n" +"communication is not the only technique available, and it does have " +"anonymity\n" +"implications. On the positive side, by using separate tunnels it lessens" +" the\n" +"traffic data exposed for analysis to participants in a tunnel - for " +"instance,\n" +"peers in an outbound tunnel from a web browser would only see the traffic" +" of\n" +"an HTTP GET, while the peers in an inbound tunnel would see the payload \n" +"delivered along the tunnel. With bidirectional tunnels, all participants" +" would\n" +"have access to the fact that e.g. 1KB was sent in one direction, then " +"100KB\n" +"in the other. On the negative side, using unidirectional tunnels means " +"that\n" +"there are two sets of peers which need to be profiled and accounted for, " +"and\n" +"additional care must be taken to address the increased speed of " +"predecessor\n" +"attacks. The tunnel pooling and building process\n" +"(peer selection and ordering strategies)\n" +"should minimize the worries of the predecessor attack." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/unidirectional.html:73 +msgid "Anonymity" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/unidirectional.html:75 +#, python-format +msgid "" +"A recent paper by Hermann and Grothoff\n" +"declared that I2P's unidirectional tunnels \"seems to be a bad design " +"decision\"." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/unidirectional.html:80 +msgid "" +"The paper's main point is that\n" +"deanonymizations on unidirectional tunnels take a longer time, which is " +"an \n" +"advantage, but that an attacker can be more certain in the unidirectional" +" case. \n" +"Therefore, the paper claims it isn't an advantage at all, but a " +"disadvantage, at least\n" +"with long-living eepsites." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/unidirectional.html:88 +msgid "" +"This conclusion is not fully supported by the paper. Unidirectional " +"tunnels clearly \n" +"mitigate other attacks and it's not clear how to trade off the risk of " +"the \n" +"attack in the paper\n" +"with attacks on a bidirectional tunnel architecture." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/unidirectional.html:95 +msgid "" +"This conclusion is based on an arbitrary certainty vs. time weighting \n" +"(tradeoff) that may not be applicable in all cases. For \n" +"example, somebody could make a list of possible IPs then issue subpoenas " +"to \n" +"each. Or the attacker could DDoS each in turn and via a simple \n" +"intersection attack see if the eepsite goes down or is slowed down. So " +"close \n" +"may be good enough, or time may be more important." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/unidirectional.html:104 +msgid "" +"The conclusion is based on a specific weighting of the importance of " +"certainty \n" +"vs. time, and that weighting may be wrong, and it's definitely debatable," +" \n" +"especially in a real world with subpoenas, search warrants, and other " +"methods \n" +"available for final confirmation." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/unidirectional.html:111 +msgid "" +"A full analysis of the tradeoffs of unidirectional vs. bidirectional \n" +"tunnels is clearly outside the scope of the paper, and has not been done" +" \n" +"elsewhere. For example, how does this attack compare to the numerous " +"possible \n" +"timing attacks published about onion-routed networks? Clearly the authors" +" have not\n" +"done that analysis, if it's even possible to do it\n" +"effectively." +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/unidirectional.html:120 +msgid "" +"Tor uses bidirectional tunnels and has had a lot of academic review. I2P" +" \n" +"uses unidirectional tunnels and has had very little review. Does the lack" +" of a \n" +"research paper defending unidirectional tunnels mean that it is a poor " +"design \n" +"choice, or just that it needs more study? Timing attacks and \n" +"distributed attacks are difficult to defend against in both I2P and Tor. " +"The \n" +"design intent (see references above) was that unidirectional tunnels are " +"more \n" +"resistant to timing attacks. However, the paper presents a somewhat " +"different type of timing \n" +"attack. Is this attack, innovative as it is, sufficient to label I2P's \n" +"tunnel architecture (and thus I2P as a whole) a \"bad design\", and by \n" +"implication clearly inferior to Tor, or is it just a design alternative " +"that \n" +"clearly needs further investigation and analysis? There are several other" +" reasons \n" +"to consider I2P currently inferior to Tor and other projects (small " +"network \n" +"size, lack of funding, lack of review) but is unidirectional tunnels " +"really a \n" +"reason?" +msgstr "" + +#: i2p2www/pages/site/docs/tunnels/unidirectional.html:137 +msgid "" +"In summary, \"bad design decision\" is apparently (since the paper does\n" +"not label bidirectional tunnels \"bad\") shorthand for \"unidirectional \n" +"tunnels are unequivocally inferior to bidirectional tunnels\", yet this \n" +"conclusion is not supported by the paper." +msgstr "" + diff --git a/i2p2www/translations/sq/LC_MESSAGES/get-involved.po b/i2p2www/translations/sq/LC_MESSAGES/get-involved.po new file mode 100644 index 00000000..ec0f3f12 --- /dev/null +++ b/i2p2www/translations/sq/LC_MESSAGES/get-involved.po @@ -0,0 +1,4097 @@ +# Albanian translations for I2P. +# Copyright (C) 2017 ORGANIZATION +# This file is distributed under the same license as the I2P project. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: I2P\n" +"Report-Msgid-Bugs-To: http://trac.i2p2.de\n" +"POT-Creation-Date: 2017-07-26 20:35+0000\n" +"PO-Revision-Date: 2018-01-27 21:42+0000\n" +"Last-Translator: str4d \n" +"Language-Team: Albanian (http://www.transifex.com/otf/I2P/language/sq/)\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 1.3\n" + +#: i2p2www/pages/site/get-involved/donate.html:2 +#: i2p2www/pages/site/get-involved/index.html:82 +msgid "Donate" +msgstr "Dhuroni" + +#: i2p2www/pages/site/get-involved/donate.html:4 +msgid "" +"Thank you for your interest in contributing to I2P!\n" +"The details of how you\n" +"can make your contribution are provided below." +msgstr "" + +#: i2p2www/pages/site/get-involved/donate.html:10 +msgid "Tax Status" +msgstr "" + +#: i2p2www/pages/site/get-involved/donate.html:11 +msgid "" +"I2P is not incorporated.\n" +"Your contributions are probably not tax-deductible.\n" +"If you would like to discuss a large contribution, please contact eche|on." +msgstr "" + +#: i2p2www/pages/site/get-involved/donate.html:17 +msgid "Stickers" +msgstr "" + +#: i2p2www/pages/site/get-involved/donate.html:18 +msgid "" +"While supplies last, we offer I2P stickers to those who donate enough\n" +"to cover PayPal fees and postage from the U.S.\n" +"You must include \"stickers please\" and your address in the Paypal " +"comments.\n" +"For other payment methods, follow up with an email to eche|on\n" +"with the subject \"stickers please\", your payment information, and your " +"address." +msgstr "" + +#: i2p2www/pages/site/get-involved/donate.html:25 +msgid "Please allow 30-60 days for delivery." +msgstr "" + +#: i2p2www/pages/site/get-involved/donate.html:30 +#, python-format +msgid "" +"As of %(date)s, eche|on has been running a\n" +"%(cointype)s account for the I2P project.\n" +"ATTENTION! The address changed on 02-20-2014. ATTENTION!\n" +"If you'd like to donate using %(cointype)s, just transfer your\n" +"desired amount of coins to the account %(account)s\n" +"and leave eche|on a note if you'd like your donation to be\n" +"mentioned on the I2P webpage." +msgstr "" + +#: i2p2www/pages/site/get-involved/donate.html:42 +#: i2p2www/pages/site/get-involved/donate.html:59 +#: i2p2www/pages/site/get-involved/donate.html:75 +#: i2p2www/pages/site/get-involved/donate.html:91 +msgid "For easy usage, use the QR code below!" +msgstr "" + +#: i2p2www/pages/site/get-involved/donate.html:47 +#, python-format +msgid "" +"As of %(date)s, eche|on has been running a\n" +"%(cointype)s account for the I2P project.\n" +"ATTENTION! The address changed 02-20-2014. ATTENTION!\n" +"If you'd like to donate using %(cointype)s, just transfer your\n" +"desired amount of coins to the account %(account)s\n" +"and leave eche|on a note if you'd like your donation to be\n" +"mentioned on the I2P webpage." +msgstr "" + +#: i2p2www/pages/site/get-involved/donate.html:64 +#, python-format +msgid "" +"As of %(date)s, Meeh has been running a\n" +"%(cointype)s account for the I2P project.\n" +"If you'd like to donate using %(cointype)s, just transfer your\n" +"desired amount of coins to the account %(account)s\n" +"and leave Meeh a note if you'd like your donation to be\n" +"mentioned on the I2P webpage." +msgstr "" + +#: i2p2www/pages/site/get-involved/donate.html:80 +#, python-format +msgid "" +"As of %(date)s, echelon has been running a\n" +" %(cointype)s account for the I2P project.\n" +" If you'd like to donate using %(cointype)s, just transfer your\n" +" desired amount of coins to the account %(account)s\n" +" and leave echelon a note if you'd like your donation to be\n" +" mentioned on the I2P webpage." +msgstr "" + +#: i2p2www/pages/site/get-involved/donate.html:97 +#, python-format +msgid "" +"We accept most altcoins, just ask Meeh. Other altcoins can be converted " +"and exchanged for a crypto currency we currently support. Please send a " +"mail to \"%(account)s\" for a such donation." +msgstr "" + +#: i2p2www/pages/site/get-involved/donate.html:104 +#, python-format +msgid "You can donate direct via PayPal to the account \"%(account)s\"." +msgstr "" + +#: i2p2www/pages/site/get-involved/donate.html:110 +msgid "One time donation:" +msgstr "" + +#: i2p2www/pages/site/get-involved/donate.html:124 +msgid "Donate 10 €/month for 12 months:" +msgstr "" + +#: i2p2www/pages/site/get-involved/donate.html:132 +#: i2p2www/pages/site/get-involved/donate.html:144 +#: i2p2www/pages/site/get-involved/donate.html:156 +#: i2p2www/pages/site/get-involved/donate.html:168 +msgid "I2P donation " +msgstr "" + +#: i2p2www/pages/site/get-involved/donate.html:138 +msgid "Donate 20 €/month for 12 months:" +msgstr "" + +#: i2p2www/pages/site/get-involved/donate.html:150 +msgid "Donate 30 €/month for 12 months:" +msgstr "" + +#: i2p2www/pages/site/get-involved/donate.html:162 +msgid "Donate 50 €/month for 12 months:" +msgstr "" + +#: i2p2www/pages/site/get-involved/donate.html:177 +msgid "Flattr this" +msgstr "" + +#: i2p2www/pages/site/get-involved/donate.html:182 +msgid "" +"If you want to keep more or less anonymous, the option to send money via " +"mail is also available. But it is less secure\n" +"as the envelope can be lost on the way to us." +msgstr "" + +#: i2p2www/pages/site/get-involved/donate.html:186 +#, python-format +msgid "" +"If you'd like to donate via snail mail, send an email to %(email)s\n" +" and you'll receive an email with instructions detailing how to proceed." +msgstr "" + +#: i2p2www/pages/site/get-involved/donate.html:191 +#, python-format +msgid "" +"In the meantime, feel free to take a look at the generous donations that " +"have been\n" +"given in support of the I2P Project at the hall of fame." +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:2 +msgid "Get Involved!" +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:4 +msgid "We need your help!" +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:5 +msgid "" +"To get involved, please feel free to join us on the #i2p-dev IRC channel " +"(on\n" +"irc.freenode.net, irc.oftc.net, or within I2P on irc.echelon.i2p, " +"irc.dg.i2p or irc.postman.i2p)." +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:9 +#, python-format +msgid "" +"If you're interested in joining our team, please" +" get in\n" +"touch as we're always looking for eager contributors!" +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:13 +msgid "" +"We need help in many areas, and you don't need to know Java to " +"contribute!\n" +"Here's a list to help get you started!" +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:18 +msgid "Spread the Word!" +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:19 +msgid "" +"Tell people about I2P on forums, blogs, and comments to articles.\n" +"Fix up the Wikipedia article about I2P in your language.\n" +"Tell your friends." +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:24 +msgid "Testing" +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:25 +#, python-format +msgid "" +"Run the latest builds from monotone\n" +"and report results on #i2p or as bugs on Trac." +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:30 +msgid "Documentation" +msgstr "Dokumentacioni" + +#: i2p2www/pages/site/get-involved/index.html:31 +msgid "" +"Help fix the parts of the website that are outdated or incomplete.\n" +"Translate pages into other languages." +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:35 +msgid "Pictures" +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:36 +msgid "Make some more pictures, fix the old ones on the website" +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:39 +msgid "Content" +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:40 +msgid "Make an eepsite! Add some content! Contribute to the community!" +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:43 +msgid "Services" +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:44 +msgid "" +"Run a service on an eepsite. It could be a proxy, a forum, a tracker,\n" +"a naming service, a search engine, an eepsite monitor... many of these\n" +"aren't that hard." +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:49 +msgid "Applications" +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:50 +#, python-format +msgid "" +"Write or port applications for I2P! There's some guidelines and\n" +"a list of ideas on the applications page." +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:54 +msgid "Coding" +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:55 +#, python-format +msgid "" +"There's plenty to do if you know Java or are ready to learn.\n" +"Check for open tickets on Trac\n" +"or the TODO list on %(zzz)s for\n" +"some ideas on where to start.\n" +"See the new developer's guide for details." +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:64 +msgid "Translation" +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:65 +#, python-format +msgid "" +"Help translate the website and the software into your language.\n" +"See the new translator's guide for details." +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:69 +msgid "Analysis" +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:70 +#, python-format +msgid "" +"Study or test the code to look for vulnerabilities.\n" +"Both anonymity vulnerabilities from the various\n" +"threat models,\n" +"and DOS and other weaknesses due to securities holes,\n" +"need researching." +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:77 +msgid "Reseeding" +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:78 +#, python-format +msgid "" +"Set up a reseed server for new routers to bootstrap from.\n" +"Detailed instructions are on our reseed server " +"page." +msgstr "" + +#: i2p2www/pages/site/get-involved/roadmap.html:2 +msgid "Roadmap" +msgstr "" + +#: i2p2www/pages/site/get-involved/roadmap.html:3 +msgid "June 2017" +msgstr "" + +#: i2p2www/pages/site/get-involved/roadmap.html:304 +#, python-format +msgid "" +"Reachability Mapping / handle peers partially reachable / enhanced restricted routes" +msgstr "" + +#: i2p2www/pages/site/get-involved/roadmap.html:307 +msgid "Full restricted routes" +msgstr "" + +#: i2p2www/pages/site/get-involved/roadmap.html:308 +msgid "Tunnel mixing and padding" +msgstr "" + +#: i2p2www/pages/site/get-involved/roadmap.html:309 +msgid "User defined message delays" +msgstr "" + +#: i2p2www/pages/site/get-involved/roadmap.html:317 +#, python-format +msgid "" +"Please see the TODO list for more detailed info " +"about some of these tasks." +msgstr "" + +#: i2p2www/pages/site/get-involved/todo.html:2 +msgid "I2P Project Targets" +msgstr "" + +#: i2p2www/pages/site/get-involved/todo.html:5 +#: i2p2www/pages/site/get-involved/todo.html:47 +msgid "Core functionality" +msgstr "" + +#: i2p2www/pages/site/get-involved/todo.html:7 +#: i2p2www/pages/site/get-involved/todo.html:50 +msgid "NetworkDB and profile tuning and ejection policy for large nets" +msgstr "" + +#: i2p2www/pages/site/get-involved/todo.html:11 +#: i2p2www/pages/site/get-involved/todo.html:74 +msgid "Security / anonymity" +msgstr "" + +#: i2p2www/pages/site/get-involved/todo.html:13 +#: i2p2www/pages/site/get-involved/todo.html:77 +msgid "Full blown n-hop restricted routes with optional trusted links" +msgstr "" + +#: i2p2www/pages/site/get-involved/todo.html:16 +#: i2p2www/pages/site/get-involved/todo.html:96 +msgid "Hashcash for routerIdentity, destination, and tunnel request" +msgstr "" + +#: i2p2www/pages/site/get-involved/todo.html:19 +#: i2p2www/pages/site/get-involved/todo.html:125 +msgid "Advanced tunnel operation (batching/mixing/throttling/padding)" +msgstr "" + +#: i2p2www/pages/site/get-involved/todo.html:22 +#: i2p2www/pages/site/get-involved/todo.html:162 +msgid "Stop & go mix w/ garlics & tunnels" +msgstr "" + +#: i2p2www/pages/site/get-involved/todo.html:26 +#: i2p2www/pages/site/get-involved/todo.html:176 +msgid "Performance" +msgstr "" + +#: i2p2www/pages/site/get-involved/todo.html:31 +#, python-format +msgid "" +"Note: This page is not up-to-date.\n" +"See the roadmap for current plans." +msgstr "" + +#: i2p2www/pages/site/get-involved/todo.html:36 +#, python-format +msgid "" +"Below is a more detailed (yet still incomplete) discussion of the major " +"areas\n" +"of future development on the core I2P network, spanning the plausibly " +"planned\n" +"releases. This does not include stego transports, porting to wireless " +"devices,\n" +"or tools to secure the local machine, nor does it include client " +"applications\n" +"that will be essential in I2P's success. There are probably other things " +"that\n" +"will come up, especially as I2P gets more peer review, but these are the " +"main\n" +"'big things'. See also the roadmap. Want to " +"help?\n" +"Get involved!" +msgstr "" + +#: i2p2www/pages/site/get-involved/todo.html:53 +msgid "" +"Within the current network database and profile management " +"implementation, \n" +"we have taken the liberty of some practical shortcuts. For instance, we \n" +"don't have the code to drop peer references from the K-buckets, as we \n" +"don't have enough peers to even plausibly fill any of them, so instead, \n" +"we just keep the peers in whatever bucket is appropriate. Another example" +" \n" +"deals with the peer profiles - the memory required to maintain each " +"peer's \n" +"profile is small enough that we can keep thousands of full blown profiles" +" \n" +"in memory without problems. While we have the capacity to use trimmed \n" +"down profiles (which we can maintain 100s of thousands in memory), we \n" +"don't have any code to deal with moving a profile from a \"minimal " +"profile\" \n" +"to a \"full profile\", a \"full profile\" to a \"minimal profile\", or to" +" simply \n" +"eject a profile altogether. It just wouldn't be practical to write that \n" +"code yet, since we aren't going to need it for a while." +msgstr "" + +#: i2p2www/pages/site/get-involved/todo.html:68 +msgid "" +"That said, as the network grows we are going to want to keep these " +"considerations \n" +"in mind. We will have some work to do, but we can put it off for later." +msgstr "" + +#: i2p2www/pages/site/get-involved/todo.html:80 +msgid "" +"The restricted route functionality described before was simply a " +"functional \n" +"issue - how to let peers who would not otherwise be able to communicate \n" +"do so. However, the concept of allowing restricted routes includes " +"additional \n" +"capabilities. For instance, if a router absolutely cannot risk " +"communicating \n" +"directly with any untrusted peers, they can set up trusted links through" +" \n" +"those peers, using them to both send and receive all of its messages. \n" +"Those hidden peers who want to be completely isolated would also refuse \n" +"to connect to peers who attempt to get them to (as demonstrated by the \n" +"garlic routing technique outlined before) - they can simply take the " +"garlic \n" +"clove that has a request for delivery to a particular peer and tunnel \n" +"route that message out one of the hidden peer's trusted links with " +"instructions \n" +"to forward it as requested." +msgstr "" + +#: i2p2www/pages/site/get-involved/todo.html:99 +#, python-format +msgid "" +"Within the network, we will want some way to deter people from consuming" +" \n" +"too many resources or from creating so many peers to mount a Sybil \n" +"attack. Traditional techniques such as having a peer see who is " +"requesting \n" +"a resource or running a peer aren't appropriate for use within I2P, as \n" +"doing so would compromise the anonymity of the system. Instead, we want \n" +"to make certain requests \"expensive\"." +msgstr "" + +#: i2p2www/pages/site/get-involved/todo.html:107 +msgid "" +"Hashcash is one technique that \n" +"we can use to anonymously increase the \"cost\" of doing certain " +"activities, \n" +"such as creating a new router identity (done only once on installation)," +" \n" +"creating a new destination (done only once when creating a service), or \n" +"requesting that a peer participate in a tunnel (done often, perhaps 2-300" +" \n" +"times per hour). We don't know the \"correct\" cost of each type of " +"certificate \n" +"yet, but with some research and experimentation, we could set a base " +"level \n" +"that is sufficiently expensive while not an excessive burden for people \n" +"with few resources." +msgstr "" + +#: i2p2www/pages/site/get-involved/todo.html:118 +msgid "" +"There are a few other algorithms that we can explore for making those \n" +"requests for resources \"nonfree\", and further research on that front is" +" \n" +"appropriate." +msgstr "" + +#: i2p2www/pages/site/get-involved/todo.html:128 +#, python-format +msgid "" +"To powerful passive external observers as well as large colluding " +"internal \n" +"observers, standard tunnel routing is vulnerable to traffic analysis " +"attacks \n" +"- simply watching the size and frequency of messages being passed between" +" \n" +"routers. To defend against these, we will want to essentially turn some \n" +"of the tunnels into its own mix cascade - delaying messages received at \n" +"the gateway and passing them in batches, reordering them as necessary, \n" +"and injecting dummy messages (indistinguishable from other \"real\" " +"tunnel \n" +"messages by peers in the path). There has been a significant amount of \n" +"research \n" +"on these algorithms that we can lean on prior to implementing the various" +" \n" +"tunnel mixing strategies." +msgstr "" + +#: i2p2www/pages/site/get-involved/todo.html:141 +msgid "" +"In addition to the anonymity aspects of more varied tunnel operation, \n" +"there is a functional dimension as well. Each peer only has a certain \n" +"amount of data they can route for the network, and to keep any particular" +" \n" +"tunnel from consuming an unreasonable portion of that bandwidth, they \n" +"will want to include some throttles on the tunnel. For instance, a tunnel" +" \n" +"may be configured to throttle itself after passing 600 messages (1 per \n" +"second), 2.4MB (4KBps), or exceeding some moving average (8KBps for the \n" +"last minute). Excess messages may be delayed or summarily dropped. With \n" +"this sort of throttling, peers can provide ATM-like QoS support for their" +" \n" +"tunnels, refusing to agree to allocate more bandwidth than the peer has \n" +"available." +msgstr "" + +#: i2p2www/pages/site/get-involved/todo.html:154 +msgid "" +"In addition, we may want to implement code to dynamically reroute tunnels" +" \n" +"to avoid failed peers or to inject additional hops into the path. This \n" +"can be done by garlic routing a message to any particular peer in a " +"tunnel \n" +"with instructions to redefine the next-hop in the tunnel." +msgstr "" + +#: i2p2www/pages/site/get-involved/todo.html:165 +msgid "" +"Beyond the per-tunnel batching and mixing strategy, there are further \n" +"capabilities for protecting against powerful attackers, such as allowing" +" \n" +"each step in a garlic routed path to define a delay or window in which \n" +"it should be forwarded on. This would enable protections against the long" +" \n" +"term intersection attack, as a peer could send a message that looks " +"perfectly \n" +"standard to most peers that pass it along, except at any peers where the" +" \n" +"clove exposed includes delay instructions." +msgstr "" + +#: i2p2www/pages/site/get-involved/todo.html:177 +#, python-format +msgid "" +"Performance related improvements are listed on the\n" +"Performance page." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/arabic-trans.html:2 +msgid "Bounty Arabic translation of webpage and router console" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/arabic-trans.html:3 +#: i2p2www/pages/site/get-involved/bounties/index.html:118 +msgid "Arabic translation" +msgstr "Përkthimi arabisht" + +#: i2p2www/pages/site/get-involved/bounties/arabic-trans.html:6 +msgid "" +"To improve I2P usage and attract more people\n" +"into I2P echelon set out this bounty for translation\n" +"of the I2P web page and I2P router console into Arabic." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/arabic-trans.html:12 +#: i2p2www/pages/site/get-involved/bounties/russian-trans.html:12 +msgid "This bounty is set into 2 subparts:" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/arabic-trans.html:14 +#: i2p2www/pages/site/get-involved/bounties/russian-trans.html:14 +msgid "Part 1 is translation of the webpage." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/arabic-trans.html:17 +msgid "" +"For collecting the bounty of 20 BTC you need to translate the following " +"pages:" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/arabic-trans.html:25 +msgid "This job was done by hamada and the bounty of 20 BTC was paid to hamada." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/arabic-trans.html:27 +msgid "" +"Part 2 is the translation of the router console. The router console was\n" +"partly translated and the bounty of 80 BTC was paid to hamada." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/arabic-trans.html:34 +msgid "Judge is echelon." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/btc-client.html:2 +msgid "Bounty creating a I2P native Bitcoin client" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/btc-client.html:3 +msgid "BTC I2P native client" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/btc-client.html:6 +msgid "" +"For a future of I2P and attract more people\n" +"into I2P this bounty is to create a I2P native Bitcoin client. \n" +"It should integrate with other client via the I2P network and via " +"gateways to\n" +"the existant bitcoin network." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/btc-client.html:15 +msgid "" +"Judge is psychonaut who donated the first 30 € to this bounty.\n" +"Bounty was almost fullfilled with btci2p, only a small\n" +"part of creating a plugin is leftover. User giv has been paid for the " +"work." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/datastore.html:2 +msgid "Bounty datastorage" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/datastore.html:3 +msgid "datastore" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/datastore.html:6 +msgid "" +"To improve I2P's usage and to be independent of routers \n" +"online status we want a datastorage as a extension to I2P.\n" +"Like in Freenet the datastorage should be distributed and every\n" +"participating node should be able to configure his options.\n" +"The files should be saved in chunks and at least 2-3 times to\n" +"obtain redundancy. Usage of storage space should be auto balanced.\n" +"As it is a extra application, it should work flawless within I2P and\n" +"cooperate nice with the I2P router. Maybe a integration within the\n" +"webpage/router could be done." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/datastore.html:17 +msgid "" +"This bounty cooperates with the 2 other bounties \"frost for I2P\" and \n" +"\"eepsites in datastorage\"." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/datastore.html:21 +msgid "" +"The frost for I2P datastorage bounty is paid for a frost like program \n" +"with which files/messages are stored into database and got from database." +"\n" +"It needs to work with a GUI." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/datastore.html:26 +msgid "" +"The eepsite served out of I2P datastorage extends a I2P router to send\n" +"out eepsites out of the I2P datastorage. All files for eepsites need to " +"be\n" +"saved inside of datastorage and are taken from it.\n" +"Extension:\n" +"For better integration all datastorage participants could serve that " +"eepsite." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/datastore.html:36 +msgid "" +"For bounties to be declared done and paid, we need the program AND the " +"source.\n" +"Source and code need to be licensed under a free license (free to change " +"and \n" +"free to distribute)." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/deb-pack.html:2 +msgid "Bounty I2P package in Debian and Ubuntu mirrors" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/deb-pack.html:3 +msgid "I2P Ubuntu/Debian package" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/deb-pack.html:6 +msgid "" +"For the future of I2P and in order to attract more people\n" +"to I2P, this bounty was set for including an I2P package into the Ubuntu " +"and Debian \n" +"archive mirrors.\n" +"To claim this bounty, the I2P router package needs to be available from\n" +"Ubuntu and Debian archive mirrors and Debian bug \n" +"448638 \n" +"needs to be closed successfully." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/i2phex.html:2 +msgid "Bounty I2PHex code implementation" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/i2phex.html:3 +msgid "i2phex code implementation" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/i2phex.html:6 +msgid "" +"To improve I2P usage and attract more people\n" +"into I2PHex P2P ArneBab setout the bounty for implementing actual\n" +"Phex code onto I2PHex." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:2 +msgid "Bounties for I2P" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:5 +msgid "" +"While we always gratefully accept any contributions of code, \n" +"documentation, and the like, there are other ways to help I2P move \n" +"forward. As with any open source project, our goals would be achieved " +"more \n" +"rapidly if we were able to support all of our contributors to work on \n" +"I2P full time. However, as with any open source project, that's not a \n" +"possibility. Instead, we are making use of a bounty system, whereby \n" +"anyone can get support for working on something that people want \n" +"implemented, and people who want to contribute to I2P can be assured that" +" \n" +"their support goes to what they care about." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:17 +msgid "" +"We are also keeping open the ability for people who want to support I2P \n" +"but don't have strong feelings about the bounties available. Those " +"people\n" +"can simply put their trust in the I2P team to do what we feel is best by\n" +"donating to a catch-all general fund that will be used as deemed \n" +"necessary - allocated to various bounties, covering incidentals (hosting," +" \n" +"etc), and the like." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:26 +msgid "Current bounties" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:29 +#: i2p2www/pages/site/get-involved/bounties/index.html:84 +#: i2p2www/pages/site/get-involved/bounties/index.html:104 +msgid "Name" +msgstr "Emër" + +#: i2p2www/pages/site/get-involved/bounties/index.html:29 +#: i2p2www/pages/site/get-involved/bounties/index.html:84 +#: i2p2www/pages/site/get-involved/bounties/index.html:104 +msgid "Status" +msgstr "Gjendje" + +#: i2p2www/pages/site/get-involved/bounties/index.html:29 +#: i2p2www/pages/site/get-involved/bounties/index.html:84 +msgid "Judge" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:29 +#: i2p2www/pages/site/get-involved/bounties/index.html:84 +msgid "Dev" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:29 +#: i2p2www/pages/site/get-involved/bounties/index.html:84 +msgid "Bounty" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:31 +msgid "Frost for I2P datastorage" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:32 +#: i2p2www/pages/site/get-involved/bounties/index.html:39 +#: i2p2www/pages/site/get-involved/bounties/index.html:46 +#: i2p2www/pages/site/get-involved/bounties/index.html:53 +#: i2p2www/pages/site/get-involved/bounties/index.html:74 +#: i2p2www/pages/site/get-involved/bounties/index.html:94 +msgid "Proposal in development" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:34 +#: i2p2www/pages/site/get-involved/bounties/index.html:41 +#: i2p2www/pages/site/get-involved/bounties/index.html:48 +#: i2p2www/pages/site/get-involved/bounties/index.html:55 +#: i2p2www/pages/site/get-involved/bounties/index.html:76 +#: i2p2www/pages/site/get-involved/bounties/index.html:89 +msgid "vacant" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:38 +msgid "Eepsites served out of I2P datastorage" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:45 +msgid "Backporting Phex code onto I2PHex" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:52 +msgid "I2P package in Debian and Ubuntu mirrors" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:59 +msgid "Bitcoin client for I2P" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:60 +msgid "Done, phase of verification" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:66 +msgid "Unit tests and Multi-router Simulation" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:67 +msgid "Partly done, partly in work, partly still open" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:81 +msgid "Hold bounties, set on hold due to jrandom AWOL and missing funding" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:86 +msgid "Bundling bounties" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:87 +msgid "Proposed" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:101 +msgid "Claimed bounties" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:104 +msgid "Dev team" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:106 +msgid "Make I2P IPv6 native" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:113 +msgid "Setting up a SILC server" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:123 +msgid "Datastore over I2P" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:128 +#: i2p2www/pages/site/get-involved/bounties/russian-trans.html:3 +msgid "Russian translation" +msgstr "Përkthim rusisht" + +#: i2p2www/pages/site/get-involved/bounties/index.html:133 +msgid "Swarming file transfer" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:138 +msgid "Streaming library window size" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:143 +msgid "IRC connect time monitor" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:148 +msgid "Unit tests (part 1)" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:160 +msgid "" +"Dev lists anyone who may already be working on the bounty - collaboration" +" is\n" +"preferred, so if you're interested in working on it, please contact one " +"of the\n" +"people listed!" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/ipv6.html:2 +msgid "Bounty I2P IPv6 native" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/ipv6.html:3 +msgid "native IPv6 I2P" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/ipv6.html:6 +msgid "" +"For a future of I2P and attract more people\n" +"into I2P I withdrawal the vuze bounty and offer a IPv6 bounty.\n" +"To claim this bounty, the I2P router needs to run full on native\n" +"IPv6 connections like it does on IPv4." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/ipv6.html:23 +#: i2p2www/pages/site/get-involved/bounties/vuze-plugin.html:20 +msgid "" +"For bounties to be declared done and paid, we need the plugin AND the " +"source.\n" +"Source and code need to be licensed under a free license (free to change " +"and \n" +"free to distribute)." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/netdb.html:2 +msgid "NetDB Backend" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/netdb.html:3 +msgid "netDB backend" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/netdb.html:7 +msgid "" +"The current NetDB implementation (namely the FloodFill system)\n" +"needs to be extended with another backend to improve reliability,\n" +"reduce attack surface and solve the scalability issue for the \n" +"coming years." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/netdb.html:14 +msgid "" +"A solution likely based on a DHT will be investigated and \n" +"finally implemented." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/russian-trans.html:2 +msgid "Bounty russian translation of webpage and router console" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/russian-trans.html:6 +msgid "" +"To improve I2P usage and attract more people\n" +"into I2P a anonymous donator set out the bounty for translation\n" +"of the I2P web page and I2P router console into russian language." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/russian-trans.html:17 +msgid "" +"For collecting the bounty of $115 USD you need to translate the following" +" pages:" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/russian-trans.html:30 +msgid "" +"Part 2 is the translation of the router console. The whole router console" +" needs\n" +"to be translated to collect the bounty of $115 USD." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/russian-trans.html:37 +msgid "Judge is the russian donor." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/silc.html:2 +msgid "Bounty migrate I2P IRC to SILC" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/silc.html:3 +msgid "I2P silc server" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/silc.html:7 +msgid "" +"For a future of I2P and attract more people\n" +"into I2P this bounty is to setup and host a I2P SILC server. \n" +"This will allow people to send files over their messaging servers and " +"have intrinsic security built into the protocol." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/silc.html:12 +msgid "" +"A silc server needs to be set up and run for at least 3 month time to get" +" payed. \n" +"A second server should be set up, too." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/silc.html:16 +msgid "" +"Bounty was withdrawn and money donated to returningnovice and general " +"fund." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/silc.html:22 +msgid "Judge is An Anonymous Secret Society, society@mail.i2p." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/syndie-2012.html:2 +#: i2p2www/pages/site/get-involved/bounties/syndie-2012.html:3 +msgid "Syndie development" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/syndie-2012.html:7 +msgid "" +"Beside of I2P we want to encourage users\n" +"to care more about anonymity and security. As I2P is a low \n" +"latency network with its natural limits, the software SYNDIE\n" +"can overcome some of these limits and provide better anonymity\n" +"for people who really need it." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/syndie-2012.html:14 +msgid "" +"For our bad sake the syndie project was out of development for \n" +"quite a long time yet (5 years) and has been updated just with\n" +"small fixes to keep it running. To get a fresh and new built \n" +"with needed bugfixes we set out this bounty. Also syndie needs\n" +"some enhancements and a better GUI for users to work with it.\n" +"Current bounty sum is 3 Bitcoin." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/syndie-2012.html:23 +msgid "" +"The latest Syndie coding rally did improve the situation of the\n" +"Syndie package dramatically. A new Syndie package with bugfixes\n" +"was created and made available on different webpages.\n" +"As a result of this work, the bounty sum was reduced and\n" +"the withdrawn money moved to the IPv6 bounty." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:2 +msgid "Bounty unittests" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:3 +msgid "unit test" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:7 +msgid "" +"To improve I2P's maintainability, we want to have a solid set of\n" +"automated unit tests for the critical code. While we do have some\n" +"unit tests at the moment, they are ad-hoc and partly unfinished. \n" +"This bounty is for someone to check the existing tests and move over\n" +"old ones to jUnit, automate their execution, extend them to provide \n" +"better code coverage, and publish the report online. Its a massive \n" +"effort, but can be broken down into phases, listed below (phase 2 \n" +"must occur first, but further phases may happen in any order).\n" +"As this needs some reading of code, it is the best start point for\n" +"new devs to get a good overview of I2P code and coding. A good job\n" +"for college students, interns or anyone who is just interested." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:20 +msgid "" +"Take care! Jobs and bounties shuffled a bit!\n" +"Phase 6,7 and 8 are still open!" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:26 +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:40 +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:55 +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:66 +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:77 +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:88 +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:101 +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:112 +#, python-format +msgid "Phase %(phase)s:" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:27 +msgid "CI jenkins and IRC bot" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:28 +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:42 +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:57 +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:68 +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:79 +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:90 +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:103 +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:114 +#, python-format +msgid "Bounty: %(euro)s €" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:29 +msgid "server runs and this section is blocked" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:31 +msgid "" +"To collect this bounty, a continuous integration server (Jenkins,\n" +"old name was Hudson) must be set up and a connected IRC bot needs \n" +"to set up in the channel #i2p-dev on IRC2p network to print out\n" +"results of build tests.
\n" +"The server needs to be run long term." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:41 +msgid "Check existing SDK tests" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:43 +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:69 +msgid "paid to str4d" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:45 +#, python-format +msgid "" +"To collect this bounty, the existing SDK tests must be checked \n" +"and made to work again. The need to be integrated into the ant \n" +"build scripts (\"ant test\"), and tied in with a code coverage tool (e.g." +" \n" +"Clover). The ant script\n" +"must be capable of generating test status results as a web page, \n" +"which will be published online." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:56 +msgid "SDK test coverage" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:58 +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:80 +msgid "paid to unittests dev team" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:60 +msgid "" +"To collect this bounty, the automated unit tests of the SDK \n" +"(i2p/core/java/src) must work again." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:67 +msgid "Router test migration" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:71 +msgid "" +"As with phase 2, the existing unit tests for the router must be\n" +"moved over to the automated system." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:78 +msgid "Router test coverage" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:82 +msgid "" +"To collect this bounty, the automated unit tests of the router \n" +"(i2p/router/java/src) must work again." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:89 +msgid "Streaming lib tests" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:94 +msgid "" +"To collect this bounty, a new set of unit tests must meet a \n" +"measured code coverage of 90% of the streaming lib \n" +"(i2p/apps/ministreaming/ and i2p/apps/streaming/)." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:102 +msgid "Unit tests coverage" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:106 +msgid "" +"To collect this bounty, all above unit tests must meet the 100%\n" +"coverage marker (except for log statements)." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:113 +msgid "MultiRouter simulation" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:115 +msgid "will be split in more sub-tasks" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:117 +msgid "" +"To collect this bounty, the existing in-memory multi-router\n" +"simulation must be checked, made work again and extend to simulate\n" +"lots of routers in memory on a single machine. This bounty will\n" +"be split in more fine grained subworks." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:126 +msgid "" +"Judge on all these works is the donor and donor decides if a phase is\n" +"called succesfull done and money can be paid." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/vuze-plugin.html:2 +msgid "Bounty I2P vuze plugin" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/vuze-plugin.html:3 +msgid "vuze plugin" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/vuze-plugin.html:6 +msgid "" +"To improve I2P usage and attract more people\n" +"into I2P torrent P2P I setout the bounty for a working I2P vuze\n" +"plugin.\n" +"The plugin needs to be official and submitted to vuze for publication\n" +"on their webpage/repository for plugins.\n" +"It should be easy to install and configured, work smooth and flawless.\n" +"Configuration should be friendly to starters and made easy to be " +"anonymous.\n" +"It should work with *.b32.i2p destinations as with signed (516++ bits) \n" +"destinations." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:2 +msgid "Application Development" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:3 +msgid "May 2013" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:7 +#: i2p2www/pages/site/get-involved/develop/applications.html:15 +msgid "Why write I2P-specific code?" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:8 +#: i2p2www/pages/site/get-involved/develop/applications.html:101 +msgid "Important concepts" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:9 +#: i2p2www/pages/site/get-involved/develop/applications.html:189 +msgid "Development options" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:10 +#: i2p2www/pages/site/get-involved/develop/applications.html:302 +msgid "Start developing - a simple guide" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:17 +#, python-format +msgid "" +"There are multiple ways to use applications in I2P.\n" +"Using I2PTunnel,\n" +"you can use regular applications without needing to program explicit I2P " +"support.\n" +"This is very effective for client-server scenario's,\n" +"where you need to connect to a single website.\n" +"You can simply create a tunnel using I2PTunnel to connect to that " +"website, as shown in Figure 1." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:25 +msgid "" +"If your application is distributed, it will require connections to a " +"large amount of peers.\n" +"Using I2PTunnel, you will need to create a new tunnel for each peer you " +"want to contact,\n" +"as shown in Figure 2.\n" +"This process can of course be automated, but running a lot of I2PTunnel " +"instances creates a large amount of overhead.\n" +"In addition, with many protocols you will need to force everyone to \n" +"use the same set of ports for all peers - e.g. if you want to reliably " +"run DCC \n" +"chat, everyone needs to agree that port 10001 is Alice, port 10002 is " +"Bob, port \n" +"10003 is Charlie, and so on, since the protocol includes TCP/IP specific " +"information\n" +"(host and port)." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:36 +msgid "" +"General network applications often send a lot of additional data that " +"could be used to identify users.\n" +"Hostnames, port numbers, time zones, character sets, etc. are often sent " +"without informing the user.\n" +"As such, designing the network protocol specifically with anonymity in " +"mind\n" +"can avoid compromising user identities." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:42 +msgid "" +"There are also efficiency considerations to review when determining how " +"to \n" +"interact on top of I2P. The streaming library and things built on top of" +" it\n" +"operate with handshakes similar to TCP, while the core I2P protocols " +"(I2NP and I2CP)\n" +"are strictly message based (like UDP or in some instances raw IP). The " +"important\n" +"distinction is that with I2P, communication is operating over a long fat " +"network - \n" +"each end to end message will have nontrivial latencies, but may contain " +"payloads \n" +"of up to several KB. An application that needs a simple request and " +"response can get rid\n" +"of any state and drop the latency incurred by the startup and teardown " +"handshakes\n" +"by using (best effort) datagrams without having to worry about MTU " +"detection or \n" +"fragmentation of messages." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:56 +#: i2p2www/pages/site/get-involved/develop/applications.html:58 +msgid "" +"Creating a server-client connection using I2PTunnel only requires " +"creating a single tunnel." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:58 +msgid "Figure 1:" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:63 +#: i2p2www/pages/site/get-involved/develop/applications.html:65 +msgid "" +"Setting up connections for a peer-to-peer applications requires a very " +"large amount of tunnels." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:65 +msgid "Figure 2:" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:69 +msgid "In summary, a number of reasons to write I2P-specific code:" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:73 +msgid "" +"Creating a large amount of I2PTunnel instances consumes a non-trivial " +"amount of resources,\n" +"which is problematic for distributed applications (a new tunnel is " +"required for each peer)." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:77 +msgid "" +"General network protocols often send a lot of additional data that can be" +" used to identify users.\n" +"Programming specifically for I2P allows the creation of a network " +"protocol\n" +"that does not leak such information, keeping users anonymous and secure." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:82 +msgid "" +"Network protocols designed for use on the regular internet can be " +"inefficient\n" +"on I2P, which is a network with a much higher latency." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:89 +#, python-format +msgid "" +"I2P supports a standard plugins interface for" +" developers\n" +"so that applications may be easily integrated and distributed." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:95 +msgid "" +"Applications written in Java and accessible/runnable\n" +"using an HTML interface via the standard webapps/app.war\n" +"may be considered for inclusion in the i2p distribution." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:103 +msgid "There are a few changes that require adjusting to when using I2P:" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:107 +msgid "Destination ~= host+port" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:109 +msgid "" +"An application running on I2P sends messages from and receives messages " +"to a\n" +"unique cryptographically secure end point - a \"destination\". In TCP or" +" UDP\n" +"terms, a destination could (largely) be considered the equivalent of a " +"hostname\n" +"plus port number pair, though there are a few differences." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:117 +msgid "" +"An I2P destination itself is a cryptographic construct - all data sent to" +" one is \n" +"encrypted as if there were universal deployment of IPsec with the " +"(anonymized)\n" +"location of the end point signed as if there were universal deployment of" +" DNSSEC." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:122 +msgid "" +"I2P destinations are mobile identifiers - they can be moved from one I2P " +"router\n" +"to another (or it can even \"multihome\" - operate on multiple routers at" +"\n" +"once). This is quite different from the TCP or UDP world where a single " +"end point (port)\n" +"must stay on a single host." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:129 +msgid "" +"I2P destinations are ugly and large - behind the scenes, they contain a " +"2048 bit ElGamal\n" +"public key for encryption, a 1024 bit DSA public key for signing, and a " +"variable size \n" +"certificate, which may contain proof of work or blinded data." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:134 +#, python-format +msgid "" +"There are existing ways to refer to these large and ugly destinations by " +"short\n" +"and pretty names (e.g. \"irc.duck.i2p\"), but those techniques do not " +"guarantee\n" +"globally uniqueness (since they're stored locally in a database on each " +"person's machine)\n" +"and the current mechanism is not especially scalable nor secure (updates " +"to the host list are\n" +"managed using \"subscriptions\" to naming services).\n" +"There may be some secure, human readable, scalable, and globally \n" +"unique, naming system some day, but applications shouldn't depend upon it" +" being in place,\n" +"since there are those who don't think such a beast is possible.\n" +"Further information on the naming system is " +"available." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:148 +#, python-format +msgid "" +"While most applications do not need to distinguish protocols and ports,\n" +"I2P does support them. Complex applications may specify a " +"protocol,\n" +"from port, and to port, on a per-message basis, to multiplex traffic on\n" +"a single destination.\n" +"See the datagram page for details.\n" +"Simple applications operate by listening for \"all protocols\" on \"all " +"ports\" of a destination." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:157 +msgid "Anonymity and confidentiality" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:159 +msgid "" +"I2P has transparent end to end encryption\n" +"and authentication for all data passed over the network - if Bob sends to" +" Alice's destination,\n" +"only Alice's destination can receive it, and if Bob is using the " +"datagrams or streaming \n" +"library, Alice knows for certain that Bob's destination is the one who " +"sent the data." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:166 +msgid "" +"Of course, I2P transparently anonymizes the\n" +"data sent between Alice and Bob, but it does nothing to anonymize the " +"content of what they\n" +"send. For instance, if Alice sends Bob a form with her full name, " +"government IDs, and \n" +"credit card numbers, there is nothing I2P can do. As such, protocols and" +" applications should \n" +"keep in mind what information they are trying to protect and what " +"information they are willing\n" +"to expose." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:175 +msgid "I2P datagrams can be up to several KB" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:177 +#, python-format +msgid "" +"Applications that use I2P datagrams (either raw or repliable ones) can " +"essentially be thought\n" +"of in terms of UDP - the datagrams are unordered, best effort, and " +"connectionless - but unlike\n" +"UDP, applications don't need to worry about MTU detection and can simply " +"fire off large datagrams.\n" +"While the upper limit is nominally 32 KB, the message is fragmented for " +"transport, thus dropping\n" +"the reliability of the whole. Datagrams over about 10 KB are not " +"currently recommended.\n" +"See the datagram page for details.\n" +"For many applications, 10 KB of data is sufficient for an\n" +"entire request or response, allowing them to transparently operate in I2P" +" as a UDP-like \n" +"application without having to write fragmentation, resends, etc." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:191 +msgid "" +"There are several means of sending data over I2P, each with their own " +"pros and cons.\n" +"The streaming lib is the recommended interface, used by the majority of " +"I2P applications." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:196 +msgid "Streaming Lib" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:197 +#, python-format +msgid "" +"The full streaming library is now the " +"standard\n" +"interface. It allows programming using TCP-like sockets, as explained in " +"the Streaming development guide." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:203 +#, python-format +msgid "" +"BOB is the Basic Open Bridge,\n" +"allowing an application in any language to make streaming connections \n" +"to and from I2P. At this point in time it lacks UDP support, but UDP " +"support\n" +"is planned in the near future. BOB also contains several tools, such as \n" +"destination key generation, and verification that an address conforms to" +" \n" +"I2P specifications. Up to date info and applications that use BOB can be" +" \n" +"found at this eepsite." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:216 +msgid "SAM is not recommended. SAM V2 is okay, SAM V3 is recommended." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:217 +#, python-format +msgid "" +"SAM is the Simple Anonymous Messaging protocol, " +"allowing an\n" +"application written in any language to talk to a SAM bridge through a " +"plain TCP socket and have\n" +"that bridge multiplex all of its I2P traffic, transparently coordinating " +"the encryption/decryption\n" +"and event based handling. SAM supports three styles of operation:" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:224 +msgid "" +"streams, for when Alice and Bob want to send data to each other reliably " +"and in order" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:227 +msgid "" +"repliable datagrams, for when Alice wants to send Bob a message that Bob " +"can reply to" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:230 +msgid "" +"raw datagrams, for when Alice wants to squeeze the most bandwidth and " +"performance as possible,\n" +"and Bob doesn't care whether the data's sender is authenticated or not " +"(e.g. the data transferred\n" +"is self authenticating)" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:236 +msgid "" +"SAM V3 aims at the same goal as SAM and SAM V2, but does not require\n" +"multiplexing/demultiplexing. Each I2P stream is handled by its own socket" +" between the application\n" +"and the SAM bridge. Besides, datagrams can be sent and received by the " +"application through datagram\n" +"communications with the SAM bridge." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:243 +#, python-format +msgid "" +"SAM V2 is a new version used by imule\n" +"that fixes some of the problems in SAM.\n" +"
\n" +"SAM V3 is used by imule since version 1.4.0." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:251 +msgid "" +"The I2PTunnel application allows applications to build specific TCP-like " +"tunnels to peers \n" +"by creating either I2PTunnel 'client' applications (which listen on a " +"specific port and connect\n" +"to a specific I2P destination whenever a socket to that port is opened) " +"or I2PTunnel 'server'\n" +"applications (which listen to a specific I2P destination and whenever it " +"gets a new I2P \n" +"connection it outproxies to a specific TCP host/port). These streams are" +" 8-bit clean, and are\n" +"authenticated and secured through the same streaming library that SAM " +"uses, but there is a \n" +"nontrivial overhead involved with creating multiple unique I2PTunnel " +"instances, since each have\n" +"their own unique I2P destination and their own set of tunnels, keys, etc." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:263 +msgid "" +"I2P supports a SOCKS V4 and V5 proxy.\n" +"Outbound connections work well. Inbound (server) and UDP functionality " +"may be incomplete\n" +"and untested." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:270 +msgid "Removed" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:271 +msgid "" +"There used to be a simple \"ministreaming\" library,\n" +"but now ministreaming.jar contains only the interfaces for the full " +"streaming library." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:276 +msgid "Datagrams" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:277 +msgid "Recommended for UDP-like applications" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:278 +#, python-format +msgid "" +"The Datagram library allows sending UDP-" +"like packets.\n" +"It's possible to use:" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:283 +msgid "Repliable datagrams" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:284 +msgid "Raw datagrams" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:288 +msgid "Not recommended" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:289 +#, python-format +msgid "" +"I2CP itself is a language independent protocol, " +"but to implement an I2CP library \n" +"in something other than Java there is a significant amount of code to be " +"written (encryption routines, \n" +"object marshalling, asynchronous message handling, etc). While someone " +"could write an I2CP library in \n" +"C or something else, it would most likely be more useful to use the C SAM" +" library instead." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:296 +msgid "Web Applications" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:297 +msgid "" +"I2P comes with the Jetty webserver, and configuring to use the Apache " +"server instead is straightforward.\n" +"Any standard web app technology should work." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:303 +msgid "" +"Developing using I2P requires a working I2P installation and a " +"development environment of your own choice.\n" +"If you are using Java, you can start development with the streaming library or datagram library.\n" +"Using another programming language, SAM or BOB can be used." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:309 +msgid "Developing with the streaming library" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:311 +msgid "" +"The following example shows how to create TCP-like client and server " +"applications\n" +"using the streaming library." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:316 +msgid "This will require the following libraries in your classpath:" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:320 +msgid "The streaming library itself" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:321 +msgid "Factory and interfaces for the streaming library" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:322 +msgid "Standard I2P classes, data structures, API, and utilities" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:325 +msgid "" +"You can fetch these from an I2P installation, or add the following " +"dependencies\n" +"from Maven Central:" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:334 +msgid "" +"Network communication requires the usage of I2P network sockets.\n" +"To demonstrate this, we will create an application where a client can " +"send text messages to a server,\n" +"who will print the messages and send them back to the client. In other " +"words, the server will function as an echo." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:339 +msgid "" +"We will start by initializing the server application. This requires " +"getting an I2PSocketManager\n" +"and creating an I2PServerSocket.\n" +"We will not provide the I2PSocketManagerFactory with the saved keys for " +"an existing Destination,\n" +"so it will create a new Destination for us.\n" +"So we will ask the I2PSocketManager for an I2PSession, so we can find out" +" the Destination that\n" +"was created, as we will need to copy and paste that information later so " +"the client can connect to us." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:370 +msgid "Code example 1: initializing the server application." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:372 +msgid "" +"Once we have an I2PServerSocket, we can create I2PSocket instances to " +"accept connections from clients.\n" +"In this example, we will create a single I2PSocket instance, that can " +"only handle one client at a time.\n" +"A real server would have to be able to handle multiple clients.\n" +"To do this, multiple I2PSocket instances would have to be created, each " +"in separate threads.\n" +"Once we have created the I2PSocket instance, we read data, print it and " +"send it back to the client.\n" +"The bold code is the new code we add." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:456 +msgid "Code example 2: accepting connections from clients and handling messages." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:460 +msgid "" +"When you run the above server code, it should print something like this " +"(but without the line endings, it should just be\n" +"one huge block of characters):" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:474 +msgid "" +"This is the base64-representation of the server Destination. The client " +"will need this string to reach the server." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:478 +msgid "" +"Now, we will create the client application. Again, a number of steps are " +"required for initialization.\n" +"Again, we will need to start by getting an I2PSocketManager.\n" +"We won't use an I2PSession and an I2PServerSocket this time.\n" +"Instead, we will use the server Destination string to start our " +"connection.\n" +"We will ask the user for the Destination string, and create an I2PSocket " +"using this string.\n" +"Once we have an I2PSocket, we can start sending and receiving data to and" +" from the server." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:562 +msgid "" +"Code example 3: starting the client and connecting it to the server " +"application." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:564 +msgid "" +"Finally, you can run both the server and the client application.\n" +"First, start the server application. It will print a Destination string " +"(like shown above).\n" +"Next, start the client application. When it requests a Destination " +"string, you can enter the string printed by the server.\n" +"The client will then send 'Hello I2P!' (along with a newline) to the " +"server, who will print the message and send it back to the client." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:570 +msgid "Congratulations, you have successfully communicated over I2P!" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:574 +msgid "Existing Applications" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:575 +msgid "Contact us if you would like to contribute." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:596 +msgid "Application Ideas" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:598 +msgid "NNTP server - there have been some in the past, none at the moment" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:601 +msgid "" +"Jabber server - there have been some in the past, and there is one at the" +" moment, with access to the public internet" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:604 +msgid "PGP Key server and/or proxy" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:607 +msgid "" +"Content Distribution / DHT applications - resurrect feedspace,\n" +"port dijjer, look for alternatives" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:611 +msgid "Help out with Syndie development" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:614 +msgid "" +"Web-based applications - The sky is the limit for hosting web-server-" +"based\n" +"applications such as blogs, pastebins, storage, tracking, feeds, etc.\n" +"Any web or CGI technology such as Perl, PHP, Python, or Ruby will work." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:619 +msgid "" +"Resurrect some old apps, several previously in the i2p source package -\n" +"bogobot, pants, proxyscript, q, stasher, socks proxy, i2ping, feedspace" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/developers-keys.html:2 +msgid "I2P Developer's MTN Keys" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/developers-keys.html:4 +msgid "" +"Monotone servers used by the I2P project require two types of keys to be " +"used." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/developers-keys.html:8 +msgid "" +"Commit Keys to sign changes checked-in to the " +"respository; and" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/developers-keys.html:9 +msgid "" +"Transport Keys to push changes to remote " +"servers." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/developers-keys.html:12 +#, python-format +msgid "" +"Everyone that uses Monotone to checkout the I2P codebase will need to\n" +"import the\n" +"developer commit keys, but only Monotone \n" +"server operators will need to import the transport keys." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/developers-keys.html:19 +msgid "Developer Commit keys" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/developers-keys.html:291 +msgid "Developer Transport Keys" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/developers-keys.html:292 +#, python-format +msgid "" +"Note: Transport keys are only needed for setting up a\n" +"Monotone server." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/license-agreements.html:2 +msgid "License Agreements" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/license-agreements.html:5 +#, python-format +msgid "For more information see the licenses page." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/license-agreements.html:8 +msgid "" +"Following is a monotonerc file defining the current trust list.\n" +"Developers must use this file in ~/.monotone/monotonerc or\n" +"_MTN/montonerc in their i2p.i2p workspace." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/license-agreements.html:17 +msgid "Agreements" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:2 +msgid "I2P Software Licenses" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:4 +#, python-format +msgid "" +"As required by our\n" +"threat model (among other reasons), the \n" +"software developed to support the anonymous communication \n" +"network we call I2P must be freely available, open source, \n" +"and user modifiable. To meet these criteria, we make use of\n" +"a variety of legal and software engineering techniques so\n" +"as to remove as many barriers to entry for those considering\n" +"making use of or contributing to the I2P effort." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:15 +msgid "" +"While the information below may be more confusing than just simply \n" +"stating \"I2P is BSD\", \"I2P is GPL\", or \"I2P is public domain\",\n" +"the short answer to the question \"How is I2P licensed?\" is this:" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:21 +msgid "All software bundled in the I2P distributions will allow:" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:23 +msgid "use without fee" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:24 +msgid "" +"use with no restrictions on how, when, where, why, or by whom is running " +"it" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:25 +msgid "access to the source code without fee" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:26 +msgid "modifications to the source" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:29 +msgid "" +"Most of the software guarantees much more - the ability of anyone " +"to \n" +"distribute the modified source however they choose. However, not all of " +"the \n" +"software bundled provides this freedom - the GPL restricts the ability of" +" \n" +"developers who wish to integrate I2P with their own applications that are" +" not \n" +"themselves open source applications. While we applaud the noble goals of" +" \n" +"increasing the resources in the commons, I2P is best served by removing " +"any\n" +"barriers that stand in the way of its adoption - if a developer " +"considering whether\n" +"they can integrate I2P with their application has to stop and check with " +"their lawyer,\n" +"or conduct a code audit to make sure their own source can be released as " +"GPL-compatible,\n" +"we lose out." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:42 +msgid "Component licenses" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:43 +msgid "" +"The I2P distribution contains several resources, reflecting the " +"partitioning of \n" +"the source code into components. Each component has its own license, " +"which all \n" +"developers who contribute to it agree to - either by explicitly declaring" +" the release\n" +"of code committed under a license compatible with that component, or by " +"implicitly\n" +"releasing the code committed under the component's primary license. Each" +" of these \n" +"components has a lead developer who has the final say as to what license " +"is compatible\n" +"with the component's primary license, and the I2P project manager has the" +" final say as\n" +"to what licenses meet the above four guarantees for inclusion in the I2P " +"distribution." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:56 +msgid "Component" +msgstr "Përbërës" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:57 +msgid "Source path" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:58 +msgid "Resource" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:59 +msgid "Primary license" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:60 +msgid "Alternate licenses" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:61 +msgid "Lead developer" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:275 +msgid "GPL + java exception" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:276 +#, python-format +msgid "" +"While it may be redundant, just for clarity the\n" +"GPL'ed code included within\n" +"I2PTunnel and other apps must be released under the GPL with an " +"additional \"exception\"\n" +"explicitly authorizing the use of Java's standard libraries:" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:292 +msgid "" +"All source code under each component will by default be licensed under " +"the\n" +"primary license, unless marked otherwise in the code. All of the above " +"is\n" +"summary of the license terms - please see the specific license for the " +"component\n" +"or source code in question for authoritative terms. Component source " +"locations and\n" +"resource packaging may be changed if the repository is reorganized." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:300 +msgid "Website content" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:308 +msgid "Commit privileges" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:309 +#, python-format +msgid "" +"Developers may push changes to a distributed monotone repository if you\n" +"receive permission from the person running that repository.\n" +"See the Monotone Page for details." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:315 +msgid "" +"However, to have changes included in a release, developers\n" +"must be trusted by the release manager (currently zzz).\n" +"In addition, they must explicitly agree with the above terms to be " +"trusted.\n" +"That means that they must send one of the release managers a signed " +"message affirming that:" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:322 +msgid "" +"Unless marked otherwise, all code I commit is implicitly licensed under\n" +"the component's primary license" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:326 +msgid "" +"If specified in the source, the code may be explicitly licensed under one" +"\n" +"of the component's alternate licenses" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:330 +msgid "" +"I have the right to release the code I commit under the terms I\n" +"am committing it" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:336 +#, python-format +msgid "" +"If anyone is aware of any instances where the above conditions are not " +"met,\n" +"please contact the component lead and/or an I2P release manager with " +"further\n" +"information.\n" +"See developers' license agreements." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/release-signing-key.html:2 +msgid "Release Signing Key" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/release-signing-key.html:4 +msgid "Releases 0.7.6 and later are signed by zzz. His current public key is:" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/release-signing-key.html:190 +msgid "Releases from 0.9.9 could be signed by str4d. His current public key is:" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/release-signing-key.html:563 +msgid "str4d has signed the following releases:" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/release-signing-key.html:571 +msgid "Releases 0.7.6 through 0.9.12 were signed by zzz with the following key:" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/release-signing-key.html:607 +msgid "" +"Releases 0.6.1.31 through 0.7.5 were signed by Complication. His public " +"key is:" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/security-key.html:2 +msgid "Security GPG Key" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/security-key.html:4 +msgid "Following is the GPG key for the security _at_ geti2p.net email address:" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/signed-keys.html:2 +msgid "Signed Developer Keys" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/signed-keys.html:4 +msgid "" +"Keys for zzz, Complication and welterde are provided clearsigned. The key" +" for jrandom must be\n" +"verified differently, since he's away, and only left a binary detached\n" +"signature for his key." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/signed-keys.html:10 +#: i2p2www/pages/site/get-involved/develop/signed-keys.html:16 +msgid "Monotone keys for zzz" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/signed-keys.html:11 +#: i2p2www/pages/site/get-involved/develop/signed-keys.html:47 +msgid "Monotone keys for welterde" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/signed-keys.html:12 +#: i2p2www/pages/site/get-involved/develop/signed-keys.html:79 +msgid "Monotone keys for Complication" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/signed-keys.html:13 +#: i2p2www/pages/site/get-involved/develop/signed-keys.html:114 +msgid "Monotone keys for jrandom" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/signed-keys.html:14 +#: i2p2www/pages/site/get-involved/develop/signed-keys.html:169 +msgid "Others" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/signed-keys.html:17 +msgid "" +"Tip: To find zzz's GPG key, on his eepsite locate the key " +"`0xA76E0BED`, with\n" +"the name `zzz@mail.i2p` and the fingerprint `4456 EBBE C805 63FE 57E6 " +"B310 4155\n" +"76BA A76E 0BED`." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/signed-keys.html:49 +msgid "" +"Tip: To find welterde's GPG key, on public keyservers locate the " +"key\n" +"`0x62E011A1`, with the name `welterde@arcor.de` and the fingerprint `6720" +" FD81\n" +"3872 6DFC 6016 64D1 EBBC 0374 62E0 11A1`." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/signed-keys.html:81 +msgid "" +"Tip: To find Complication's GPG key, on his eepsite locate the key" +"\n" +"`0x79FCCE33`, with the name `complication@mail.i2p` and the fingerprint " +"`73CF\n" +"2862 87A7 E7D2 19FF DB66 FA1D FC6B 79FC CE33`." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/signed-keys.html:116 +msgid "" +"Tip: To find jrandom's GPG key for Syndie releases, on public " +"keyservers locate\n" +"the key `0x393F2DF9`, with the name `syndie-dist-key@i2p.net` and the\n" +"fingerprint `AE89 D080 0E85 72F0 B777 B2ED C2FA 68C0 393F 2DF9`." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/signed-keys.html:122 +msgid "" +"Jrandom had to leave unexpectedly in the end of 2007. His commit key was\n" +"deployed in the Syndie Monotone repository, in a file named `mtn-" +"committers`.\n" +"That file also had a GPG signature, `mtn-committers.sig`, but it was a " +"binary\n" +"detached signature. I am going to supply both files in GPG ASCII-armoured" +" form\n" +"below." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/signed-keys.html:130 +msgid "" +"First, the file `mtn-committers` containing jrandom's Monotone key. Save " +"as\n" +"`mtn-committers.asc` and unpack it using `gpg --output mtn-committers " +"--dearmor\n" +"mtn-committers.asc`:" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/signed-keys.html:151 +msgid "" +"Now the file `mtn-committers.sig`, containing the GPG signature. Save as\n" +"`mtn-committers.sig.asc` and unpack it using `gpg --output mtn-" +"committers.sig\n" +"--dearmor mtn-committers.sig.asc`. Use it to verify the above supplied\n" +"`mtn-committers` file:" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/signed-keys.html:170 +#, python-format +msgid "" +"Some of the developers have included their Monotone keys in their signed license agreement." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:2 +msgid "Developer Guidelines and Coding Style" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:3 +msgid "January 2017" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:5 +#, python-format +msgid "Read the new developers guide first." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:9 +msgid "Basic Guidelines and Coding Style" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:11 +msgid "" +"Most of the following should be common sense for anybody who has worked " +"on open source or in a commercial\n" +"programming envrionment.\n" +"The following applies mostly to the main development branch i2p.i2p.\n" +"Guidelines for other branches, plugins, and external apps may be " +"substantially different;\n" +"check with the appropriate developer for guidance." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:19 +msgid "Community" +msgstr "Bashkësi" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:21 +msgid "" +"Please don't just \"write code\". If you can, participate in other " +"development activities, including:\n" +"development discussions and support on IRC, zzz.i2p, and forum.i2p; " +"testing;\n" +"bug reporting and responses; documentation; code reviews; etc." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:26 +msgid "" +"Active devs should be available periodically on IRC #i2p-dev.\n" +"Be aware of the current release cycle.\n" +"Adhere to release milestones such as feature freeze, tag freeze, and\n" +"the checkin deadline for a release." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:35 +msgid "Release Cycle" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:36 +msgid "" +"Our normal release cycle is 6-10 weeks.\n" +"Following are the approximate deadlines within a typical 8-week cycle.\n" +"Actual deadlines for each release are set by the lead developer." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:43 +msgid "1-2 days after previous release: Checkins to trunk are allowed." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:46 +msgid "" +"2-3 weeks after previous release: Deadline to propagate major changes " +"from other branches to trunk." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:49 +msgid "4-5 weeks before release: Deadline to request new home page links." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:52 +msgid "3-4 weeks before release: Feature freeze. Deadline for major new features." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:55 +msgid "" +"2-3 weeks before release: Hold project meeting to review new home page " +"link requests, if any." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:58 +msgid "" +"7-10 days before release: String freeze. No more changes to translated " +"(\"tagged\") strings.\n" +"Push strings to Transifex, announce translation deadline on Transifex." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:62 +msgid "" +"7-10 days before release: Feature deadline. Bug fixes only after this " +"time. No more features, refactoring or cleanup." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:65 +msgid "" +"3-4 days before release: Translation deadline. Pull translations from " +"Transifex and check in." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:68 +msgid "" +"2-3 days before release: Checkin deadline. No checkins after this time " +"without the permission of the release builder." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:71 +msgid "Hours before release: Code review deadline." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:80 +msgid "" +"Have a basic understanding of distributed source control systems, even if" +" you haven't\n" +"used monotone before. Ask for help if you need it.\n" +"Once pushed, checkins are forever, there is no undo. Please be careful.\n" +"If you have not used monotone before, start with baby steps.\n" +"Check in some small changes and see how it goes." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:87 +msgid "" +"Test your changes before checking them in.\n" +"If you prefer the checkin-before-test development model,\n" +"use your own development branch (e.g. i2p.i2p.yourname.test)\n" +"and propagate back to i2p.i2p once it is working well.\n" +"Do not break the build. Do not cause regressions.\n" +"In case you do (it happens), please do not vanish for a long period after" +"\n" +"you push your change." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:96 +msgid "" +"If your change is non-trivial, or you want people to test it and need " +"good test reports\n" +"to know whether your change was tested or not, add a checkin comment to " +"history.txt\n" +"and increment the build revision in RouterVersion.java." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:101 +msgid "" +"Ensure that you have the latest monotonerc file in _MTN.\n" +"Do not check in on top of untrusted revisions." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:105 +msgid "" +"Ensure that you 'mtn pull' and 'mtn update' to the latest revision before" +" you check in and push.\n" +"If you inadvertently diverge, merge and push as soon as possible.\n" +"Don't routinely make others merge for you.\n" +"Yes, we know that monotone says you should push and then merge,\n" +"but in our experience, in-workspace merge works just as well as in-" +"database merge,\n" +"without creating a merge revision." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:113 +msgid "" +"Do not check in major changes into the main i2p.i2p branch late in the " +"release cycle.\n" +"If a project will take you more than a couple days, create your own " +"branch in monotone\n" +"and do the development there so you do not block releases." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:120 +msgid "Coding Style" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:122 +msgid "" +"Coding style throughout most of the code is 4-spaces for indentation. Do " +"not use tabs.\n" +"Do not reformat code. If your IDE or editor wants to reformat everything," +" get control of it.\n" +"Yes, we know 4 spaces is a pain, but perhaps you can configure your " +"editor appropriately.\n" +"In some places, the coding style is different.\n" +"Use common sense. Emulate the style in the file you are modifying." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:129 +msgid "" +"All new public and package-private classes and methods require Javadocs. " +"Add @since release-number.\n" +"Javadocs for new private methods are desirable." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:133 +msgid "" +"For any Javadocs added, there must not be any doclint errors or warnings." +"\n" +"Run 'ant javadoc' with Oracle Java 8 or higher to check.\n" +"All params must have @param lines, all non-void methods must have @return" +" lines,\n" +"all exceptions declared thrown must have @throws lines, and no HTML " +"errors." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:139 +msgid "" +"Classes in core/ (i2p.jar) and portions of i2ptunnel are part of our " +"official API.\n" +"There are several out-of-tree plugins and other applications that rely on" +" this API.\n" +"Be careful not to make any changes that break compatibility.\n" +"Don't add methods to the API unless they are of general utility.\n" +"Javadocs for API methods should be clear and complete.\n" +"If you add or change the API, also update the documentation on the " +"website (i2p.www branch)." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:147 +msgid "" +"Tag strings for translation where appropriate.\n" +"Don't change existing tagged strings unless really necessary, as it will " +"break existing translations.\n" +"Do not add or change tagged strings after the \"tag freeze\" in the " +"release cycle so that\n" +"translators have a chance to update before the release." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:153 +msgid "" +"Use generics and concurrent classes where possible. I2P is a highly " +"multi-threaded application." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:156 +msgid "" +"Be familiar with common Java pitfalls that are caught by findbugs.\n" +"Run 'ant findbugs' to learn more." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:160 +msgid "" +"We require Java 7 to build and run I2P.\n" +"Do not use Java 8 classes or methods anywhere.\n" +"Do not use Java 7 or 8 classes or methods in embedded subsystems (core, " +"router, mstreaming, streaming, i2ptunnel),\n" +"as Android and embedded applications require only Java 6. All classes " +"must be available in Android API 9.\n" +"Java 7 language features are acceptable in these subsystems if supported " +"by the current version\n" +"of the Android SDK and they compile to Java 6-compatible code." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:168 +msgid "" +"Explicitly convert between primitive types and classes;\n" +"don't rely on autoboxing/unboxing." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:172 +msgid "Don't use URL. Use URI." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:175 +msgid "" +"Don't catch Exception. Catch RuntimeException and checked exceptions " +"individually." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:178 +msgid "" +"Don't use String.getBytes() without a UTF-8 charset argument. You may " +"also use DataHelper.getUTF8() or DataHelper.getASCII()." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:181 +msgid "" +"Always specify a UTF-8 charset when reading or writing files. The " +"DataHelper utilities may be helpful." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:184 +msgid "" +"Always specify a locale (for example Locale.US) when using " +"String.toLowerCase() or String.toUpperCase().\n" +"Do not use String.equalsIgnoreCase(), as a locale cannot be specified." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:188 +msgid "Don't use String.split(). Use DataHelper.split()." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:191 +msgid "Ensure that InputStreams and OutputStreams are closed in finally blocks." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:194 +msgid "" +"Use {} for all for and while blocks, even if only one line.\n" +"If you use {} for either the if, else, or if-else block, use it for all " +"blocks.\n" +"Put \"} else {\" on a single line." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:199 +msgid "Specify fields as final wherever possible." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:202 +msgid "" +"Don't store I2PAppContext, RouterContext, Log, or any other references to" +" router or context items in static fields." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:205 +msgid "Don't start threads in constructors. Use I2PAppThread instead of Thread." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:210 +msgid "Licenses" +msgstr "Lisencat" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:212 +msgid "" +"Only check in code that you wrote yourself.\n" +"Before checking in any code or library jars from other sources,\n" +"justify why it is necessary,\n" +"verify the license is compatible,\n" +"and obtain approval from the lead developer." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:219 +msgid "" +"If you do obtain approval to add external code or jars,\n" +"and binaries are available in any Debian or Ubuntu package,\n" +"you must implement build and packaging options to use the external " +"package instead.\n" +"Checklist of files to modify:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:227 +msgid "" +"For any images checked in from external sources,\n" +"it is your responsibility to first verify the license is compatible.\n" +"Include the license and source information in the checkin comment." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:234 +msgid "Bugs" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:236 +#, python-format +msgid "" +"Managing Trac tickets is everybody's job, please help.\n" +"Monitor %(trac)s for tickets you have been assigned or can help with.\n" +"Assign, categorize, comment on, fix, or close tickets if you can." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:241 +msgid "" +"New developers should start by fixing a bug.\n" +"Search for bugs with the 'easy' keyword on trac.\n" +"When you have a fix, attach your patch to the ticket and add the keyword " +"'review-needed'.\n" +"Do not close the ticket until it's been successfully reviewed and you've " +"checked your changes in.\n" +"Once you've done this smoothly for a couple of tickets, you may follow " +"the normal procedure below." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:248 +msgid "" +"Close a ticket when you think you've fixed it.\n" +"We don't have a test department to verify and close tickets.\n" +"If you arent sure you fixed it, close it and add a note saying\n" +"\"I think I fixed it, please test and reopen if it's still broken\".\n" +"Add a comment with the dev build number or revision and set\n" +"the milestone to the next release." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/ides.html:2 +msgid "Using an IDE with I2P" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/ides.html:4 +msgid "" +"The main I2P development branch (i2p.i2p) has been set up to" +" enable developers to easily set up two of the commonly-used IDEs for " +"Java development: Eclipse and NetBeans." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/ides.html:10 +msgid "" +"The main I2P development branches (i2p.i2p and branches from" +" it) contain .project and .classpath Eclipse files, to enable the branch " +"to be easily set up in Eclipse." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/ides.html:16 +msgid "" +"Check out the I2P branch into some directory (e.g. " +"$HOME/dev/i2p.i2p)." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/ides.html:20 +msgid "" +"Open Eclipse and create a new Workspace, based in the directory that the " +"I2P branch was checked out to." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/ides.html:24 +msgid "" +"Select \"File - Import...\" and then under \"General\" select \"Existing " +"Projects into Workspace\"." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/ides.html:28 +msgid "" +"For \"Select root directory:\" choose the directory that the I2P branch " +"was checked out to." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/ides.html:32 +msgid "If necessary, click \"Refresh\" to refresh the list of projects." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/ides.html:36 +msgid "Select every project in the list, and click \"Finish\"." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/ides.html:40 +msgid "" +"Done! Your workspace should now contain all projects within the I2P " +"branch, and their build dependencies should be correctly set up." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/ides.html:48 +msgid "" +"The main I2P development branches (i2p.i2p and branches from" +" it) contain NetBeans project files." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:2 +msgid "Monotone Guide" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:6 +msgid "Operating a Monotone client" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:8 +#: i2p2www/pages/site/get-involved/guides/monotone.html:61 +msgid "Generating Monotone keys" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:9 +msgid "Trust and initializing your repository" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:10 +#: i2p2www/pages/site/get-involved/guides/monotone.html:194 +msgid "Obtaining and deploying developers' keys" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:11 +#: i2p2www/pages/site/get-involved/guides/monotone.html:225 +msgid "Setting up trust evaluation hooks" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:12 +#: i2p2www/pages/site/get-involved/guides/monotone.html:266 +msgid "" +"Pulling the i2p.i2p, i2p.www and " +"i2p.syndie branches" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:13 +#: i2p2www/pages/site/get-involved/guides/monotone.html:312 +msgid "Verifying that trust evaluation works" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:14 +#: i2p2www/pages/site/get-involved/guides/monotone.html:361 +msgid "Checking out a working copy of the latest version" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:15 +#: i2p2www/pages/site/get-involved/guides/monotone.html:388 +msgid "Updating your working copy to the latest version" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:19 +#: i2p2www/pages/site/get-involved/guides/monotone.html:418 +msgid "Operating a Monotone Server" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:21 +msgid "Obtaining and deploying developers’ transport keys" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:22 +#: i2p2www/pages/site/get-involved/guides/monotone.html:428 +msgid "Granting push and pull access" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:23 +#: i2p2www/pages/site/get-involved/guides/monotone.html:473 +msgid "Running Monotone in server mode" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:24 +#: i2p2www/pages/site/get-involved/guides/monotone.html:498 +msgid "Differences under Debian GNU/Linux" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:32 +#, python-format +msgid "" +"This is a revised version of Complication's original\n" +" guide detailing the use of Monotone in I2P development.\n" +" For basic instructions see the quick-start " +"guide." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:40 +#, python-format +msgid "" +"I2P has a distributed development model. The source code is replicated " +"across\n" +" independently administered Monotone (\"MTN\") repositories.\n" +" Developers with commit rights are able to push their changes to the " +"repository\n" +" (a license agreement needs to be " +"signed\n" +" before commit rights are granted)." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:50 +msgid "" +"Some of Monotone's noteworthy qualities are: distributed\n" +" version control, cryptographic authentication, access control, its " +"small size, having few\n" +" dependencies, storage of projects in a compressed SQLite database file," +" and\n" +" having the ability to resume interrupted synchronization attempts." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:59 +msgid "Operating a Monotone Client" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:64 +msgid "" +"A transport key grants you the ability to push your changes to a Monotone" +" repository server.\n" +" In order to commit code into Monotone (in essence signing your code), a" +" commit key is also needed.\n" +" None of the public Monotone servers on I2P currently require a key in " +"order to read (or pull) the source code." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:72 +msgid "" +"Without a transport key, one cannot:\n" +"
    \n" +"
  • pull code from a server which doesn't allow global read " +"access
  • \n" +"
  • push code to any server
  • \n" +"
  • run a Monotone server
  • \n" +"
" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:83 +msgid "" +"Without a commit key, one cannot:\n" +"
    \n" +"
  • commit any code
  • \n" +"
" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:92 +msgid "" +"If you only intend to retrieve code from MTN, feel free to skip to the\n" +" next section. " +"If you want\n" +" to generate keys, read the following." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:100 +msgid "" +"By convention keys are named like an e-mail addresses, but a " +"corresponding e-mail\n" +" address does not need to exist. For example, your keys might be named:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:111 +msgid "" +"Monotone stores keys under $HOME/.monotone/keys in " +"text files which\n" +" are named identically to the keys. For example:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:121 +msgid "" +"To generate transport and commit keys, enter the following commands at a " +"prompt:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:131 +msgid "" +"Monotone will prompt you for a password to protect your keys. You are " +"very strongly encouraged to set a password\n" +" for the commit key. Many users will leave an empty password for the " +"transport key, especially those running a\n" +" Monotone server." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:139 +msgid "Trust, and initializing your repository" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:143 +msgid "" +"Monotone's security model helps to ensure that nobody can easily " +"impersonate a developer without\n" +" it being noticed. Since developers can make mistakes and become " +"compromised,only manual review can\n" +" ensure quality of code. Monotone's trust model will ensure that you " +"read the right diffs. It does\n" +" not replace reading diffs." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:153 +msgid "" +"A Monotone repository is a single file (a compressed SQLite database) " +"which contains all of the project's source code and history." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:159 +msgid "" +"After importing the " +"developers' keys into Monotone and\n" +" setting up trust " +"evaluation hooks,\n" +" Monotone will prevent untrusted code from being checked out into your " +"workspace.\n" +" There are commands available to clean untrusted code from your " +"workspace but in practice they've not been\n" +" needed due to the push access policies in place." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:169 +msgid "" +"A repository can hold many branches. For example, our repository holds " +"the\n" +" following main branches:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:174 +msgid "The I2P router and associated programs" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:175 +msgid "The I2P project website" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:176 +msgid "Syndie, a distributed forums tool" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:181 +msgid "" +"By convention, the I2P Monotone repository is named i2p.mtn." +" Before pulling\n" +" source code from servers, a database for your repository will need to " +"be initialized.\n" +" To initialize your local repository, change into the directory that you" +" want the\n" +" i2p.mtn file and branch directories to be stored and issue" +" the following\n" +" command:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:197 +msgid "" +"Keys which developers use to commit code are essential for trust " +"evaluation in\n" +" Monotone. The other developers' transport keys are only required for " +"Monotone server operators.\n" +" " +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:204 +#, python-format +msgid "" +"Developers' commit keys are provided GPG-signed on another page." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:210 +#, python-format +msgid "" +"To import developers' keys after verifying their authenticity, copy all of the keys into a new\n" +" file. Create this file (e.g. keys.txt) in the same " +"directory where i2p.mtn is located. Import the keys with the" +" command:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:220 +msgid "" +"Note: Never add keys to " +"$HOME/.monotone/keys manually." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:228 +msgid "" +"The default Monotone trust policy is way too lax for our requirements: " +"every committer is trusted by default.\n" +" That is not acceptable for I2P development." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:235 +msgid "" +"Change into the directory $HOME/.monotone and open " +"the file\n" +" monotonerc with a text editor. Copy and paste the " +"following two functions into this file:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:244 +msgid "" +"The first function determines an intersection between two sets, in our " +"case a\n" +" revision's signers and trusted signers." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:251 +msgid "" +"The second function determines trust in a given revision, by calling the " +"first\n" +" function with \"signers\" and \"trusted\" as arguments. If the " +"intersection is\n" +" null, the revision is not trusted. If the intersection is not empty, " +"the\n" +" revision is trusted. Otherwise, the revision is not trusted." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:260 +msgid "" +"More information about Trust Evaluation Hooks can be found in the official Monotone " +"documentation." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:268 +msgid "" +"I2P is shipped with a pre-configured tunnel pointing to the project " +"Monotone server. Ensure that the tunnel has been started\n" +" within I2PTunnel before" +" attempting to pull the source code from 127.0.0.1:8998." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:275 +msgid "" +"Enter the directory where you initialized i2p.mtn. Depending" +" on whether you\n" +" want only I2P sources, or also sources for the I2P website and Syndie, " +"you can\n" +" perform the pull operation in different ways." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:283 +msgid "If you only want I2P sources:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:292 +msgid "If you want all branches:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:298 +msgid "" +"If the transfer aborts before completing sucessfully, simply repeating " +"the pull command will resume the transfer." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:304 +msgid "" +"Pulling in the above examples is done anonymously by specifying an empty " +"transport key.\n" +" If everyone pulls anonymously it will be harder for an attacker who " +"gains control of the server\n" +" to selectively provide some people with tampered data." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:315 +msgid "To verify that trust evaluation works:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:319 +msgid "Make a backup of your monotonerc file." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:320 +msgid "" +"Modify monotonerc by setting the trusted_signers " +"variable in the following way:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:326 +msgid "" +"With monotonerc configured as above, Monotone will no" +" longer trust any committers. Confirm this by changing into the\n" +"directory where i2p.mtn was created and attempt a checkout " +"of the I2P branch:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:336 +msgid "" +"A directory named i2p.i2p should not appear. You " +"should encounter many\n" +" error messages like:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:353 +msgid "" +"If you are satisfied with results, restore the backup of\n" +" monotonerc that was created above. If you didn't create a " +"backup\n" +" as advised, re-read Setting up trust evaluation hooks." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:364 +msgid "" +"If you already have a branch checked out, skip to the next\n" +" section." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:371 +msgid "" +"Change into the directory where i2p.mtn is located. Over " +"there issue:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:380 +msgid "" +"The checkout should complete without error messages and a directory named" +"\n" +" i2p.i2p should appear in the current directory. " +"Congratulations! You have\n" +" successfully checked out the latest I2P sources, ready to be compiled." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:391 +msgid "" +"If you haven't done this already, pull fresh code from the server to your" +" local\n" +" Monotone repository. To accomplish this, change into the directory " +"where\n" +" i2p.mtn is located and issue:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:402 +msgid "Now change into your i2p.i2p directory, and over there issue:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:411 +msgid "" +"As long as there were no errors…Congratulations! You have " +"successfully updated to the latest I2P sources. They\n" +" should be ready to compile." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:420 +msgid "Obtaining and deploying developers' transport keys" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:423 +msgid "" +"As a server operator you may want to grant push access to certain " +"developers." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:431 +msgid "By default the Monotone server denies all access." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:437 +msgid "To grant pull access to all clients, set the following in" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:449 +msgid "" +"No one will not be able to push code to your server without permission " +"being explicitly granted. To grant push access:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:455 +msgid "" +"Add the name of the user's transport key to\n" +"$HOME/.monotone/write-permissions, such as\n" +"
\n"
+"    zzz-transport@mail.i2p\n"
+"    complication-transport@mail.i2p\n"
+"
\n" +"with one key per line." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:466 +msgid "" +"Import the transport key(s) into your database. The procedure for " +"importing transport keys is the same as for\n" +"importing commit keys, which is described in the section Obtaining and deploying " +"developers' keys." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:476 +msgid "" +"A separate database should be used for your Monotone server because " +"monotone will lock the database while it is served to others.\n" +" Make a copy of your development database, then start the server with:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:483 +msgid "" +"If your key is protected with a passphrase, Monotone may request the " +"passphrase\n" +" when the first client connects. You can work around this by connecting " +"making the first client connection to your server\n" +" (or by clearing the password for your transport key)." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:491 +msgid "" +"For your server to be accessible for others over I2P, you will need to " +"create a\n" +" server tunnel for it. Use the \"Standard\" tunnel type and \"Bulk\" " +"profile." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:501 +msgid "" +"Debian (amongst other distributions) has integrated Monotone into their\n" +" framework of daemons/services. Although Monotone servers can still be " +"run\n" +" \"the ordinary way\" on Debian systems, doing it the \"Debian way\" may" +" be more straightforward." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:509 +msgid "" +"Permissions are granted by editing the files\n" +" /etc/monotone/read-permissions and\n" +" /etc/monotone/write-permissions. You'll also need to edit\n" +" /etc/default/monotone to enable monotone to start at boot " +"or to\n" +" customize the host, port, or database location." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:2 +msgid "New Developer's Guide" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:5 +#: i2p2www/pages/site/get-involved/guides/new-developers.html:31 +msgid "Basic study" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:6 +#: i2p2www/pages/site/get-involved/guides/new-developers.html:45 +msgid "Getting the I2P code" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:8 +#: i2p2www/pages/site/get-involved/guides/new-developers.html:52 +msgid "The easy way: Git" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:9 +#: i2p2www/pages/site/get-involved/guides/new-developers.html:72 +msgid "The proper way: Monotone" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:11 +#: i2p2www/pages/site/get-involved/guides/new-developers.html:135 +msgid "Building I2P" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:12 +#: i2p2www/pages/site/get-involved/guides/new-developers.html:156 +msgid "Development ideas" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:13 +#: i2p2www/pages/site/get-involved/guides/new-developers.html:164 +msgid "Making the results available" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:14 +#: i2p2www/pages/site/get-involved/guides/new-developers.html:185 +msgid "Get to know us!" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:15 +#: i2p2www/pages/site/get-involved/guides/new-developers.html:191 +msgid "Translations" +msgstr "Përkthime" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:16 +#: i2p2www/pages/site/get-involved/guides/new-developers.html:197 +msgid "Tools" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:21 +msgid "" +"\n" +"So you want to start work on I2P? Great!\n" +"Here's a quick guide to getting started\n" +"on contributing to the website or the software, doing development or " +"creating translations." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:26 +#, python-format +msgid "" +"\n" +"Not quite ready for coding?\n" +"Try getting involved first." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:33 +msgid "" +"Basic development on the I2P router or the embedded applications uses " +"Java as the main development language.\n" +"If you don't have experience with Java, you can always have a look at Thinking in Java." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:37 +#, python-format +msgid "" +"Study the how intro,\n" +"the other \"how\" documents,\n" +"the tech intro,\n" +"and associated documents.\n" +"These will give you a good overview of how I2P is structured and what " +"different things it does." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:47 +msgid "" +"For development on the I2P router or the embedded applications,\n" +"there are two ways to get the source code:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:54 +#, python-format +msgid "Install Git." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:57 +#, python-format +msgid "Get the code from the GitHub mirror:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:64 +#: i2p2www/pages/site/get-involved/guides/new-developers.html:119 +msgid "Remarks" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:65 +#, python-format +msgid "" +"The Git repository is currently a read-only mirror. If you wish to use it" +" for\n" +"development, you will need to submit patches to our " +"issue\n" +"tracker. We can accept GitHub pull requests, but they must be " +"processed\n" +"manually by turning them into patches anyway." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:74 +msgid "" +"Install monotone.\n" +"Monotone is a version control system.\n" +"We use it because it allows us to keep track of who does what changes to " +"the source code (and for a lot of complicated things, but 'keeping track " +"of changes' is the basic idea)." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:79 +msgid "" +"Skim over the monotone tutorial," +" to make sure you understand the concepts." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:83 +msgid "" +"If you want to remain anonymous, you need to do an additional step, to " +"set up a connection to a monotone server over I2P:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:86 +#, python-format +msgid "" +"Enable the i2ptunnel client tunnel on port " +"8998 pointing to mtn.i2p-projekt.i2p." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:90 +msgid "" +"Pick a directory where you want to put all your I2P files, and create a " +"monotone database:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:93 +msgid "" +"Define the trust list by creating ~/.monotone/monotonerc (or" +" _MTN/monotonerc in the i2p.i2p workspace) with the " +"following contents:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:98 +#, python-format +msgid "" +"Copy and paste the developer's commit keys " +"into a new file (e.g. keys.txt) in the same directory\n" +" that i2p.mtn is in. Import the keys into your database " +"with
      mtn -d i2p.mtn read < keys.txt
" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:102 +msgid "" +"Pull the I2P sources to your machine. This may take a long time, " +"especially if you are doing this over I2P!" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:104 +msgid "Anonymously:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:107 +msgid "Non-anonymously:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:113 +msgid "" +"All the sources are now present on your machine, in the database file. To" +" make them available in a directory, you need to check them out:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:115 +msgid "" +"The above command creates a directory i2p.i2p, which contains all of the " +"I2P sources." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:120 +msgid "" +"\n" +"To download the website files instead of the I2P source files, use " +"'i2p.www' instead of 'i2p.i2p'." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:123 +msgid "" +"The initial pull may take several hours using the tunnel.\n" +"If it fails after a partial pull, simply rerun it, it will start where it" +" left off.\n" +"If you are in a hurry, use the non-anonymous access." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:128 +#, python-format +msgid "" +"A full list of branches, including i2p.i2p and i2p.www can be found on viewmtn." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:131 +#, python-format +msgid "" +"A long explanation about using monotone is available on the monotone page." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:137 +#, python-format +msgid "" +"To compile the code, you need the Sun Java Development Kit 6 or higher, " +"or equivalent JDK\n" +"(Sun JDK 6 strongly recommended) and\n" +"Apache ant\n" +"version 1.7.0 or higher.\n" +"If you go are working on the main I2P code, you can go into the i2p.i2p " +"directory and run 'ant' to see the build options." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:145 +msgid "" +"To build or work on console translations, you need\n" +"the xgettext, msgfmt, and msgmerge tools from the\n" +"GNU gettext package." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:151 +#, python-format +msgid "" +"For development on new applications,\n" +"see the application development guide." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:157 +#, python-format +msgid "" +"See zzz's TODO lists,\n" +"this website's TODO list or\n" +"Trac\n" +"for ideas." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:166 +#, python-format +msgid "" +"See the bottom of the licenses page " +"for\n" +"commit privilege requirements. You need these to put code into i2p.i2p " +"(not required for the website!)." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:171 +msgid "Short version of how to generate and use keys if you plan to commit:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:173 +msgid "use an empty passphrase" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:174 +msgid "enter a passphrase" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:175 +#, python-format +msgid "" +"send this to a mtn repo operator to get " +"push privileges" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:176 +#, python-format +msgid "" +"send this to a release manager to get " +"commit privileges - not required for website" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:177 +msgid "check in with this key" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:178 +msgid "push with this key" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:180 +#, python-format +msgid "Long version: see the monotone page." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:186 +#, python-format +msgid "" +"The developers hang around on IRC. They can be reached on the Freenode " +"network, OFTC, and on the I2P internal networks. The usual place to look " +"is #i2p-dev. Join the channel and say hi!\n" +"We also have additional guidelines for regular" +" developers." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:192 +#, python-format +msgid "" +"Website and router console translators: See the New Translator's Guide\n" +"for next steps." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:198 +msgid "" +"I2P is open source software that is mostly developed using open sourced\n" +"toolkits. The I2P project recently acquired a license for the YourKit " +"Java\n" +"Profiler. Open source projects are eligible to receive a free license " +"provided\n" +"that YourKit is referenced on the project web site. Please get in touch " +"if you\n" +"are interested in profiling the I2P codebase." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:206 +#, python-format +msgid "" +"YourKit is kindly supporting open source projects with its full-featured " +"Java Profiler.\n" +"YourKit, LLC is the creator of innovative and intelligent tools for " +"profiling\n" +"Java and .NET applications. Take a look at YourKit's leading software " +"products:\n" +"YourKit Java Profiler and\n" +"YourKit .NET Profiler." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:2 +msgid "New Translator's Guide" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:4 +msgid "Here's a very quick guide to getting started." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:6 +msgid "How to Translate the Website" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:8 +#, python-format +msgid "" +"Translation of the website is done with .po files. The easiest way by far" +" to\n" +"translate the website is to sign up for an account at \n" +"Transifex and request to join a translation" +" team. \n" +"Alternatively it can be done \"the old way\" as outlined below." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:17 +#: i2p2www/pages/site/get-involved/guides/new-translators.html:82 +msgid "Preparation" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:19 +#: i2p2www/pages/site/get-involved/guides/new-translators.html:84 +#, python-format +msgid "" +"Come to #i2p-dev on irc and talk to people.\n" +"Claim the language -\n" +"To make sure other coworkers don't bump onto the files you are working " +"on,\n" +"please update the translation status on this wiki " +"page." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:25 +#, python-format +msgid "" +"Follow the new developer's guide,\n" +"Including the installation of monotone,\n" +"checking out i2p.www branch, and generate your own monotone keys.\n" +"It is not required that you sign a dev agreement." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:33 +msgid "" +"Create files:\n" +"If the file for your language does not exist yet:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:38 +msgid "" +"Run \"./extract-messages.sh\" to generate a " +"messages.pot in the base directory.\n" +"Edit the header of this file, then run \"./init-new-po.sh " +"locale\" to generate the file\n" +"i2p2www/translations/locale/LC_MESSAGES/messages.po. " +"\"mtn add\" this file." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:43 +msgid "" +"Edit i2p2www/pages/global/lang.html and add a line for your " +"language (copy an existing line)." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:46 +msgid "" +"Add a flag image file to i2p2www/static/images/flags/ for " +"the menu (copy from the router)." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:52 +msgid "" +"Edit files:\n" +"Edit i2p2www/translations/locale/LC_MESSAGES/messages.po.\n" +"To work with .po files efficiently, you may wish to use POEdit" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:58 +#: i2p2www/pages/site/get-involved/guides/new-translators.html:151 +msgid "" +"Check in:\n" +"\"mtn pull\", \"mtn update\". Then check in by " +"\"mtn ci -k yourname@mail.i2p file1 file2 ...\"\n" +"This collects the diff info of your changed file into your local repo. " +"Then \"mtn sync mtn.i2p2.de -k yourname-transport@mail.i2p " +"i2p.i2p\".\n" +"This synchronizes your local repo with the repo on the target machine." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:65 +#: i2p2www/pages/site/get-involved/guides/new-translators.html:158 +msgid "Repeat. Check in often. Don't wait until it is perfect." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:72 +msgid "How to Translate the Router Console" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:74 +#, python-format +msgid "" +"The easiest way by far to translate the router console is to sign up for " +"an account at \n" +"Transifex and request to join a translation" +" team. \n" +"Alternatively it can be done \"the old way\" as outlined below." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:90 +#, python-format +msgid "" +"Follow the new developer's guide,\n" +"including the installation of monotone and the gettext tools,\n" +"checking out i2p.i2p branch, and generate your own monotone keys." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:95 +msgid "Generate your own gpg key and sign the dev agreement." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:101 +msgid "" +"Before starting a console translation, better help translate some i2p " +"webpages first.\n" +"At least an i2p homepage in your language would be great." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:106 +msgid "" +"What to translate:\n" +"There are about 15 files in the i2p.i2p branch that needs translation:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:132 +msgid "" +"Where xx is your language code like fr/de/ch/zh/...\n" +"There may be or may not be files with your lang code. If not, you can " +"create your own. by copying and renaming other language files you know " +"with your own lang code." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:137 +msgid "" +"Create files:\n" +"If the file for your language does not exist yet, copy another language " +"file to a new file foo_xx.bar for your language.\n" +"Then \"mtn add\" the file.\n" +"After creating a .po file, edit the headers. Then run \"ant " +"distclean poupdate\"." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:144 +msgid "" +"Start to work:\n" +"Edit the HTML files with any text editor.\n" +"Be sure not to use an editor in HTML mode that reformats everything.\n" +"To work with .po files efficiently, you may wish to use POEdit" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:163 +msgid "" +"As you can see, it's not that difficult.\n" +"If you have questions about the meaning of the terms in the console, ask " +"in #i2p-dev on IRC." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:169 +msgid "FAQ" +msgstr "_FAQ" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:171 +msgid "" +"Q: Why do I have to install monotone, Java, jsp, learn about .po files " +"and html, etc.? Why can't I just do a translation and email it to you?" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:175 +msgid "A: Several reasons:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:178 +#, python-format +msgid "" +"You might be interested in translating via Transifex. Request to join a " +"translation team here." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:182 +msgid "" +"We don't have anybody who has time to accept manual contributions and " +"submit them to our source control system on your behalf. Even if we did, " +"it doesn't scale." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:186 +msgid "" +"Maybe you are thinking translation is a one-step process. It isn't. You " +"can't do it all at once. You will make mistakes. You need to test it and " +"tweak it to make it look right before you submit it. Developers " +"will update or add to the English text, thus requiring a translation " +"update." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:190 +msgid "" +"Having translators use a source control system directly provides " +"authentication and accountablility - we know who is doing what, and we " +"can track changes, and revert them if necessary." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:194 +msgid "" +".po files are not difficult. If you don't want to work directly with " +"them, we recommend 'poedit'." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:198 +msgid "" +"HTML files are not difficult. Just ignore the html stuff and translate " +"the text." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:202 +msgid "" +"Installing and using monotone is not that difficult. Several of the " +"translators and other contributors to I2P are non-programmers, and they " +"use monotone regularly. Monotone is simply a source control system, it is" +" not about \"coding\"." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:206 +msgid "" +"Our items to translate are not \"documents\". They are html files and po " +"files, with a specific format and character encoding (UTF-8) that must be" +" maintained, and not corrupted by email programs or other methods of " +"transfer." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:210 +msgid "" +"We looked at 'pootle' as a front-end for translators. It didn't work " +"well, needed an administrator, and a pootle-based process would suffer " +"from a number of the above flaws." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:215 +msgid "" +"In summary:\n" +"Yes, we know it is somewhat of a hurdle to get started. It's really the " +"only possible way we can do it. Give it a try, it really isn't that hard." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:220 +msgid "More Information" +msgstr "Më Tepër të Dhëna" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:221 +#, python-format +msgid "" +"The #i2p-dev channel on IRC, or the translation forum on %(zzz)s." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:2 +msgid "How to Set up a Reseed Server" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:3 +msgid "February 2017" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:6 +msgid "Overview" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:8 +msgid "" +"Thank you for volunteering to run an I2P reseed server.\n" +"\"Reseeding\" is our term for bootstrapping new routers into the network." +"\n" +"New routers fetch a bundle of peer references, or \"router infos\", from " +"one or more of a hardcoded list of HTTPS URLs." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:14 +msgid "Requirements" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:16 +msgid "" +"At its simplest, a reseed server consists of a Java I2P router, an HTTPS " +"web server,\n" +"and some scripts that periodically gather router infos from the router,\n" +"bundle and sign them into a custom file format, and deliver these files " +"over HTTPS.\n" +"In practice, it's a bit more complex, and a reseed operator must be " +"fairly competent and attentive.\n" +"A reseed server is not appropriate for a residential internet connection." +" The complexities include:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:25 +msgid "" +"You must have a secure SSL setup with either a self-signed certificate or" +" a cert that chains up to a standard CA" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:28 +msgid "" +"The SSL configuration must conform to current best practices on allowed " +"ciphers and protocols, and the CN/SAN host name must match the URL" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:31 +msgid "" +"The scripts are designed to deliver different router info bundles to " +"different requestors for network diversity" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:34 +msgid "" +"The scripts are designed to deliver the same bundle to the same repeated " +"requestor to prevent scraping" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:37 +msgid "" +"The reseed servers are under periodic attacks and DDoS attempts, and from" +" other buggy I2P implementations and botnets.\n" +"This necessitates that you run fail2ban or an equivalent solution." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:43 +msgid "Information Required" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:45 +msgid "" +"When your setup is complete and ready for testing, we will need the HTTPS" +" URL,\n" +"the SSL public key certificate, and the \"su3\" bundle public key.\n" +"After testing is complete, these will be added to the hardcoded entries " +"in the Java and C++ routers in the next release,\n" +"and you will start seeing traffic.\n" +"We also will need your email address so we may continue to contact you " +"about reseed administration issues.\n" +"The email will not be made public but will be known to the other reseed " +"operators.\n" +"You should expect that your nick or name and its association with that " +"URL or IP will become public." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:55 +msgid "Privacy Policy" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:57 +msgid "" +"A reseed operator is a trusted role in the network.\n" +"While we do not yet have a formal privacy policy, you must ensure the " +"privacy of our users\n" +"by not publicizing logs or IPs found in those logs, except as necessary " +"to discuss administration issues with the I2P reseed team." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:63 +msgid "Financial Support" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:65 +msgid "" +"Modest financial support may be available to those running reseed " +"servers.\n" +"This support would be in partial reimbursement for your server costs.\n" +"Support will not be paid in advance and will probably not cover all your " +"expenses.\n" +"Support is only available to those who have been running reseed servers " +"in good standing for several months, and is based on actual need." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:72 +msgid "" +"If you would like to discuss support, please contact echelon and CC: " +"backup." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:77 +msgid "Getting Started" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:79 +msgid "" +"Our reseed coordinator is \"backup\" and he may be contacted at backup at" +" mail.i2p or backup at i2pmail.org.\n" +"Unfortunately, he is not generally on IRC. The reseed setup is somewhat " +"specialized, and you should direct most questions to him." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:84 +msgid "" +"For actual implementation, details below. We have one recommended reseed " +"solution:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:89 +msgid "" +"A Go implementation that includes the web server and all the scripts. " +"This is the recommended solution." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:95 +msgid "" +"For further information, read the information at the following links, and" +" then contact backup.\n" +"Thank you!" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:110 +msgid "Detailed Instructions" +msgstr "" + diff --git a/i2p2www/translations/zh_TW/LC_MESSAGES/get-involved.po b/i2p2www/translations/zh_TW/LC_MESSAGES/get-involved.po new file mode 100644 index 00000000..17976da7 --- /dev/null +++ b/i2p2www/translations/zh_TW/LC_MESSAGES/get-involved.po @@ -0,0 +1,4104 @@ +# Chinese (Traditional, Taiwan) translations for I2P. +# Copyright (C) 2017 ORGANIZATION +# This file is distributed under the same license as the I2P project. +# +# Translators: +# Agustín Wu , 2016 +msgid "" +msgstr "" +"Project-Id-Version: I2P\n" +"Report-Msgid-Bugs-To: http://trac.i2p2.de\n" +"POT-Creation-Date: 2017-07-26 20:35+0000\n" +"PO-Revision-Date: 2018-01-24 10:01+0000\n" +"Last-Translator: str4d \n" +"Language-Team: Chinese (Taiwan) " +"(http://www.transifex.com/otf/I2P/language/zh_TW/)\n" +"Plural-Forms: nplurals=1; plural=0\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 1.3\n" + +#: i2p2www/pages/site/get-involved/donate.html:2 +#: i2p2www/pages/site/get-involved/index.html:82 +msgid "Donate" +msgstr "捐助" + +#: i2p2www/pages/site/get-involved/donate.html:4 +msgid "" +"Thank you for your interest in contributing to I2P!\n" +"The details of how you\n" +"can make your contribution are provided below." +msgstr "" +"感謝您對於貢獻 I2P 感到興趣!\n" +"以下是您可以對此計畫做出貢獻的方式。" + +#: i2p2www/pages/site/get-involved/donate.html:10 +msgid "Tax Status" +msgstr "稅務狀態" + +#: i2p2www/pages/site/get-involved/donate.html:11 +msgid "" +"I2P is not incorporated.\n" +"Your contributions are probably not tax-deductible.\n" +"If you would like to discuss a large contribution, please contact eche|on." +msgstr "" +"I2P 並非營利事業。\n" +"您的捐款可能無法用來減稅。\n" +"若您有意要討論關於大額度捐款的話,請與 echhe | on 聯繫。" + +#: i2p2www/pages/site/get-involved/donate.html:17 +msgid "Stickers" +msgstr "" + +#: i2p2www/pages/site/get-involved/donate.html:18 +msgid "" +"While supplies last, we offer I2P stickers to those who donate enough\n" +"to cover PayPal fees and postage from the U.S.\n" +"You must include \"stickers please\" and your address in the Paypal " +"comments.\n" +"For other payment methods, follow up with an email to eche|on\n" +"with the subject \"stickers please\", your payment information, and your " +"address." +msgstr "" + +#: i2p2www/pages/site/get-involved/donate.html:25 +msgid "Please allow 30-60 days for delivery." +msgstr "" + +#: i2p2www/pages/site/get-involved/donate.html:30 +#, python-format +msgid "" +"As of %(date)s, eche|on has been running a\n" +"%(cointype)s account for the I2P project.\n" +"ATTENTION! The address changed on 02-20-2014. ATTENTION!\n" +"If you'd like to donate using %(cointype)s, just transfer your\n" +"desired amount of coins to the account %(account)s\n" +"and leave eche|on a note if you'd like your donation to be\n" +"mentioned on the I2P webpage." +msgstr "" + +#: i2p2www/pages/site/get-involved/donate.html:42 +#: i2p2www/pages/site/get-involved/donate.html:59 +#: i2p2www/pages/site/get-involved/donate.html:75 +#: i2p2www/pages/site/get-involved/donate.html:91 +msgid "For easy usage, use the QR code below!" +msgstr "" + +#: i2p2www/pages/site/get-involved/donate.html:47 +#, python-format +msgid "" +"As of %(date)s, eche|on has been running a\n" +"%(cointype)s account for the I2P project.\n" +"ATTENTION! The address changed 02-20-2014. ATTENTION!\n" +"If you'd like to donate using %(cointype)s, just transfer your\n" +"desired amount of coins to the account %(account)s\n" +"and leave eche|on a note if you'd like your donation to be\n" +"mentioned on the I2P webpage." +msgstr "" + +#: i2p2www/pages/site/get-involved/donate.html:64 +#, python-format +msgid "" +"As of %(date)s, Meeh has been running a\n" +"%(cointype)s account for the I2P project.\n" +"If you'd like to donate using %(cointype)s, just transfer your\n" +"desired amount of coins to the account %(account)s\n" +"and leave Meeh a note if you'd like your donation to be\n" +"mentioned on the I2P webpage." +msgstr "" + +#: i2p2www/pages/site/get-involved/donate.html:80 +#, python-format +msgid "" +"As of %(date)s, echelon has been running a\n" +" %(cointype)s account for the I2P project.\n" +" If you'd like to donate using %(cointype)s, just transfer your\n" +" desired amount of coins to the account %(account)s\n" +" and leave echelon a note if you'd like your donation to be\n" +" mentioned on the I2P webpage." +msgstr "" + +#: i2p2www/pages/site/get-involved/donate.html:97 +#, python-format +msgid "" +"We accept most altcoins, just ask Meeh. Other altcoins can be converted " +"and exchanged for a crypto currency we currently support. Please send a " +"mail to \"%(account)s\" for a such donation." +msgstr "" + +#: i2p2www/pages/site/get-involved/donate.html:104 +#, python-format +msgid "You can donate direct via PayPal to the account \"%(account)s\"." +msgstr "" + +#: i2p2www/pages/site/get-involved/donate.html:110 +msgid "One time donation:" +msgstr "" + +#: i2p2www/pages/site/get-involved/donate.html:124 +msgid "Donate 10 €/month for 12 months:" +msgstr "" + +#: i2p2www/pages/site/get-involved/donate.html:132 +#: i2p2www/pages/site/get-involved/donate.html:144 +#: i2p2www/pages/site/get-involved/donate.html:156 +#: i2p2www/pages/site/get-involved/donate.html:168 +msgid "I2P donation " +msgstr "" + +#: i2p2www/pages/site/get-involved/donate.html:138 +msgid "Donate 20 €/month for 12 months:" +msgstr "" + +#: i2p2www/pages/site/get-involved/donate.html:150 +msgid "Donate 30 €/month for 12 months:" +msgstr "" + +#: i2p2www/pages/site/get-involved/donate.html:162 +msgid "Donate 50 €/month for 12 months:" +msgstr "" + +#: i2p2www/pages/site/get-involved/donate.html:177 +msgid "Flattr this" +msgstr "" + +#: i2p2www/pages/site/get-involved/donate.html:182 +msgid "" +"If you want to keep more or less anonymous, the option to send money via " +"mail is also available. But it is less secure\n" +"as the envelope can be lost on the way to us." +msgstr "" + +#: i2p2www/pages/site/get-involved/donate.html:186 +#, python-format +msgid "" +"If you'd like to donate via snail mail, send an email to %(email)s\n" +" and you'll receive an email with instructions detailing how to proceed." +msgstr "" + +#: i2p2www/pages/site/get-involved/donate.html:191 +#, python-format +msgid "" +"In the meantime, feel free to take a look at the generous donations that " +"have been\n" +"given in support of the I2P Project at the hall of fame." +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:2 +msgid "Get Involved!" +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:4 +msgid "We need your help!" +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:5 +msgid "" +"To get involved, please feel free to join us on the #i2p-dev IRC channel " +"(on\n" +"irc.freenode.net, irc.oftc.net, or within I2P on irc.echelon.i2p, " +"irc.dg.i2p or irc.postman.i2p)." +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:9 +#, python-format +msgid "" +"If you're interested in joining our team, please" +" get in\n" +"touch as we're always looking for eager contributors!" +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:13 +msgid "" +"We need help in many areas, and you don't need to know Java to " +"contribute!\n" +"Here's a list to help get you started!" +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:18 +msgid "Spread the Word!" +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:19 +msgid "" +"Tell people about I2P on forums, blogs, and comments to articles.\n" +"Fix up the Wikipedia article about I2P in your language.\n" +"Tell your friends." +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:24 +msgid "Testing" +msgstr "測試中" + +#: i2p2www/pages/site/get-involved/index.html:25 +#, python-format +msgid "" +"Run the latest builds from monotone\n" +"and report results on #i2p or as bugs on Trac." +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:30 +msgid "Documentation" +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:31 +msgid "" +"Help fix the parts of the website that are outdated or incomplete.\n" +"Translate pages into other languages." +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:35 +msgid "Pictures" +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:36 +msgid "Make some more pictures, fix the old ones on the website" +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:39 +msgid "Content" +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:40 +msgid "Make an eepsite! Add some content! Contribute to the community!" +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:43 +msgid "Services" +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:44 +msgid "" +"Run a service on an eepsite. It could be a proxy, a forum, a tracker,\n" +"a naming service, a search engine, an eepsite monitor... many of these\n" +"aren't that hard." +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:49 +msgid "Applications" +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:50 +#, python-format +msgid "" +"Write or port applications for I2P! There's some guidelines and\n" +"a list of ideas on the applications page." +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:54 +msgid "Coding" +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:55 +#, python-format +msgid "" +"There's plenty to do if you know Java or are ready to learn.\n" +"Check for open tickets on Trac\n" +"or the TODO list on %(zzz)s for\n" +"some ideas on where to start.\n" +"See the new developer's guide for details." +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:64 +msgid "Translation" +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:65 +#, python-format +msgid "" +"Help translate the website and the software into your language.\n" +"See the new translator's guide for details." +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:69 +msgid "Analysis" +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:70 +#, python-format +msgid "" +"Study or test the code to look for vulnerabilities.\n" +"Both anonymity vulnerabilities from the various\n" +"threat models,\n" +"and DOS and other weaknesses due to securities holes,\n" +"need researching." +msgstr "" + +#: i2p2www/pages/site/get-involved/index.html:77 +msgid "Reseeding" +msgstr "網路引導" + +#: i2p2www/pages/site/get-involved/index.html:78 +#, python-format +msgid "" +"Set up a reseed server for new routers to bootstrap from.\n" +"Detailed instructions are on our reseed server " +"page." +msgstr "" + +#: i2p2www/pages/site/get-involved/roadmap.html:2 +msgid "Roadmap" +msgstr "" + +#: i2p2www/pages/site/get-involved/roadmap.html:3 +msgid "June 2017" +msgstr "" + +#: i2p2www/pages/site/get-involved/roadmap.html:304 +#, python-format +msgid "" +"Reachability Mapping / handle peers partially reachable / enhanced restricted routes" +msgstr "" + +#: i2p2www/pages/site/get-involved/roadmap.html:307 +msgid "Full restricted routes" +msgstr "" + +#: i2p2www/pages/site/get-involved/roadmap.html:308 +msgid "Tunnel mixing and padding" +msgstr "" + +#: i2p2www/pages/site/get-involved/roadmap.html:309 +msgid "User defined message delays" +msgstr "" + +#: i2p2www/pages/site/get-involved/roadmap.html:317 +#, python-format +msgid "" +"Please see the TODO list for more detailed info " +"about some of these tasks." +msgstr "" + +#: i2p2www/pages/site/get-involved/todo.html:2 +msgid "I2P Project Targets" +msgstr "" + +#: i2p2www/pages/site/get-involved/todo.html:5 +#: i2p2www/pages/site/get-involved/todo.html:47 +msgid "Core functionality" +msgstr "" + +#: i2p2www/pages/site/get-involved/todo.html:7 +#: i2p2www/pages/site/get-involved/todo.html:50 +msgid "NetworkDB and profile tuning and ejection policy for large nets" +msgstr "" + +#: i2p2www/pages/site/get-involved/todo.html:11 +#: i2p2www/pages/site/get-involved/todo.html:74 +msgid "Security / anonymity" +msgstr "" + +#: i2p2www/pages/site/get-involved/todo.html:13 +#: i2p2www/pages/site/get-involved/todo.html:77 +msgid "Full blown n-hop restricted routes with optional trusted links" +msgstr "" + +#: i2p2www/pages/site/get-involved/todo.html:16 +#: i2p2www/pages/site/get-involved/todo.html:96 +msgid "Hashcash for routerIdentity, destination, and tunnel request" +msgstr "" + +#: i2p2www/pages/site/get-involved/todo.html:19 +#: i2p2www/pages/site/get-involved/todo.html:125 +msgid "Advanced tunnel operation (batching/mixing/throttling/padding)" +msgstr "" + +#: i2p2www/pages/site/get-involved/todo.html:22 +#: i2p2www/pages/site/get-involved/todo.html:162 +msgid "Stop & go mix w/ garlics & tunnels" +msgstr "" + +#: i2p2www/pages/site/get-involved/todo.html:26 +#: i2p2www/pages/site/get-involved/todo.html:176 +msgid "Performance" +msgstr "性能" + +#: i2p2www/pages/site/get-involved/todo.html:31 +#, python-format +msgid "" +"Note: This page is not up-to-date.\n" +"See the roadmap for current plans." +msgstr "" + +#: i2p2www/pages/site/get-involved/todo.html:36 +#, python-format +msgid "" +"Below is a more detailed (yet still incomplete) discussion of the major " +"areas\n" +"of future development on the core I2P network, spanning the plausibly " +"planned\n" +"releases. This does not include stego transports, porting to wireless " +"devices,\n" +"or tools to secure the local machine, nor does it include client " +"applications\n" +"that will be essential in I2P's success. There are probably other things " +"that\n" +"will come up, especially as I2P gets more peer review, but these are the " +"main\n" +"'big things'. See also the roadmap. Want to " +"help?\n" +"Get involved!" +msgstr "" + +#: i2p2www/pages/site/get-involved/todo.html:53 +msgid "" +"Within the current network database and profile management " +"implementation, \n" +"we have taken the liberty of some practical shortcuts. For instance, we \n" +"don't have the code to drop peer references from the K-buckets, as we \n" +"don't have enough peers to even plausibly fill any of them, so instead, \n" +"we just keep the peers in whatever bucket is appropriate. Another example" +" \n" +"deals with the peer profiles - the memory required to maintain each " +"peer's \n" +"profile is small enough that we can keep thousands of full blown profiles" +" \n" +"in memory without problems. While we have the capacity to use trimmed \n" +"down profiles (which we can maintain 100s of thousands in memory), we \n" +"don't have any code to deal with moving a profile from a \"minimal " +"profile\" \n" +"to a \"full profile\", a \"full profile\" to a \"minimal profile\", or to" +" simply \n" +"eject a profile altogether. It just wouldn't be practical to write that \n" +"code yet, since we aren't going to need it for a while." +msgstr "" + +#: i2p2www/pages/site/get-involved/todo.html:68 +msgid "" +"That said, as the network grows we are going to want to keep these " +"considerations \n" +"in mind. We will have some work to do, but we can put it off for later." +msgstr "" + +#: i2p2www/pages/site/get-involved/todo.html:80 +msgid "" +"The restricted route functionality described before was simply a " +"functional \n" +"issue - how to let peers who would not otherwise be able to communicate \n" +"do so. However, the concept of allowing restricted routes includes " +"additional \n" +"capabilities. For instance, if a router absolutely cannot risk " +"communicating \n" +"directly with any untrusted peers, they can set up trusted links through" +" \n" +"those peers, using them to both send and receive all of its messages. \n" +"Those hidden peers who want to be completely isolated would also refuse \n" +"to connect to peers who attempt to get them to (as demonstrated by the \n" +"garlic routing technique outlined before) - they can simply take the " +"garlic \n" +"clove that has a request for delivery to a particular peer and tunnel \n" +"route that message out one of the hidden peer's trusted links with " +"instructions \n" +"to forward it as requested." +msgstr "" + +#: i2p2www/pages/site/get-involved/todo.html:99 +#, python-format +msgid "" +"Within the network, we will want some way to deter people from consuming" +" \n" +"too many resources or from creating so many peers to mount a Sybil \n" +"attack. Traditional techniques such as having a peer see who is " +"requesting \n" +"a resource or running a peer aren't appropriate for use within I2P, as \n" +"doing so would compromise the anonymity of the system. Instead, we want \n" +"to make certain requests \"expensive\"." +msgstr "" + +#: i2p2www/pages/site/get-involved/todo.html:107 +msgid "" +"Hashcash is one technique that \n" +"we can use to anonymously increase the \"cost\" of doing certain " +"activities, \n" +"such as creating a new router identity (done only once on installation)," +" \n" +"creating a new destination (done only once when creating a service), or \n" +"requesting that a peer participate in a tunnel (done often, perhaps 2-300" +" \n" +"times per hour). We don't know the \"correct\" cost of each type of " +"certificate \n" +"yet, but with some research and experimentation, we could set a base " +"level \n" +"that is sufficiently expensive while not an excessive burden for people \n" +"with few resources." +msgstr "" + +#: i2p2www/pages/site/get-involved/todo.html:118 +msgid "" +"There are a few other algorithms that we can explore for making those \n" +"requests for resources \"nonfree\", and further research on that front is" +" \n" +"appropriate." +msgstr "" + +#: i2p2www/pages/site/get-involved/todo.html:128 +#, python-format +msgid "" +"To powerful passive external observers as well as large colluding " +"internal \n" +"observers, standard tunnel routing is vulnerable to traffic analysis " +"attacks \n" +"- simply watching the size and frequency of messages being passed between" +" \n" +"routers. To defend against these, we will want to essentially turn some \n" +"of the tunnels into its own mix cascade - delaying messages received at \n" +"the gateway and passing them in batches, reordering them as necessary, \n" +"and injecting dummy messages (indistinguishable from other \"real\" " +"tunnel \n" +"messages by peers in the path). There has been a significant amount of \n" +"research \n" +"on these algorithms that we can lean on prior to implementing the various" +" \n" +"tunnel mixing strategies." +msgstr "" + +#: i2p2www/pages/site/get-involved/todo.html:141 +msgid "" +"In addition to the anonymity aspects of more varied tunnel operation, \n" +"there is a functional dimension as well. Each peer only has a certain \n" +"amount of data they can route for the network, and to keep any particular" +" \n" +"tunnel from consuming an unreasonable portion of that bandwidth, they \n" +"will want to include some throttles on the tunnel. For instance, a tunnel" +" \n" +"may be configured to throttle itself after passing 600 messages (1 per \n" +"second), 2.4MB (4KBps), or exceeding some moving average (8KBps for the \n" +"last minute). Excess messages may be delayed or summarily dropped. With \n" +"this sort of throttling, peers can provide ATM-like QoS support for their" +" \n" +"tunnels, refusing to agree to allocate more bandwidth than the peer has \n" +"available." +msgstr "" + +#: i2p2www/pages/site/get-involved/todo.html:154 +msgid "" +"In addition, we may want to implement code to dynamically reroute tunnels" +" \n" +"to avoid failed peers or to inject additional hops into the path. This \n" +"can be done by garlic routing a message to any particular peer in a " +"tunnel \n" +"with instructions to redefine the next-hop in the tunnel." +msgstr "" + +#: i2p2www/pages/site/get-involved/todo.html:165 +msgid "" +"Beyond the per-tunnel batching and mixing strategy, there are further \n" +"capabilities for protecting against powerful attackers, such as allowing" +" \n" +"each step in a garlic routed path to define a delay or window in which \n" +"it should be forwarded on. This would enable protections against the long" +" \n" +"term intersection attack, as a peer could send a message that looks " +"perfectly \n" +"standard to most peers that pass it along, except at any peers where the" +" \n" +"clove exposed includes delay instructions." +msgstr "" + +#: i2p2www/pages/site/get-involved/todo.html:177 +#, python-format +msgid "" +"Performance related improvements are listed on the\n" +"Performance page." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/arabic-trans.html:2 +msgid "Bounty Arabic translation of webpage and router console" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/arabic-trans.html:3 +#: i2p2www/pages/site/get-involved/bounties/index.html:118 +msgid "Arabic translation" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/arabic-trans.html:6 +msgid "" +"To improve I2P usage and attract more people\n" +"into I2P echelon set out this bounty for translation\n" +"of the I2P web page and I2P router console into Arabic." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/arabic-trans.html:12 +#: i2p2www/pages/site/get-involved/bounties/russian-trans.html:12 +msgid "This bounty is set into 2 subparts:" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/arabic-trans.html:14 +#: i2p2www/pages/site/get-involved/bounties/russian-trans.html:14 +msgid "Part 1 is translation of the webpage." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/arabic-trans.html:17 +msgid "" +"For collecting the bounty of 20 BTC you need to translate the following " +"pages:" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/arabic-trans.html:25 +msgid "This job was done by hamada and the bounty of 20 BTC was paid to hamada." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/arabic-trans.html:27 +msgid "" +"Part 2 is the translation of the router console. The router console was\n" +"partly translated and the bounty of 80 BTC was paid to hamada." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/arabic-trans.html:34 +msgid "Judge is echelon." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/btc-client.html:2 +msgid "Bounty creating a I2P native Bitcoin client" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/btc-client.html:3 +msgid "BTC I2P native client" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/btc-client.html:6 +msgid "" +"For a future of I2P and attract more people\n" +"into I2P this bounty is to create a I2P native Bitcoin client. \n" +"It should integrate with other client via the I2P network and via " +"gateways to\n" +"the existant bitcoin network." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/btc-client.html:15 +msgid "" +"Judge is psychonaut who donated the first 30 € to this bounty.\n" +"Bounty was almost fullfilled with btci2p, only a small\n" +"part of creating a plugin is leftover. User giv has been paid for the " +"work." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/datastore.html:2 +msgid "Bounty datastorage" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/datastore.html:3 +msgid "datastore" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/datastore.html:6 +msgid "" +"To improve I2P's usage and to be independent of routers \n" +"online status we want a datastorage as a extension to I2P.\n" +"Like in Freenet the datastorage should be distributed and every\n" +"participating node should be able to configure his options.\n" +"The files should be saved in chunks and at least 2-3 times to\n" +"obtain redundancy. Usage of storage space should be auto balanced.\n" +"As it is a extra application, it should work flawless within I2P and\n" +"cooperate nice with the I2P router. Maybe a integration within the\n" +"webpage/router could be done." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/datastore.html:17 +msgid "" +"This bounty cooperates with the 2 other bounties \"frost for I2P\" and \n" +"\"eepsites in datastorage\"." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/datastore.html:21 +msgid "" +"The frost for I2P datastorage bounty is paid for a frost like program \n" +"with which files/messages are stored into database and got from database." +"\n" +"It needs to work with a GUI." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/datastore.html:26 +msgid "" +"The eepsite served out of I2P datastorage extends a I2P router to send\n" +"out eepsites out of the I2P datastorage. All files for eepsites need to " +"be\n" +"saved inside of datastorage and are taken from it.\n" +"Extension:\n" +"For better integration all datastorage participants could serve that " +"eepsite." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/datastore.html:36 +msgid "" +"For bounties to be declared done and paid, we need the program AND the " +"source.\n" +"Source and code need to be licensed under a free license (free to change " +"and \n" +"free to distribute)." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/deb-pack.html:2 +msgid "Bounty I2P package in Debian and Ubuntu mirrors" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/deb-pack.html:3 +msgid "I2P Ubuntu/Debian package" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/deb-pack.html:6 +msgid "" +"For the future of I2P and in order to attract more people\n" +"to I2P, this bounty was set for including an I2P package into the Ubuntu " +"and Debian \n" +"archive mirrors.\n" +"To claim this bounty, the I2P router package needs to be available from\n" +"Ubuntu and Debian archive mirrors and Debian bug \n" +"448638 \n" +"needs to be closed successfully." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/i2phex.html:2 +msgid "Bounty I2PHex code implementation" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/i2phex.html:3 +msgid "i2phex code implementation" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/i2phex.html:6 +msgid "" +"To improve I2P usage and attract more people\n" +"into I2PHex P2P ArneBab setout the bounty for implementing actual\n" +"Phex code onto I2PHex." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:2 +msgid "Bounties for I2P" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:5 +msgid "" +"While we always gratefully accept any contributions of code, \n" +"documentation, and the like, there are other ways to help I2P move \n" +"forward. As with any open source project, our goals would be achieved " +"more \n" +"rapidly if we were able to support all of our contributors to work on \n" +"I2P full time. However, as with any open source project, that's not a \n" +"possibility. Instead, we are making use of a bounty system, whereby \n" +"anyone can get support for working on something that people want \n" +"implemented, and people who want to contribute to I2P can be assured that" +" \n" +"their support goes to what they care about." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:17 +msgid "" +"We are also keeping open the ability for people who want to support I2P \n" +"but don't have strong feelings about the bounties available. Those " +"people\n" +"can simply put their trust in the I2P team to do what we feel is best by\n" +"donating to a catch-all general fund that will be used as deemed \n" +"necessary - allocated to various bounties, covering incidentals (hosting," +" \n" +"etc), and the like." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:26 +msgid "Current bounties" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:29 +#: i2p2www/pages/site/get-involved/bounties/index.html:84 +#: i2p2www/pages/site/get-involved/bounties/index.html:104 +msgid "Name" +msgstr "名稱" + +#: i2p2www/pages/site/get-involved/bounties/index.html:29 +#: i2p2www/pages/site/get-involved/bounties/index.html:84 +#: i2p2www/pages/site/get-involved/bounties/index.html:104 +msgid "Status" +msgstr "狀態" + +#: i2p2www/pages/site/get-involved/bounties/index.html:29 +#: i2p2www/pages/site/get-involved/bounties/index.html:84 +msgid "Judge" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:29 +#: i2p2www/pages/site/get-involved/bounties/index.html:84 +msgid "Dev" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:29 +#: i2p2www/pages/site/get-involved/bounties/index.html:84 +msgid "Bounty" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:31 +msgid "Frost for I2P datastorage" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:32 +#: i2p2www/pages/site/get-involved/bounties/index.html:39 +#: i2p2www/pages/site/get-involved/bounties/index.html:46 +#: i2p2www/pages/site/get-involved/bounties/index.html:53 +#: i2p2www/pages/site/get-involved/bounties/index.html:74 +#: i2p2www/pages/site/get-involved/bounties/index.html:94 +msgid "Proposal in development" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:34 +#: i2p2www/pages/site/get-involved/bounties/index.html:41 +#: i2p2www/pages/site/get-involved/bounties/index.html:48 +#: i2p2www/pages/site/get-involved/bounties/index.html:55 +#: i2p2www/pages/site/get-involved/bounties/index.html:76 +#: i2p2www/pages/site/get-involved/bounties/index.html:89 +msgid "vacant" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:38 +msgid "Eepsites served out of I2P datastorage" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:45 +msgid "Backporting Phex code onto I2PHex" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:52 +msgid "I2P package in Debian and Ubuntu mirrors" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:59 +msgid "Bitcoin client for I2P" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:60 +msgid "Done, phase of verification" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:66 +msgid "Unit tests and Multi-router Simulation" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:67 +msgid "Partly done, partly in work, partly still open" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:81 +msgid "Hold bounties, set on hold due to jrandom AWOL and missing funding" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:86 +msgid "Bundling bounties" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:87 +msgid "Proposed" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:101 +msgid "Claimed bounties" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:104 +msgid "Dev team" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:106 +msgid "Make I2P IPv6 native" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:113 +msgid "Setting up a SILC server" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:123 +msgid "Datastore over I2P" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:128 +#: i2p2www/pages/site/get-involved/bounties/russian-trans.html:3 +msgid "Russian translation" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:133 +msgid "Swarming file transfer" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:138 +msgid "Streaming library window size" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:143 +msgid "IRC connect time monitor" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:148 +msgid "Unit tests (part 1)" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/index.html:160 +msgid "" +"Dev lists anyone who may already be working on the bounty - collaboration" +" is\n" +"preferred, so if you're interested in working on it, please contact one " +"of the\n" +"people listed!" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/ipv6.html:2 +msgid "Bounty I2P IPv6 native" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/ipv6.html:3 +msgid "native IPv6 I2P" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/ipv6.html:6 +msgid "" +"For a future of I2P and attract more people\n" +"into I2P I withdrawal the vuze bounty and offer a IPv6 bounty.\n" +"To claim this bounty, the I2P router needs to run full on native\n" +"IPv6 connections like it does on IPv4." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/ipv6.html:23 +#: i2p2www/pages/site/get-involved/bounties/vuze-plugin.html:20 +msgid "" +"For bounties to be declared done and paid, we need the plugin AND the " +"source.\n" +"Source and code need to be licensed under a free license (free to change " +"and \n" +"free to distribute)." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/netdb.html:2 +msgid "NetDB Backend" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/netdb.html:3 +msgid "netDB backend" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/netdb.html:7 +msgid "" +"The current NetDB implementation (namely the FloodFill system)\n" +"needs to be extended with another backend to improve reliability,\n" +"reduce attack surface and solve the scalability issue for the \n" +"coming years." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/netdb.html:14 +msgid "" +"A solution likely based on a DHT will be investigated and \n" +"finally implemented." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/russian-trans.html:2 +msgid "Bounty russian translation of webpage and router console" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/russian-trans.html:6 +msgid "" +"To improve I2P usage and attract more people\n" +"into I2P a anonymous donator set out the bounty for translation\n" +"of the I2P web page and I2P router console into russian language." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/russian-trans.html:17 +msgid "" +"For collecting the bounty of $115 USD you need to translate the following" +" pages:" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/russian-trans.html:30 +msgid "" +"Part 2 is the translation of the router console. The whole router console" +" needs\n" +"to be translated to collect the bounty of $115 USD." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/russian-trans.html:37 +msgid "Judge is the russian donor." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/silc.html:2 +msgid "Bounty migrate I2P IRC to SILC" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/silc.html:3 +msgid "I2P silc server" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/silc.html:7 +msgid "" +"For a future of I2P and attract more people\n" +"into I2P this bounty is to setup and host a I2P SILC server. \n" +"This will allow people to send files over their messaging servers and " +"have intrinsic security built into the protocol." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/silc.html:12 +msgid "" +"A silc server needs to be set up and run for at least 3 month time to get" +" payed. \n" +"A second server should be set up, too." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/silc.html:16 +msgid "" +"Bounty was withdrawn and money donated to returningnovice and general " +"fund." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/silc.html:22 +msgid "Judge is An Anonymous Secret Society, society@mail.i2p." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/syndie-2012.html:2 +#: i2p2www/pages/site/get-involved/bounties/syndie-2012.html:3 +msgid "Syndie development" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/syndie-2012.html:7 +msgid "" +"Beside of I2P we want to encourage users\n" +"to care more about anonymity and security. As I2P is a low \n" +"latency network with its natural limits, the software SYNDIE\n" +"can overcome some of these limits and provide better anonymity\n" +"for people who really need it." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/syndie-2012.html:14 +msgid "" +"For our bad sake the syndie project was out of development for \n" +"quite a long time yet (5 years) and has been updated just with\n" +"small fixes to keep it running. To get a fresh and new built \n" +"with needed bugfixes we set out this bounty. Also syndie needs\n" +"some enhancements and a better GUI for users to work with it.\n" +"Current bounty sum is 3 Bitcoin." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/syndie-2012.html:23 +msgid "" +"The latest Syndie coding rally did improve the situation of the\n" +"Syndie package dramatically. A new Syndie package with bugfixes\n" +"was created and made available on different webpages.\n" +"As a result of this work, the bounty sum was reduced and\n" +"the withdrawn money moved to the IPv6 bounty." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:2 +msgid "Bounty unittests" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:3 +msgid "unit test" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:7 +msgid "" +"To improve I2P's maintainability, we want to have a solid set of\n" +"automated unit tests for the critical code. While we do have some\n" +"unit tests at the moment, they are ad-hoc and partly unfinished. \n" +"This bounty is for someone to check the existing tests and move over\n" +"old ones to jUnit, automate their execution, extend them to provide \n" +"better code coverage, and publish the report online. Its a massive \n" +"effort, but can be broken down into phases, listed below (phase 2 \n" +"must occur first, but further phases may happen in any order).\n" +"As this needs some reading of code, it is the best start point for\n" +"new devs to get a good overview of I2P code and coding. A good job\n" +"for college students, interns or anyone who is just interested." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:20 +msgid "" +"Take care! Jobs and bounties shuffled a bit!\n" +"Phase 6,7 and 8 are still open!" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:26 +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:40 +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:55 +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:66 +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:77 +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:88 +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:101 +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:112 +#, python-format +msgid "Phase %(phase)s:" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:27 +msgid "CI jenkins and IRC bot" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:28 +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:42 +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:57 +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:68 +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:79 +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:90 +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:103 +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:114 +#, python-format +msgid "Bounty: %(euro)s €" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:29 +msgid "server runs and this section is blocked" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:31 +msgid "" +"To collect this bounty, a continuous integration server (Jenkins,\n" +"old name was Hudson) must be set up and a connected IRC bot needs \n" +"to set up in the channel #i2p-dev on IRC2p network to print out\n" +"results of build tests.
\n" +"The server needs to be run long term." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:41 +msgid "Check existing SDK tests" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:43 +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:69 +msgid "paid to str4d" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:45 +#, python-format +msgid "" +"To collect this bounty, the existing SDK tests must be checked \n" +"and made to work again. The need to be integrated into the ant \n" +"build scripts (\"ant test\"), and tied in with a code coverage tool (e.g." +" \n" +"Clover). The ant script\n" +"must be capable of generating test status results as a web page, \n" +"which will be published online." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:56 +msgid "SDK test coverage" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:58 +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:80 +msgid "paid to unittests dev team" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:60 +msgid "" +"To collect this bounty, the automated unit tests of the SDK \n" +"(i2p/core/java/src) must work again." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:67 +msgid "Router test migration" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:71 +msgid "" +"As with phase 2, the existing unit tests for the router must be\n" +"moved over to the automated system." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:78 +msgid "Router test coverage" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:82 +msgid "" +"To collect this bounty, the automated unit tests of the router \n" +"(i2p/router/java/src) must work again." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:89 +msgid "Streaming lib tests" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:94 +msgid "" +"To collect this bounty, a new set of unit tests must meet a \n" +"measured code coverage of 90% of the streaming lib \n" +"(i2p/apps/ministreaming/ and i2p/apps/streaming/)." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:102 +msgid "Unit tests coverage" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:106 +msgid "" +"To collect this bounty, all above unit tests must meet the 100%\n" +"coverage marker (except for log statements)." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:113 +msgid "MultiRouter simulation" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:115 +msgid "will be split in more sub-tasks" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:117 +msgid "" +"To collect this bounty, the existing in-memory multi-router\n" +"simulation must be checked, made work again and extend to simulate\n" +"lots of routers in memory on a single machine. This bounty will\n" +"be split in more fine grained subworks." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/unit-tests.html:126 +msgid "" +"Judge on all these works is the donor and donor decides if a phase is\n" +"called succesfull done and money can be paid." +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/vuze-plugin.html:2 +msgid "Bounty I2P vuze plugin" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/vuze-plugin.html:3 +msgid "vuze plugin" +msgstr "" + +#: i2p2www/pages/site/get-involved/bounties/vuze-plugin.html:6 +msgid "" +"To improve I2P usage and attract more people\n" +"into I2P torrent P2P I setout the bounty for a working I2P vuze\n" +"plugin.\n" +"The plugin needs to be official and submitted to vuze for publication\n" +"on their webpage/repository for plugins.\n" +"It should be easy to install and configured, work smooth and flawless.\n" +"Configuration should be friendly to starters and made easy to be " +"anonymous.\n" +"It should work with *.b32.i2p destinations as with signed (516++ bits) \n" +"destinations." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:2 +msgid "Application Development" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:3 +msgid "May 2013" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:7 +#: i2p2www/pages/site/get-involved/develop/applications.html:15 +msgid "Why write I2P-specific code?" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:8 +#: i2p2www/pages/site/get-involved/develop/applications.html:101 +msgid "Important concepts" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:9 +#: i2p2www/pages/site/get-involved/develop/applications.html:189 +msgid "Development options" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:10 +#: i2p2www/pages/site/get-involved/develop/applications.html:302 +msgid "Start developing - a simple guide" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:17 +#, python-format +msgid "" +"There are multiple ways to use applications in I2P.\n" +"Using I2PTunnel,\n" +"you can use regular applications without needing to program explicit I2P " +"support.\n" +"This is very effective for client-server scenario's,\n" +"where you need to connect to a single website.\n" +"You can simply create a tunnel using I2PTunnel to connect to that " +"website, as shown in Figure 1." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:25 +msgid "" +"If your application is distributed, it will require connections to a " +"large amount of peers.\n" +"Using I2PTunnel, you will need to create a new tunnel for each peer you " +"want to contact,\n" +"as shown in Figure 2.\n" +"This process can of course be automated, but running a lot of I2PTunnel " +"instances creates a large amount of overhead.\n" +"In addition, with many protocols you will need to force everyone to \n" +"use the same set of ports for all peers - e.g. if you want to reliably " +"run DCC \n" +"chat, everyone needs to agree that port 10001 is Alice, port 10002 is " +"Bob, port \n" +"10003 is Charlie, and so on, since the protocol includes TCP/IP specific " +"information\n" +"(host and port)." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:36 +msgid "" +"General network applications often send a lot of additional data that " +"could be used to identify users.\n" +"Hostnames, port numbers, time zones, character sets, etc. are often sent " +"without informing the user.\n" +"As such, designing the network protocol specifically with anonymity in " +"mind\n" +"can avoid compromising user identities." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:42 +msgid "" +"There are also efficiency considerations to review when determining how " +"to \n" +"interact on top of I2P. The streaming library and things built on top of" +" it\n" +"operate with handshakes similar to TCP, while the core I2P protocols " +"(I2NP and I2CP)\n" +"are strictly message based (like UDP or in some instances raw IP). The " +"important\n" +"distinction is that with I2P, communication is operating over a long fat " +"network - \n" +"each end to end message will have nontrivial latencies, but may contain " +"payloads \n" +"of up to several KB. An application that needs a simple request and " +"response can get rid\n" +"of any state and drop the latency incurred by the startup and teardown " +"handshakes\n" +"by using (best effort) datagrams without having to worry about MTU " +"detection or \n" +"fragmentation of messages." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:56 +#: i2p2www/pages/site/get-involved/develop/applications.html:58 +msgid "" +"Creating a server-client connection using I2PTunnel only requires " +"creating a single tunnel." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:58 +msgid "Figure 1:" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:63 +#: i2p2www/pages/site/get-involved/develop/applications.html:65 +msgid "" +"Setting up connections for a peer-to-peer applications requires a very " +"large amount of tunnels." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:65 +msgid "Figure 2:" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:69 +msgid "In summary, a number of reasons to write I2P-specific code:" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:73 +msgid "" +"Creating a large amount of I2PTunnel instances consumes a non-trivial " +"amount of resources,\n" +"which is problematic for distributed applications (a new tunnel is " +"required for each peer)." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:77 +msgid "" +"General network protocols often send a lot of additional data that can be" +" used to identify users.\n" +"Programming specifically for I2P allows the creation of a network " +"protocol\n" +"that does not leak such information, keeping users anonymous and secure." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:82 +msgid "" +"Network protocols designed for use on the regular internet can be " +"inefficient\n" +"on I2P, which is a network with a much higher latency." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:89 +#, python-format +msgid "" +"I2P supports a standard plugins interface for" +" developers\n" +"so that applications may be easily integrated and distributed." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:95 +msgid "" +"Applications written in Java and accessible/runnable\n" +"using an HTML interface via the standard webapps/app.war\n" +"may be considered for inclusion in the i2p distribution." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:103 +msgid "There are a few changes that require adjusting to when using I2P:" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:107 +msgid "Destination ~= host+port" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:109 +msgid "" +"An application running on I2P sends messages from and receives messages " +"to a\n" +"unique cryptographically secure end point - a \"destination\". In TCP or" +" UDP\n" +"terms, a destination could (largely) be considered the equivalent of a " +"hostname\n" +"plus port number pair, though there are a few differences." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:117 +msgid "" +"An I2P destination itself is a cryptographic construct - all data sent to" +" one is \n" +"encrypted as if there were universal deployment of IPsec with the " +"(anonymized)\n" +"location of the end point signed as if there were universal deployment of" +" DNSSEC." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:122 +msgid "" +"I2P destinations are mobile identifiers - they can be moved from one I2P " +"router\n" +"to another (or it can even \"multihome\" - operate on multiple routers at" +"\n" +"once). This is quite different from the TCP or UDP world where a single " +"end point (port)\n" +"must stay on a single host." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:129 +msgid "" +"I2P destinations are ugly and large - behind the scenes, they contain a " +"2048 bit ElGamal\n" +"public key for encryption, a 1024 bit DSA public key for signing, and a " +"variable size \n" +"certificate, which may contain proof of work or blinded data." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:134 +#, python-format +msgid "" +"There are existing ways to refer to these large and ugly destinations by " +"short\n" +"and pretty names (e.g. \"irc.duck.i2p\"), but those techniques do not " +"guarantee\n" +"globally uniqueness (since they're stored locally in a database on each " +"person's machine)\n" +"and the current mechanism is not especially scalable nor secure (updates " +"to the host list are\n" +"managed using \"subscriptions\" to naming services).\n" +"There may be some secure, human readable, scalable, and globally \n" +"unique, naming system some day, but applications shouldn't depend upon it" +" being in place,\n" +"since there are those who don't think such a beast is possible.\n" +"Further information on the naming system is " +"available." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:148 +#, python-format +msgid "" +"While most applications do not need to distinguish protocols and ports,\n" +"I2P does support them. Complex applications may specify a " +"protocol,\n" +"from port, and to port, on a per-message basis, to multiplex traffic on\n" +"a single destination.\n" +"See the datagram page for details.\n" +"Simple applications operate by listening for \"all protocols\" on \"all " +"ports\" of a destination." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:157 +msgid "Anonymity and confidentiality" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:159 +msgid "" +"I2P has transparent end to end encryption\n" +"and authentication for all data passed over the network - if Bob sends to" +" Alice's destination,\n" +"only Alice's destination can receive it, and if Bob is using the " +"datagrams or streaming \n" +"library, Alice knows for certain that Bob's destination is the one who " +"sent the data." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:166 +msgid "" +"Of course, I2P transparently anonymizes the\n" +"data sent between Alice and Bob, but it does nothing to anonymize the " +"content of what they\n" +"send. For instance, if Alice sends Bob a form with her full name, " +"government IDs, and \n" +"credit card numbers, there is nothing I2P can do. As such, protocols and" +" applications should \n" +"keep in mind what information they are trying to protect and what " +"information they are willing\n" +"to expose." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:175 +msgid "I2P datagrams can be up to several KB" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:177 +#, python-format +msgid "" +"Applications that use I2P datagrams (either raw or repliable ones) can " +"essentially be thought\n" +"of in terms of UDP - the datagrams are unordered, best effort, and " +"connectionless - but unlike\n" +"UDP, applications don't need to worry about MTU detection and can simply " +"fire off large datagrams.\n" +"While the upper limit is nominally 32 KB, the message is fragmented for " +"transport, thus dropping\n" +"the reliability of the whole. Datagrams over about 10 KB are not " +"currently recommended.\n" +"See the datagram page for details.\n" +"For many applications, 10 KB of data is sufficient for an\n" +"entire request or response, allowing them to transparently operate in I2P" +" as a UDP-like \n" +"application without having to write fragmentation, resends, etc." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:191 +msgid "" +"There are several means of sending data over I2P, each with their own " +"pros and cons.\n" +"The streaming lib is the recommended interface, used by the majority of " +"I2P applications." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:196 +msgid "Streaming Lib" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:197 +#, python-format +msgid "" +"The full streaming library is now the " +"standard\n" +"interface. It allows programming using TCP-like sockets, as explained in " +"the Streaming development guide." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:203 +#, python-format +msgid "" +"BOB is the Basic Open Bridge,\n" +"allowing an application in any language to make streaming connections \n" +"to and from I2P. At this point in time it lacks UDP support, but UDP " +"support\n" +"is planned in the near future. BOB also contains several tools, such as \n" +"destination key generation, and verification that an address conforms to" +" \n" +"I2P specifications. Up to date info and applications that use BOB can be" +" \n" +"found at this eepsite." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:216 +msgid "SAM is not recommended. SAM V2 is okay, SAM V3 is recommended." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:217 +#, python-format +msgid "" +"SAM is the Simple Anonymous Messaging protocol, " +"allowing an\n" +"application written in any language to talk to a SAM bridge through a " +"plain TCP socket and have\n" +"that bridge multiplex all of its I2P traffic, transparently coordinating " +"the encryption/decryption\n" +"and event based handling. SAM supports three styles of operation:" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:224 +msgid "" +"streams, for when Alice and Bob want to send data to each other reliably " +"and in order" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:227 +msgid "" +"repliable datagrams, for when Alice wants to send Bob a message that Bob " +"can reply to" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:230 +msgid "" +"raw datagrams, for when Alice wants to squeeze the most bandwidth and " +"performance as possible,\n" +"and Bob doesn't care whether the data's sender is authenticated or not " +"(e.g. the data transferred\n" +"is self authenticating)" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:236 +msgid "" +"SAM V3 aims at the same goal as SAM and SAM V2, but does not require\n" +"multiplexing/demultiplexing. Each I2P stream is handled by its own socket" +" between the application\n" +"and the SAM bridge. Besides, datagrams can be sent and received by the " +"application through datagram\n" +"communications with the SAM bridge." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:243 +#, python-format +msgid "" +"SAM V2 is a new version used by imule\n" +"that fixes some of the problems in SAM.\n" +"
\n" +"SAM V3 is used by imule since version 1.4.0." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:251 +msgid "" +"The I2PTunnel application allows applications to build specific TCP-like " +"tunnels to peers \n" +"by creating either I2PTunnel 'client' applications (which listen on a " +"specific port and connect\n" +"to a specific I2P destination whenever a socket to that port is opened) " +"or I2PTunnel 'server'\n" +"applications (which listen to a specific I2P destination and whenever it " +"gets a new I2P \n" +"connection it outproxies to a specific TCP host/port). These streams are" +" 8-bit clean, and are\n" +"authenticated and secured through the same streaming library that SAM " +"uses, but there is a \n" +"nontrivial overhead involved with creating multiple unique I2PTunnel " +"instances, since each have\n" +"their own unique I2P destination and their own set of tunnels, keys, etc." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:263 +msgid "" +"I2P supports a SOCKS V4 and V5 proxy.\n" +"Outbound connections work well. Inbound (server) and UDP functionality " +"may be incomplete\n" +"and untested." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:270 +msgid "Removed" +msgstr "已刪除" + +#: i2p2www/pages/site/get-involved/develop/applications.html:271 +msgid "" +"There used to be a simple \"ministreaming\" library,\n" +"but now ministreaming.jar contains only the interfaces for the full " +"streaming library." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:276 +msgid "Datagrams" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:277 +msgid "Recommended for UDP-like applications" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:278 +#, python-format +msgid "" +"The Datagram library allows sending UDP-" +"like packets.\n" +"It's possible to use:" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:283 +msgid "Repliable datagrams" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:284 +msgid "Raw datagrams" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:288 +msgid "Not recommended" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:289 +#, python-format +msgid "" +"I2CP itself is a language independent protocol, " +"but to implement an I2CP library \n" +"in something other than Java there is a significant amount of code to be " +"written (encryption routines, \n" +"object marshalling, asynchronous message handling, etc). While someone " +"could write an I2CP library in \n" +"C or something else, it would most likely be more useful to use the C SAM" +" library instead." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:296 +msgid "Web Applications" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:297 +msgid "" +"I2P comes with the Jetty webserver, and configuring to use the Apache " +"server instead is straightforward.\n" +"Any standard web app technology should work." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:303 +msgid "" +"Developing using I2P requires a working I2P installation and a " +"development environment of your own choice.\n" +"If you are using Java, you can start development with the streaming library or datagram library.\n" +"Using another programming language, SAM or BOB can be used." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:309 +msgid "Developing with the streaming library" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:311 +msgid "" +"The following example shows how to create TCP-like client and server " +"applications\n" +"using the streaming library." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:316 +msgid "This will require the following libraries in your classpath:" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:320 +msgid "The streaming library itself" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:321 +msgid "Factory and interfaces for the streaming library" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:322 +msgid "Standard I2P classes, data structures, API, and utilities" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:325 +msgid "" +"You can fetch these from an I2P installation, or add the following " +"dependencies\n" +"from Maven Central:" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:334 +msgid "" +"Network communication requires the usage of I2P network sockets.\n" +"To demonstrate this, we will create an application where a client can " +"send text messages to a server,\n" +"who will print the messages and send them back to the client. In other " +"words, the server will function as an echo." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:339 +msgid "" +"We will start by initializing the server application. This requires " +"getting an I2PSocketManager\n" +"and creating an I2PServerSocket.\n" +"We will not provide the I2PSocketManagerFactory with the saved keys for " +"an existing Destination,\n" +"so it will create a new Destination for us.\n" +"So we will ask the I2PSocketManager for an I2PSession, so we can find out" +" the Destination that\n" +"was created, as we will need to copy and paste that information later so " +"the client can connect to us." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:370 +msgid "Code example 1: initializing the server application." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:372 +msgid "" +"Once we have an I2PServerSocket, we can create I2PSocket instances to " +"accept connections from clients.\n" +"In this example, we will create a single I2PSocket instance, that can " +"only handle one client at a time.\n" +"A real server would have to be able to handle multiple clients.\n" +"To do this, multiple I2PSocket instances would have to be created, each " +"in separate threads.\n" +"Once we have created the I2PSocket instance, we read data, print it and " +"send it back to the client.\n" +"The bold code is the new code we add." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:456 +msgid "Code example 2: accepting connections from clients and handling messages." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:460 +msgid "" +"When you run the above server code, it should print something like this " +"(but without the line endings, it should just be\n" +"one huge block of characters):" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:474 +msgid "" +"This is the base64-representation of the server Destination. The client " +"will need this string to reach the server." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:478 +msgid "" +"Now, we will create the client application. Again, a number of steps are " +"required for initialization.\n" +"Again, we will need to start by getting an I2PSocketManager.\n" +"We won't use an I2PSession and an I2PServerSocket this time.\n" +"Instead, we will use the server Destination string to start our " +"connection.\n" +"We will ask the user for the Destination string, and create an I2PSocket " +"using this string.\n" +"Once we have an I2PSocket, we can start sending and receiving data to and" +" from the server." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:562 +msgid "" +"Code example 3: starting the client and connecting it to the server " +"application." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:564 +msgid "" +"Finally, you can run both the server and the client application.\n" +"First, start the server application. It will print a Destination string " +"(like shown above).\n" +"Next, start the client application. When it requests a Destination " +"string, you can enter the string printed by the server.\n" +"The client will then send 'Hello I2P!' (along with a newline) to the " +"server, who will print the message and send it back to the client." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:570 +msgid "Congratulations, you have successfully communicated over I2P!" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:574 +msgid "Existing Applications" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:575 +msgid "Contact us if you would like to contribute." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:596 +msgid "Application Ideas" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:598 +msgid "NNTP server - there have been some in the past, none at the moment" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:601 +msgid "" +"Jabber server - there have been some in the past, and there is one at the" +" moment, with access to the public internet" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:604 +msgid "PGP Key server and/or proxy" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:607 +msgid "" +"Content Distribution / DHT applications - resurrect feedspace,\n" +"port dijjer, look for alternatives" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:611 +msgid "Help out with Syndie development" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:614 +msgid "" +"Web-based applications - The sky is the limit for hosting web-server-" +"based\n" +"applications such as blogs, pastebins, storage, tracking, feeds, etc.\n" +"Any web or CGI technology such as Perl, PHP, Python, or Ruby will work." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/applications.html:619 +msgid "" +"Resurrect some old apps, several previously in the i2p source package -\n" +"bogobot, pants, proxyscript, q, stasher, socks proxy, i2ping, feedspace" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/developers-keys.html:2 +msgid "I2P Developer's MTN Keys" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/developers-keys.html:4 +msgid "" +"Monotone servers used by the I2P project require two types of keys to be " +"used." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/developers-keys.html:8 +msgid "" +"Commit Keys to sign changes checked-in to the " +"respository; and" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/developers-keys.html:9 +msgid "" +"Transport Keys to push changes to remote " +"servers." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/developers-keys.html:12 +#, python-format +msgid "" +"Everyone that uses Monotone to checkout the I2P codebase will need to\n" +"import the\n" +"developer commit keys, but only Monotone \n" +"server operators will need to import the transport keys." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/developers-keys.html:19 +msgid "Developer Commit keys" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/developers-keys.html:291 +msgid "Developer Transport Keys" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/developers-keys.html:292 +#, python-format +msgid "" +"Note: Transport keys are only needed for setting up a\n" +"Monotone server." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/license-agreements.html:2 +msgid "License Agreements" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/license-agreements.html:5 +#, python-format +msgid "For more information see the licenses page." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/license-agreements.html:8 +msgid "" +"Following is a monotonerc file defining the current trust list.\n" +"Developers must use this file in ~/.monotone/monotonerc or\n" +"_MTN/montonerc in their i2p.i2p workspace." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/license-agreements.html:17 +msgid "Agreements" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:2 +msgid "I2P Software Licenses" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:4 +#, python-format +msgid "" +"As required by our\n" +"threat model (among other reasons), the \n" +"software developed to support the anonymous communication \n" +"network we call I2P must be freely available, open source, \n" +"and user modifiable. To meet these criteria, we make use of\n" +"a variety of legal and software engineering techniques so\n" +"as to remove as many barriers to entry for those considering\n" +"making use of or contributing to the I2P effort." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:15 +msgid "" +"While the information below may be more confusing than just simply \n" +"stating \"I2P is BSD\", \"I2P is GPL\", or \"I2P is public domain\",\n" +"the short answer to the question \"How is I2P licensed?\" is this:" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:21 +msgid "All software bundled in the I2P distributions will allow:" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:23 +msgid "use without fee" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:24 +msgid "" +"use with no restrictions on how, when, where, why, or by whom is running " +"it" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:25 +msgid "access to the source code without fee" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:26 +msgid "modifications to the source" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:29 +msgid "" +"Most of the software guarantees much more - the ability of anyone " +"to \n" +"distribute the modified source however they choose. However, not all of " +"the \n" +"software bundled provides this freedom - the GPL restricts the ability of" +" \n" +"developers who wish to integrate I2P with their own applications that are" +" not \n" +"themselves open source applications. While we applaud the noble goals of" +" \n" +"increasing the resources in the commons, I2P is best served by removing " +"any\n" +"barriers that stand in the way of its adoption - if a developer " +"considering whether\n" +"they can integrate I2P with their application has to stop and check with " +"their lawyer,\n" +"or conduct a code audit to make sure their own source can be released as " +"GPL-compatible,\n" +"we lose out." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:42 +msgid "Component licenses" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:43 +msgid "" +"The I2P distribution contains several resources, reflecting the " +"partitioning of \n" +"the source code into components. Each component has its own license, " +"which all \n" +"developers who contribute to it agree to - either by explicitly declaring" +" the release\n" +"of code committed under a license compatible with that component, or by " +"implicitly\n" +"releasing the code committed under the component's primary license. Each" +" of these \n" +"components has a lead developer who has the final say as to what license " +"is compatible\n" +"with the component's primary license, and the I2P project manager has the" +" final say as\n" +"to what licenses meet the above four guarantees for inclusion in the I2P " +"distribution." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:56 +msgid "Component" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:57 +msgid "Source path" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:58 +msgid "Resource" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:59 +msgid "Primary license" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:60 +msgid "Alternate licenses" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:61 +msgid "Lead developer" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:275 +msgid "GPL + java exception" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:276 +#, python-format +msgid "" +"While it may be redundant, just for clarity the\n" +"GPL'ed code included within\n" +"I2PTunnel and other apps must be released under the GPL with an " +"additional \"exception\"\n" +"explicitly authorizing the use of Java's standard libraries:" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:292 +msgid "" +"All source code under each component will by default be licensed under " +"the\n" +"primary license, unless marked otherwise in the code. All of the above " +"is\n" +"summary of the license terms - please see the specific license for the " +"component\n" +"or source code in question for authoritative terms. Component source " +"locations and\n" +"resource packaging may be changed if the repository is reorganized." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:300 +msgid "Website content" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:308 +msgid "Commit privileges" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:309 +#, python-format +msgid "" +"Developers may push changes to a distributed monotone repository if you\n" +"receive permission from the person running that repository.\n" +"See the Monotone Page for details." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:315 +msgid "" +"However, to have changes included in a release, developers\n" +"must be trusted by the release manager (currently zzz).\n" +"In addition, they must explicitly agree with the above terms to be " +"trusted.\n" +"That means that they must send one of the release managers a signed " +"message affirming that:" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:322 +msgid "" +"Unless marked otherwise, all code I commit is implicitly licensed under\n" +"the component's primary license" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:326 +msgid "" +"If specified in the source, the code may be explicitly licensed under one" +"\n" +"of the component's alternate licenses" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:330 +msgid "" +"I have the right to release the code I commit under the terms I\n" +"am committing it" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/licenses.html:336 +#, python-format +msgid "" +"If anyone is aware of any instances where the above conditions are not " +"met,\n" +"please contact the component lead and/or an I2P release manager with " +"further\n" +"information.\n" +"See developers' license agreements." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/release-signing-key.html:2 +msgid "Release Signing Key" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/release-signing-key.html:4 +msgid "Releases 0.7.6 and later are signed by zzz. His current public key is:" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/release-signing-key.html:190 +msgid "Releases from 0.9.9 could be signed by str4d. His current public key is:" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/release-signing-key.html:563 +msgid "str4d has signed the following releases:" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/release-signing-key.html:571 +msgid "Releases 0.7.6 through 0.9.12 were signed by zzz with the following key:" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/release-signing-key.html:607 +msgid "" +"Releases 0.6.1.31 through 0.7.5 were signed by Complication. His public " +"key is:" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/security-key.html:2 +msgid "Security GPG Key" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/security-key.html:4 +msgid "Following is the GPG key for the security _at_ geti2p.net email address:" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/signed-keys.html:2 +msgid "Signed Developer Keys" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/signed-keys.html:4 +msgid "" +"Keys for zzz, Complication and welterde are provided clearsigned. The key" +" for jrandom must be\n" +"verified differently, since he's away, and only left a binary detached\n" +"signature for his key." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/signed-keys.html:10 +#: i2p2www/pages/site/get-involved/develop/signed-keys.html:16 +msgid "Monotone keys for zzz" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/signed-keys.html:11 +#: i2p2www/pages/site/get-involved/develop/signed-keys.html:47 +msgid "Monotone keys for welterde" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/signed-keys.html:12 +#: i2p2www/pages/site/get-involved/develop/signed-keys.html:79 +msgid "Monotone keys for Complication" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/signed-keys.html:13 +#: i2p2www/pages/site/get-involved/develop/signed-keys.html:114 +msgid "Monotone keys for jrandom" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/signed-keys.html:14 +#: i2p2www/pages/site/get-involved/develop/signed-keys.html:169 +msgid "Others" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/signed-keys.html:17 +msgid "" +"Tip: To find zzz's GPG key, on his eepsite locate the key " +"`0xA76E0BED`, with\n" +"the name `zzz@mail.i2p` and the fingerprint `4456 EBBE C805 63FE 57E6 " +"B310 4155\n" +"76BA A76E 0BED`." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/signed-keys.html:49 +msgid "" +"Tip: To find welterde's GPG key, on public keyservers locate the " +"key\n" +"`0x62E011A1`, with the name `welterde@arcor.de` and the fingerprint `6720" +" FD81\n" +"3872 6DFC 6016 64D1 EBBC 0374 62E0 11A1`." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/signed-keys.html:81 +msgid "" +"Tip: To find Complication's GPG key, on his eepsite locate the key" +"\n" +"`0x79FCCE33`, with the name `complication@mail.i2p` and the fingerprint " +"`73CF\n" +"2862 87A7 E7D2 19FF DB66 FA1D FC6B 79FC CE33`." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/signed-keys.html:116 +msgid "" +"Tip: To find jrandom's GPG key for Syndie releases, on public " +"keyservers locate\n" +"the key `0x393F2DF9`, with the name `syndie-dist-key@i2p.net` and the\n" +"fingerprint `AE89 D080 0E85 72F0 B777 B2ED C2FA 68C0 393F 2DF9`." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/signed-keys.html:122 +msgid "" +"Jrandom had to leave unexpectedly in the end of 2007. His commit key was\n" +"deployed in the Syndie Monotone repository, in a file named `mtn-" +"committers`.\n" +"That file also had a GPG signature, `mtn-committers.sig`, but it was a " +"binary\n" +"detached signature. I am going to supply both files in GPG ASCII-armoured" +" form\n" +"below." +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/signed-keys.html:130 +msgid "" +"First, the file `mtn-committers` containing jrandom's Monotone key. Save " +"as\n" +"`mtn-committers.asc` and unpack it using `gpg --output mtn-committers " +"--dearmor\n" +"mtn-committers.asc`:" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/signed-keys.html:151 +msgid "" +"Now the file `mtn-committers.sig`, containing the GPG signature. Save as\n" +"`mtn-committers.sig.asc` and unpack it using `gpg --output mtn-" +"committers.sig\n" +"--dearmor mtn-committers.sig.asc`. Use it to verify the above supplied\n" +"`mtn-committers` file:" +msgstr "" + +#: i2p2www/pages/site/get-involved/develop/signed-keys.html:170 +#, python-format +msgid "" +"Some of the developers have included their Monotone keys in their signed license agreement." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:2 +msgid "Developer Guidelines and Coding Style" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:3 +msgid "January 2017" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:5 +#, python-format +msgid "Read the new developers guide first." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:9 +msgid "Basic Guidelines and Coding Style" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:11 +msgid "" +"Most of the following should be common sense for anybody who has worked " +"on open source or in a commercial\n" +"programming envrionment.\n" +"The following applies mostly to the main development branch i2p.i2p.\n" +"Guidelines for other branches, plugins, and external apps may be " +"substantially different;\n" +"check with the appropriate developer for guidance." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:19 +msgid "Community" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:21 +msgid "" +"Please don't just \"write code\". If you can, participate in other " +"development activities, including:\n" +"development discussions and support on IRC, zzz.i2p, and forum.i2p; " +"testing;\n" +"bug reporting and responses; documentation; code reviews; etc." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:26 +msgid "" +"Active devs should be available periodically on IRC #i2p-dev.\n" +"Be aware of the current release cycle.\n" +"Adhere to release milestones such as feature freeze, tag freeze, and\n" +"the checkin deadline for a release." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:35 +msgid "Release Cycle" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:36 +msgid "" +"Our normal release cycle is 6-10 weeks.\n" +"Following are the approximate deadlines within a typical 8-week cycle.\n" +"Actual deadlines for each release are set by the lead developer." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:43 +msgid "1-2 days after previous release: Checkins to trunk are allowed." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:46 +msgid "" +"2-3 weeks after previous release: Deadline to propagate major changes " +"from other branches to trunk." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:49 +msgid "4-5 weeks before release: Deadline to request new home page links." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:52 +msgid "3-4 weeks before release: Feature freeze. Deadline for major new features." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:55 +msgid "" +"2-3 weeks before release: Hold project meeting to review new home page " +"link requests, if any." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:58 +msgid "" +"7-10 days before release: String freeze. No more changes to translated " +"(\"tagged\") strings.\n" +"Push strings to Transifex, announce translation deadline on Transifex." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:62 +msgid "" +"7-10 days before release: Feature deadline. Bug fixes only after this " +"time. No more features, refactoring or cleanup." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:65 +msgid "" +"3-4 days before release: Translation deadline. Pull translations from " +"Transifex and check in." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:68 +msgid "" +"2-3 days before release: Checkin deadline. No checkins after this time " +"without the permission of the release builder." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:71 +msgid "Hours before release: Code review deadline." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:80 +msgid "" +"Have a basic understanding of distributed source control systems, even if" +" you haven't\n" +"used monotone before. Ask for help if you need it.\n" +"Once pushed, checkins are forever, there is no undo. Please be careful.\n" +"If you have not used monotone before, start with baby steps.\n" +"Check in some small changes and see how it goes." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:87 +msgid "" +"Test your changes before checking them in.\n" +"If you prefer the checkin-before-test development model,\n" +"use your own development branch (e.g. i2p.i2p.yourname.test)\n" +"and propagate back to i2p.i2p once it is working well.\n" +"Do not break the build. Do not cause regressions.\n" +"In case you do (it happens), please do not vanish for a long period after" +"\n" +"you push your change." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:96 +msgid "" +"If your change is non-trivial, or you want people to test it and need " +"good test reports\n" +"to know whether your change was tested or not, add a checkin comment to " +"history.txt\n" +"and increment the build revision in RouterVersion.java." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:101 +msgid "" +"Ensure that you have the latest monotonerc file in _MTN.\n" +"Do not check in on top of untrusted revisions." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:105 +msgid "" +"Ensure that you 'mtn pull' and 'mtn update' to the latest revision before" +" you check in and push.\n" +"If you inadvertently diverge, merge and push as soon as possible.\n" +"Don't routinely make others merge for you.\n" +"Yes, we know that monotone says you should push and then merge,\n" +"but in our experience, in-workspace merge works just as well as in-" +"database merge,\n" +"without creating a merge revision." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:113 +msgid "" +"Do not check in major changes into the main i2p.i2p branch late in the " +"release cycle.\n" +"If a project will take you more than a couple days, create your own " +"branch in monotone\n" +"and do the development there so you do not block releases." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:120 +msgid "Coding Style" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:122 +msgid "" +"Coding style throughout most of the code is 4-spaces for indentation. Do " +"not use tabs.\n" +"Do not reformat code. If your IDE or editor wants to reformat everything," +" get control of it.\n" +"Yes, we know 4 spaces is a pain, but perhaps you can configure your " +"editor appropriately.\n" +"In some places, the coding style is different.\n" +"Use common sense. Emulate the style in the file you are modifying." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:129 +msgid "" +"All new public and package-private classes and methods require Javadocs. " +"Add @since release-number.\n" +"Javadocs for new private methods are desirable." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:133 +msgid "" +"For any Javadocs added, there must not be any doclint errors or warnings." +"\n" +"Run 'ant javadoc' with Oracle Java 8 or higher to check.\n" +"All params must have @param lines, all non-void methods must have @return" +" lines,\n" +"all exceptions declared thrown must have @throws lines, and no HTML " +"errors." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:139 +msgid "" +"Classes in core/ (i2p.jar) and portions of i2ptunnel are part of our " +"official API.\n" +"There are several out-of-tree plugins and other applications that rely on" +" this API.\n" +"Be careful not to make any changes that break compatibility.\n" +"Don't add methods to the API unless they are of general utility.\n" +"Javadocs for API methods should be clear and complete.\n" +"If you add or change the API, also update the documentation on the " +"website (i2p.www branch)." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:147 +msgid "" +"Tag strings for translation where appropriate.\n" +"Don't change existing tagged strings unless really necessary, as it will " +"break existing translations.\n" +"Do not add or change tagged strings after the \"tag freeze\" in the " +"release cycle so that\n" +"translators have a chance to update before the release." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:153 +msgid "" +"Use generics and concurrent classes where possible. I2P is a highly " +"multi-threaded application." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:156 +msgid "" +"Be familiar with common Java pitfalls that are caught by findbugs.\n" +"Run 'ant findbugs' to learn more." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:160 +msgid "" +"We require Java 7 to build and run I2P.\n" +"Do not use Java 8 classes or methods anywhere.\n" +"Do not use Java 7 or 8 classes or methods in embedded subsystems (core, " +"router, mstreaming, streaming, i2ptunnel),\n" +"as Android and embedded applications require only Java 6. All classes " +"must be available in Android API 9.\n" +"Java 7 language features are acceptable in these subsystems if supported " +"by the current version\n" +"of the Android SDK and they compile to Java 6-compatible code." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:168 +msgid "" +"Explicitly convert between primitive types and classes;\n" +"don't rely on autoboxing/unboxing." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:172 +msgid "Don't use URL. Use URI." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:175 +msgid "" +"Don't catch Exception. Catch RuntimeException and checked exceptions " +"individually." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:178 +msgid "" +"Don't use String.getBytes() without a UTF-8 charset argument. You may " +"also use DataHelper.getUTF8() or DataHelper.getASCII()." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:181 +msgid "" +"Always specify a UTF-8 charset when reading or writing files. The " +"DataHelper utilities may be helpful." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:184 +msgid "" +"Always specify a locale (for example Locale.US) when using " +"String.toLowerCase() or String.toUpperCase().\n" +"Do not use String.equalsIgnoreCase(), as a locale cannot be specified." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:188 +msgid "Don't use String.split(). Use DataHelper.split()." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:191 +msgid "Ensure that InputStreams and OutputStreams are closed in finally blocks." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:194 +msgid "" +"Use {} for all for and while blocks, even if only one line.\n" +"If you use {} for either the if, else, or if-else block, use it for all " +"blocks.\n" +"Put \"} else {\" on a single line." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:199 +msgid "Specify fields as final wherever possible." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:202 +msgid "" +"Don't store I2PAppContext, RouterContext, Log, or any other references to" +" router or context items in static fields." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:205 +msgid "Don't start threads in constructors. Use I2PAppThread instead of Thread." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:210 +msgid "Licenses" +msgstr "許可證" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:212 +msgid "" +"Only check in code that you wrote yourself.\n" +"Before checking in any code or library jars from other sources,\n" +"justify why it is necessary,\n" +"verify the license is compatible,\n" +"and obtain approval from the lead developer." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:219 +msgid "" +"If you do obtain approval to add external code or jars,\n" +"and binaries are available in any Debian or Ubuntu package,\n" +"you must implement build and packaging options to use the external " +"package instead.\n" +"Checklist of files to modify:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:227 +msgid "" +"For any images checked in from external sources,\n" +"it is your responsibility to first verify the license is compatible.\n" +"Include the license and source information in the checkin comment." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:234 +msgid "Bugs" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:236 +#, python-format +msgid "" +"Managing Trac tickets is everybody's job, please help.\n" +"Monitor %(trac)s for tickets you have been assigned or can help with.\n" +"Assign, categorize, comment on, fix, or close tickets if you can." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:241 +msgid "" +"New developers should start by fixing a bug.\n" +"Search for bugs with the 'easy' keyword on trac.\n" +"When you have a fix, attach your patch to the ticket and add the keyword " +"'review-needed'.\n" +"Do not close the ticket until it's been successfully reviewed and you've " +"checked your changes in.\n" +"Once you've done this smoothly for a couple of tickets, you may follow " +"the normal procedure below." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/dev-guidelines.html:248 +msgid "" +"Close a ticket when you think you've fixed it.\n" +"We don't have a test department to verify and close tickets.\n" +"If you arent sure you fixed it, close it and add a note saying\n" +"\"I think I fixed it, please test and reopen if it's still broken\".\n" +"Add a comment with the dev build number or revision and set\n" +"the milestone to the next release." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/ides.html:2 +msgid "Using an IDE with I2P" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/ides.html:4 +msgid "" +"The main I2P development branch (i2p.i2p) has been set up to" +" enable developers to easily set up two of the commonly-used IDEs for " +"Java development: Eclipse and NetBeans." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/ides.html:10 +msgid "" +"The main I2P development branches (i2p.i2p and branches from" +" it) contain .project and .classpath Eclipse files, to enable the branch " +"to be easily set up in Eclipse." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/ides.html:16 +msgid "" +"Check out the I2P branch into some directory (e.g. " +"$HOME/dev/i2p.i2p)." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/ides.html:20 +msgid "" +"Open Eclipse and create a new Workspace, based in the directory that the " +"I2P branch was checked out to." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/ides.html:24 +msgid "" +"Select \"File - Import...\" and then under \"General\" select \"Existing " +"Projects into Workspace\"." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/ides.html:28 +msgid "" +"For \"Select root directory:\" choose the directory that the I2P branch " +"was checked out to." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/ides.html:32 +msgid "If necessary, click \"Refresh\" to refresh the list of projects." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/ides.html:36 +msgid "Select every project in the list, and click \"Finish\"." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/ides.html:40 +msgid "" +"Done! Your workspace should now contain all projects within the I2P " +"branch, and their build dependencies should be correctly set up." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/ides.html:48 +msgid "" +"The main I2P development branches (i2p.i2p and branches from" +" it) contain NetBeans project files." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:2 +msgid "Monotone Guide" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:6 +msgid "Operating a Monotone client" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:8 +#: i2p2www/pages/site/get-involved/guides/monotone.html:61 +msgid "Generating Monotone keys" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:9 +msgid "Trust and initializing your repository" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:10 +#: i2p2www/pages/site/get-involved/guides/monotone.html:194 +msgid "Obtaining and deploying developers' keys" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:11 +#: i2p2www/pages/site/get-involved/guides/monotone.html:225 +msgid "Setting up trust evaluation hooks" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:12 +#: i2p2www/pages/site/get-involved/guides/monotone.html:266 +msgid "" +"Pulling the i2p.i2p, i2p.www and " +"i2p.syndie branches" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:13 +#: i2p2www/pages/site/get-involved/guides/monotone.html:312 +msgid "Verifying that trust evaluation works" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:14 +#: i2p2www/pages/site/get-involved/guides/monotone.html:361 +msgid "Checking out a working copy of the latest version" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:15 +#: i2p2www/pages/site/get-involved/guides/monotone.html:388 +msgid "Updating your working copy to the latest version" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:19 +#: i2p2www/pages/site/get-involved/guides/monotone.html:418 +msgid "Operating a Monotone Server" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:21 +msgid "Obtaining and deploying developers’ transport keys" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:22 +#: i2p2www/pages/site/get-involved/guides/monotone.html:428 +msgid "Granting push and pull access" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:23 +#: i2p2www/pages/site/get-involved/guides/monotone.html:473 +msgid "Running Monotone in server mode" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:24 +#: i2p2www/pages/site/get-involved/guides/monotone.html:498 +msgid "Differences under Debian GNU/Linux" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:32 +#, python-format +msgid "" +"This is a revised version of Complication's original\n" +" guide detailing the use of Monotone in I2P development.\n" +" For basic instructions see the quick-start " +"guide." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:40 +#, python-format +msgid "" +"I2P has a distributed development model. The source code is replicated " +"across\n" +" independently administered Monotone (\"MTN\") repositories.\n" +" Developers with commit rights are able to push their changes to the " +"repository\n" +" (a license agreement needs to be " +"signed\n" +" before commit rights are granted)." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:50 +msgid "" +"Some of Monotone's noteworthy qualities are: distributed\n" +" version control, cryptographic authentication, access control, its " +"small size, having few\n" +" dependencies, storage of projects in a compressed SQLite database file," +" and\n" +" having the ability to resume interrupted synchronization attempts." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:59 +msgid "Operating a Monotone Client" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:64 +msgid "" +"A transport key grants you the ability to push your changes to a Monotone" +" repository server.\n" +" In order to commit code into Monotone (in essence signing your code), a" +" commit key is also needed.\n" +" None of the public Monotone servers on I2P currently require a key in " +"order to read (or pull) the source code." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:72 +msgid "" +"Without a transport key, one cannot:\n" +"
    \n" +"
  • pull code from a server which doesn't allow global read " +"access
  • \n" +"
  • push code to any server
  • \n" +"
  • run a Monotone server
  • \n" +"
" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:83 +msgid "" +"Without a commit key, one cannot:\n" +"
    \n" +"
  • commit any code
  • \n" +"
" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:92 +msgid "" +"If you only intend to retrieve code from MTN, feel free to skip to the\n" +" next section. " +"If you want\n" +" to generate keys, read the following." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:100 +msgid "" +"By convention keys are named like an e-mail addresses, but a " +"corresponding e-mail\n" +" address does not need to exist. For example, your keys might be named:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:111 +msgid "" +"Monotone stores keys under $HOME/.monotone/keys in " +"text files which\n" +" are named identically to the keys. For example:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:121 +msgid "" +"To generate transport and commit keys, enter the following commands at a " +"prompt:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:131 +msgid "" +"Monotone will prompt you for a password to protect your keys. You are " +"very strongly encouraged to set a password\n" +" for the commit key. Many users will leave an empty password for the " +"transport key, especially those running a\n" +" Monotone server." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:139 +msgid "Trust, and initializing your repository" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:143 +msgid "" +"Monotone's security model helps to ensure that nobody can easily " +"impersonate a developer without\n" +" it being noticed. Since developers can make mistakes and become " +"compromised,only manual review can\n" +" ensure quality of code. Monotone's trust model will ensure that you " +"read the right diffs. It does\n" +" not replace reading diffs." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:153 +msgid "" +"A Monotone repository is a single file (a compressed SQLite database) " +"which contains all of the project's source code and history." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:159 +msgid "" +"After importing the " +"developers' keys into Monotone and\n" +" setting up trust " +"evaluation hooks,\n" +" Monotone will prevent untrusted code from being checked out into your " +"workspace.\n" +" There are commands available to clean untrusted code from your " +"workspace but in practice they've not been\n" +" needed due to the push access policies in place." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:169 +msgid "" +"A repository can hold many branches. For example, our repository holds " +"the\n" +" following main branches:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:174 +msgid "The I2P router and associated programs" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:175 +msgid "The I2P project website" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:176 +msgid "Syndie, a distributed forums tool" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:181 +msgid "" +"By convention, the I2P Monotone repository is named i2p.mtn." +" Before pulling\n" +" source code from servers, a database for your repository will need to " +"be initialized.\n" +" To initialize your local repository, change into the directory that you" +" want the\n" +" i2p.mtn file and branch directories to be stored and issue" +" the following\n" +" command:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:197 +msgid "" +"Keys which developers use to commit code are essential for trust " +"evaluation in\n" +" Monotone. The other developers' transport keys are only required for " +"Monotone server operators.\n" +" " +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:204 +#, python-format +msgid "" +"Developers' commit keys are provided GPG-signed on another page." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:210 +#, python-format +msgid "" +"To import developers' keys after verifying their authenticity, copy all of the keys into a new\n" +" file. Create this file (e.g. keys.txt) in the same " +"directory where i2p.mtn is located. Import the keys with the" +" command:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:220 +msgid "" +"Note: Never add keys to " +"$HOME/.monotone/keys manually." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:228 +msgid "" +"The default Monotone trust policy is way too lax for our requirements: " +"every committer is trusted by default.\n" +" That is not acceptable for I2P development." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:235 +msgid "" +"Change into the directory $HOME/.monotone and open " +"the file\n" +" monotonerc with a text editor. Copy and paste the " +"following two functions into this file:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:244 +msgid "" +"The first function determines an intersection between two sets, in our " +"case a\n" +" revision's signers and trusted signers." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:251 +msgid "" +"The second function determines trust in a given revision, by calling the " +"first\n" +" function with \"signers\" and \"trusted\" as arguments. If the " +"intersection is\n" +" null, the revision is not trusted. If the intersection is not empty, " +"the\n" +" revision is trusted. Otherwise, the revision is not trusted." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:260 +msgid "" +"More information about Trust Evaluation Hooks can be found in the official Monotone " +"documentation." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:268 +msgid "" +"I2P is shipped with a pre-configured tunnel pointing to the project " +"Monotone server. Ensure that the tunnel has been started\n" +" within I2PTunnel before" +" attempting to pull the source code from 127.0.0.1:8998." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:275 +msgid "" +"Enter the directory where you initialized i2p.mtn. Depending" +" on whether you\n" +" want only I2P sources, or also sources for the I2P website and Syndie, " +"you can\n" +" perform the pull operation in different ways." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:283 +msgid "If you only want I2P sources:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:292 +msgid "If you want all branches:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:298 +msgid "" +"If the transfer aborts before completing sucessfully, simply repeating " +"the pull command will resume the transfer." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:304 +msgid "" +"Pulling in the above examples is done anonymously by specifying an empty " +"transport key.\n" +" If everyone pulls anonymously it will be harder for an attacker who " +"gains control of the server\n" +" to selectively provide some people with tampered data." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:315 +msgid "To verify that trust evaluation works:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:319 +msgid "Make a backup of your monotonerc file." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:320 +msgid "" +"Modify monotonerc by setting the trusted_signers " +"variable in the following way:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:326 +msgid "" +"With monotonerc configured as above, Monotone will no" +" longer trust any committers. Confirm this by changing into the\n" +"directory where i2p.mtn was created and attempt a checkout " +"of the I2P branch:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:336 +msgid "" +"A directory named i2p.i2p should not appear. You " +"should encounter many\n" +" error messages like:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:353 +msgid "" +"If you are satisfied with results, restore the backup of\n" +" monotonerc that was created above. If you didn't create a " +"backup\n" +" as advised, re-read Setting up trust evaluation hooks." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:364 +msgid "" +"If you already have a branch checked out, skip to the next\n" +" section." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:371 +msgid "" +"Change into the directory where i2p.mtn is located. Over " +"there issue:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:380 +msgid "" +"The checkout should complete without error messages and a directory named" +"\n" +" i2p.i2p should appear in the current directory. " +"Congratulations! You have\n" +" successfully checked out the latest I2P sources, ready to be compiled." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:391 +msgid "" +"If you haven't done this already, pull fresh code from the server to your" +" local\n" +" Monotone repository. To accomplish this, change into the directory " +"where\n" +" i2p.mtn is located and issue:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:402 +msgid "Now change into your i2p.i2p directory, and over there issue:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:411 +msgid "" +"As long as there were no errors…Congratulations! You have " +"successfully updated to the latest I2P sources. They\n" +" should be ready to compile." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:420 +msgid "Obtaining and deploying developers' transport keys" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:423 +msgid "" +"As a server operator you may want to grant push access to certain " +"developers." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:431 +msgid "By default the Monotone server denies all access." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:437 +msgid "To grant pull access to all clients, set the following in" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:449 +msgid "" +"No one will not be able to push code to your server without permission " +"being explicitly granted. To grant push access:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:455 +msgid "" +"Add the name of the user's transport key to\n" +"$HOME/.monotone/write-permissions, such as\n" +"
\n"
+"    zzz-transport@mail.i2p\n"
+"    complication-transport@mail.i2p\n"
+"
\n" +"with one key per line." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:466 +msgid "" +"Import the transport key(s) into your database. The procedure for " +"importing transport keys is the same as for\n" +"importing commit keys, which is described in the section Obtaining and deploying " +"developers' keys." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:476 +msgid "" +"A separate database should be used for your Monotone server because " +"monotone will lock the database while it is served to others.\n" +" Make a copy of your development database, then start the server with:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:483 +msgid "" +"If your key is protected with a passphrase, Monotone may request the " +"passphrase\n" +" when the first client connects. You can work around this by connecting " +"making the first client connection to your server\n" +" (or by clearing the password for your transport key)." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:491 +msgid "" +"For your server to be accessible for others over I2P, you will need to " +"create a\n" +" server tunnel for it. Use the \"Standard\" tunnel type and \"Bulk\" " +"profile." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:501 +msgid "" +"Debian (amongst other distributions) has integrated Monotone into their\n" +" framework of daemons/services. Although Monotone servers can still be " +"run\n" +" \"the ordinary way\" on Debian systems, doing it the \"Debian way\" may" +" be more straightforward." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/monotone.html:509 +msgid "" +"Permissions are granted by editing the files\n" +" /etc/monotone/read-permissions and\n" +" /etc/monotone/write-permissions. You'll also need to edit\n" +" /etc/default/monotone to enable monotone to start at boot " +"or to\n" +" customize the host, port, or database location." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:2 +msgid "New Developer's Guide" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:5 +#: i2p2www/pages/site/get-involved/guides/new-developers.html:31 +msgid "Basic study" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:6 +#: i2p2www/pages/site/get-involved/guides/new-developers.html:45 +msgid "Getting the I2P code" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:8 +#: i2p2www/pages/site/get-involved/guides/new-developers.html:52 +msgid "The easy way: Git" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:9 +#: i2p2www/pages/site/get-involved/guides/new-developers.html:72 +msgid "The proper way: Monotone" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:11 +#: i2p2www/pages/site/get-involved/guides/new-developers.html:135 +msgid "Building I2P" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:12 +#: i2p2www/pages/site/get-involved/guides/new-developers.html:156 +msgid "Development ideas" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:13 +#: i2p2www/pages/site/get-involved/guides/new-developers.html:164 +msgid "Making the results available" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:14 +#: i2p2www/pages/site/get-involved/guides/new-developers.html:185 +msgid "Get to know us!" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:15 +#: i2p2www/pages/site/get-involved/guides/new-developers.html:191 +msgid "Translations" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:16 +#: i2p2www/pages/site/get-involved/guides/new-developers.html:197 +msgid "Tools" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:21 +msgid "" +"\n" +"So you want to start work on I2P? Great!\n" +"Here's a quick guide to getting started\n" +"on contributing to the website or the software, doing development or " +"creating translations." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:26 +#, python-format +msgid "" +"\n" +"Not quite ready for coding?\n" +"Try getting involved first." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:33 +msgid "" +"Basic development on the I2P router or the embedded applications uses " +"Java as the main development language.\n" +"If you don't have experience with Java, you can always have a look at Thinking in Java." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:37 +#, python-format +msgid "" +"Study the how intro,\n" +"the other \"how\" documents,\n" +"the tech intro,\n" +"and associated documents.\n" +"These will give you a good overview of how I2P is structured and what " +"different things it does." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:47 +msgid "" +"For development on the I2P router or the embedded applications,\n" +"there are two ways to get the source code:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:54 +#, python-format +msgid "Install Git." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:57 +#, python-format +msgid "Get the code from the GitHub mirror:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:64 +#: i2p2www/pages/site/get-involved/guides/new-developers.html:119 +msgid "Remarks" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:65 +#, python-format +msgid "" +"The Git repository is currently a read-only mirror. If you wish to use it" +" for\n" +"development, you will need to submit patches to our " +"issue\n" +"tracker. We can accept GitHub pull requests, but they must be " +"processed\n" +"manually by turning them into patches anyway." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:74 +msgid "" +"Install monotone.\n" +"Monotone is a version control system.\n" +"We use it because it allows us to keep track of who does what changes to " +"the source code (and for a lot of complicated things, but 'keeping track " +"of changes' is the basic idea)." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:79 +msgid "" +"Skim over the monotone tutorial," +" to make sure you understand the concepts." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:83 +msgid "" +"If you want to remain anonymous, you need to do an additional step, to " +"set up a connection to a monotone server over I2P:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:86 +#, python-format +msgid "" +"Enable the i2ptunnel client tunnel on port " +"8998 pointing to mtn.i2p-projekt.i2p." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:90 +msgid "" +"Pick a directory where you want to put all your I2P files, and create a " +"monotone database:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:93 +msgid "" +"Define the trust list by creating ~/.monotone/monotonerc (or" +" _MTN/monotonerc in the i2p.i2p workspace) with the " +"following contents:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:98 +#, python-format +msgid "" +"Copy and paste the developer's commit keys " +"into a new file (e.g. keys.txt) in the same directory\n" +" that i2p.mtn is in. Import the keys into your database " +"with
      mtn -d i2p.mtn read < keys.txt
" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:102 +msgid "" +"Pull the I2P sources to your machine. This may take a long time, " +"especially if you are doing this over I2P!" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:104 +msgid "Anonymously:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:107 +msgid "Non-anonymously:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:113 +msgid "" +"All the sources are now present on your machine, in the database file. To" +" make them available in a directory, you need to check them out:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:115 +msgid "" +"The above command creates a directory i2p.i2p, which contains all of the " +"I2P sources." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:120 +msgid "" +"\n" +"To download the website files instead of the I2P source files, use " +"'i2p.www' instead of 'i2p.i2p'." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:123 +msgid "" +"The initial pull may take several hours using the tunnel.\n" +"If it fails after a partial pull, simply rerun it, it will start where it" +" left off.\n" +"If you are in a hurry, use the non-anonymous access." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:128 +#, python-format +msgid "" +"A full list of branches, including i2p.i2p and i2p.www can be found on viewmtn." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:131 +#, python-format +msgid "" +"A long explanation about using monotone is available on the monotone page." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:137 +#, python-format +msgid "" +"To compile the code, you need the Sun Java Development Kit 6 or higher, " +"or equivalent JDK\n" +"(Sun JDK 6 strongly recommended) and\n" +"Apache ant\n" +"version 1.7.0 or higher.\n" +"If you go are working on the main I2P code, you can go into the i2p.i2p " +"directory and run 'ant' to see the build options." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:145 +msgid "" +"To build or work on console translations, you need\n" +"the xgettext, msgfmt, and msgmerge tools from the\n" +"GNU gettext package." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:151 +#, python-format +msgid "" +"For development on new applications,\n" +"see the application development guide." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:157 +#, python-format +msgid "" +"See zzz's TODO lists,\n" +"this website's TODO list or\n" +"Trac\n" +"for ideas." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:166 +#, python-format +msgid "" +"See the bottom of the licenses page " +"for\n" +"commit privilege requirements. You need these to put code into i2p.i2p " +"(not required for the website!)." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:171 +msgid "Short version of how to generate and use keys if you plan to commit:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:173 +msgid "use an empty passphrase" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:174 +msgid "enter a passphrase" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:175 +#, python-format +msgid "" +"send this to a mtn repo operator to get " +"push privileges" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:176 +#, python-format +msgid "" +"send this to a release manager to get " +"commit privileges - not required for website" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:177 +msgid "check in with this key" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:178 +msgid "push with this key" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:180 +#, python-format +msgid "Long version: see the monotone page." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:186 +#, python-format +msgid "" +"The developers hang around on IRC. They can be reached on the Freenode " +"network, OFTC, and on the I2P internal networks. The usual place to look " +"is #i2p-dev. Join the channel and say hi!\n" +"We also have additional guidelines for regular" +" developers." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:192 +#, python-format +msgid "" +"Website and router console translators: See the New Translator's Guide\n" +"for next steps." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:198 +msgid "" +"I2P is open source software that is mostly developed using open sourced\n" +"toolkits. The I2P project recently acquired a license for the YourKit " +"Java\n" +"Profiler. Open source projects are eligible to receive a free license " +"provided\n" +"that YourKit is referenced on the project web site. Please get in touch " +"if you\n" +"are interested in profiling the I2P codebase." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-developers.html:206 +#, python-format +msgid "" +"YourKit is kindly supporting open source projects with its full-featured " +"Java Profiler.\n" +"YourKit, LLC is the creator of innovative and intelligent tools for " +"profiling\n" +"Java and .NET applications. Take a look at YourKit's leading software " +"products:\n" +"YourKit Java Profiler and\n" +"YourKit .NET Profiler." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:2 +msgid "New Translator's Guide" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:4 +msgid "Here's a very quick guide to getting started." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:6 +msgid "How to Translate the Website" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:8 +#, python-format +msgid "" +"Translation of the website is done with .po files. The easiest way by far" +" to\n" +"translate the website is to sign up for an account at \n" +"Transifex and request to join a translation" +" team. \n" +"Alternatively it can be done \"the old way\" as outlined below." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:17 +#: i2p2www/pages/site/get-involved/guides/new-translators.html:82 +msgid "Preparation" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:19 +#: i2p2www/pages/site/get-involved/guides/new-translators.html:84 +#, python-format +msgid "" +"Come to #i2p-dev on irc and talk to people.\n" +"Claim the language -\n" +"To make sure other coworkers don't bump onto the files you are working " +"on,\n" +"please update the translation status on this wiki " +"page." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:25 +#, python-format +msgid "" +"Follow the new developer's guide,\n" +"Including the installation of monotone,\n" +"checking out i2p.www branch, and generate your own monotone keys.\n" +"It is not required that you sign a dev agreement." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:33 +msgid "" +"Create files:\n" +"If the file for your language does not exist yet:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:38 +msgid "" +"Run \"./extract-messages.sh\" to generate a " +"messages.pot in the base directory.\n" +"Edit the header of this file, then run \"./init-new-po.sh " +"locale\" to generate the file\n" +"i2p2www/translations/locale/LC_MESSAGES/messages.po. " +"\"mtn add\" this file." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:43 +msgid "" +"Edit i2p2www/pages/global/lang.html and add a line for your " +"language (copy an existing line)." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:46 +msgid "" +"Add a flag image file to i2p2www/static/images/flags/ for " +"the menu (copy from the router)." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:52 +msgid "" +"Edit files:\n" +"Edit i2p2www/translations/locale/LC_MESSAGES/messages.po.\n" +"To work with .po files efficiently, you may wish to use POEdit" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:58 +#: i2p2www/pages/site/get-involved/guides/new-translators.html:151 +msgid "" +"Check in:\n" +"\"mtn pull\", \"mtn update\". Then check in by " +"\"mtn ci -k yourname@mail.i2p file1 file2 ...\"\n" +"This collects the diff info of your changed file into your local repo. " +"Then \"mtn sync mtn.i2p2.de -k yourname-transport@mail.i2p " +"i2p.i2p\".\n" +"This synchronizes your local repo with the repo on the target machine." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:65 +#: i2p2www/pages/site/get-involved/guides/new-translators.html:158 +msgid "Repeat. Check in often. Don't wait until it is perfect." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:72 +msgid "How to Translate the Router Console" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:74 +#, python-format +msgid "" +"The easiest way by far to translate the router console is to sign up for " +"an account at \n" +"Transifex and request to join a translation" +" team. \n" +"Alternatively it can be done \"the old way\" as outlined below." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:90 +#, python-format +msgid "" +"Follow the new developer's guide,\n" +"including the installation of monotone and the gettext tools,\n" +"checking out i2p.i2p branch, and generate your own monotone keys." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:95 +msgid "Generate your own gpg key and sign the dev agreement." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:101 +msgid "" +"Before starting a console translation, better help translate some i2p " +"webpages first.\n" +"At least an i2p homepage in your language would be great." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:106 +msgid "" +"What to translate:\n" +"There are about 15 files in the i2p.i2p branch that needs translation:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:132 +msgid "" +"Where xx is your language code like fr/de/ch/zh/...\n" +"There may be or may not be files with your lang code. If not, you can " +"create your own. by copying and renaming other language files you know " +"with your own lang code." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:137 +msgid "" +"Create files:\n" +"If the file for your language does not exist yet, copy another language " +"file to a new file foo_xx.bar for your language.\n" +"Then \"mtn add\" the file.\n" +"After creating a .po file, edit the headers. Then run \"ant " +"distclean poupdate\"." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:144 +msgid "" +"Start to work:\n" +"Edit the HTML files with any text editor.\n" +"Be sure not to use an editor in HTML mode that reformats everything.\n" +"To work with .po files efficiently, you may wish to use POEdit" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:163 +msgid "" +"As you can see, it's not that difficult.\n" +"If you have questions about the meaning of the terms in the console, ask " +"in #i2p-dev on IRC." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:169 +msgid "FAQ" +msgstr "常見問題" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:171 +msgid "" +"Q: Why do I have to install monotone, Java, jsp, learn about .po files " +"and html, etc.? Why can't I just do a translation and email it to you?" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:175 +msgid "A: Several reasons:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:178 +#, python-format +msgid "" +"You might be interested in translating via Transifex. Request to join a " +"translation team here." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:182 +msgid "" +"We don't have anybody who has time to accept manual contributions and " +"submit them to our source control system on your behalf. Even if we did, " +"it doesn't scale." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:186 +msgid "" +"Maybe you are thinking translation is a one-step process. It isn't. You " +"can't do it all at once. You will make mistakes. You need to test it and " +"tweak it to make it look right before you submit it. Developers " +"will update or add to the English text, thus requiring a translation " +"update." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:190 +msgid "" +"Having translators use a source control system directly provides " +"authentication and accountablility - we know who is doing what, and we " +"can track changes, and revert them if necessary." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:194 +msgid "" +".po files are not difficult. If you don't want to work directly with " +"them, we recommend 'poedit'." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:198 +msgid "" +"HTML files are not difficult. Just ignore the html stuff and translate " +"the text." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:202 +msgid "" +"Installing and using monotone is not that difficult. Several of the " +"translators and other contributors to I2P are non-programmers, and they " +"use monotone regularly. Monotone is simply a source control system, it is" +" not about \"coding\"." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:206 +msgid "" +"Our items to translate are not \"documents\". They are html files and po " +"files, with a specific format and character encoding (UTF-8) that must be" +" maintained, and not corrupted by email programs or other methods of " +"transfer." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:210 +msgid "" +"We looked at 'pootle' as a front-end for translators. It didn't work " +"well, needed an administrator, and a pootle-based process would suffer " +"from a number of the above flaws." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:215 +msgid "" +"In summary:\n" +"Yes, we know it is somewhat of a hurdle to get started. It's really the " +"only possible way we can do it. Give it a try, it really isn't that hard." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:220 +msgid "More Information" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/new-translators.html:221 +#, python-format +msgid "" +"The #i2p-dev channel on IRC, or the translation forum on %(zzz)s." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:2 +msgid "How to Set up a Reseed Server" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:3 +msgid "February 2017" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:6 +msgid "Overview" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:8 +msgid "" +"Thank you for volunteering to run an I2P reseed server.\n" +"\"Reseeding\" is our term for bootstrapping new routers into the network." +"\n" +"New routers fetch a bundle of peer references, or \"router infos\", from " +"one or more of a hardcoded list of HTTPS URLs." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:14 +msgid "Requirements" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:16 +msgid "" +"At its simplest, a reseed server consists of a Java I2P router, an HTTPS " +"web server,\n" +"and some scripts that periodically gather router infos from the router,\n" +"bundle and sign them into a custom file format, and deliver these files " +"over HTTPS.\n" +"In practice, it's a bit more complex, and a reseed operator must be " +"fairly competent and attentive.\n" +"A reseed server is not appropriate for a residential internet connection." +" The complexities include:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:25 +msgid "" +"You must have a secure SSL setup with either a self-signed certificate or" +" a cert that chains up to a standard CA" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:28 +msgid "" +"The SSL configuration must conform to current best practices on allowed " +"ciphers and protocols, and the CN/SAN host name must match the URL" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:31 +msgid "" +"The scripts are designed to deliver different router info bundles to " +"different requestors for network diversity" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:34 +msgid "" +"The scripts are designed to deliver the same bundle to the same repeated " +"requestor to prevent scraping" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:37 +msgid "" +"The reseed servers are under periodic attacks and DDoS attempts, and from" +" other buggy I2P implementations and botnets.\n" +"This necessitates that you run fail2ban or an equivalent solution." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:43 +msgid "Information Required" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:45 +msgid "" +"When your setup is complete and ready for testing, we will need the HTTPS" +" URL,\n" +"the SSL public key certificate, and the \"su3\" bundle public key.\n" +"After testing is complete, these will be added to the hardcoded entries " +"in the Java and C++ routers in the next release,\n" +"and you will start seeing traffic.\n" +"We also will need your email address so we may continue to contact you " +"about reseed administration issues.\n" +"The email will not be made public but will be known to the other reseed " +"operators.\n" +"You should expect that your nick or name and its association with that " +"URL or IP will become public." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:55 +msgid "Privacy Policy" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:57 +msgid "" +"A reseed operator is a trusted role in the network.\n" +"While we do not yet have a formal privacy policy, you must ensure the " +"privacy of our users\n" +"by not publicizing logs or IPs found in those logs, except as necessary " +"to discuss administration issues with the I2P reseed team." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:63 +msgid "Financial Support" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:65 +msgid "" +"Modest financial support may be available to those running reseed " +"servers.\n" +"This support would be in partial reimbursement for your server costs.\n" +"Support will not be paid in advance and will probably not cover all your " +"expenses.\n" +"Support is only available to those who have been running reseed servers " +"in good standing for several months, and is based on actual need." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:72 +msgid "" +"If you would like to discuss support, please contact echelon and CC: " +"backup." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:77 +msgid "Getting Started" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:79 +msgid "" +"Our reseed coordinator is \"backup\" and he may be contacted at backup at" +" mail.i2p or backup at i2pmail.org.\n" +"Unfortunately, he is not generally on IRC. The reseed setup is somewhat " +"specialized, and you should direct most questions to him." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:84 +msgid "" +"For actual implementation, details below. We have one recommended reseed " +"solution:" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:89 +msgid "" +"A Go implementation that includes the web server and all the scripts. " +"This is the recommended solution." +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:95 +msgid "" +"For further information, read the information at the following links, and" +" then contact backup.\n" +"Thank you!" +msgstr "" + +#: i2p2www/pages/site/get-involved/guides/reseed.html:110 +msgid "Detailed Instructions" +msgstr "" +