forked from I2P_Developers/i2p.www
Added translation tags to about/*
This commit is contained in:
@@ -1,93 +1,106 @@
|
|||||||
{% extends "global/layout.html" %}
|
{% extends "global/layout.html" %}
|
||||||
{% block title %}Web Browser Configuration{% endblock %}
|
{% block title %}{{ _('Web Browser Configuration') }}{% endblock %}
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
|
||||||
<p>Your web browser will need to be configured in order to browse eepsites and to
|
<p>{% trans -%}
|
||||||
|
Your web browser will need to be configured in order to browse eepsites and to
|
||||||
utilize the outproxies available within I2P. Below are walkthroughs for some of
|
utilize the outproxies available within I2P. Below are walkthroughs for some of
|
||||||
the most popular browsers.
|
the most popular browsers.
|
||||||
</p>
|
{%- endtrans %}</p>
|
||||||
|
|
||||||
<h2>How to configure your browser</h2>
|
<h2>{{ _('How to configure your browser') }}</h2>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="#ie8">Internet Explorer 8</a></li>
|
<li><a href="#ie8">Internet Explorer 8</a></li>
|
||||||
<li><a href="#firefox">Firefox</a></li>
|
<li><a href="#firefox">Firefox</a></li>
|
||||||
<li><a href="#konqueror">Konqueror</a></li>
|
<li><a href="#konqueror">Konqueror</a></li>
|
||||||
<li><a href="#TOS">Outproxy Terms Of Service</a></li>
|
<li><a href="#TOS">{{ _('Outproxy Terms Of Service') }}</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
<a name="ie8"></a>
|
<a name="ie8"></a>
|
||||||
<h3>Internet Explorer 8 or Chrome</h3>
|
<h3>{{ _('Internet Explorer 8 or Chrome') }}</h3>
|
||||||
<p>
|
<p>{% trans -%}
|
||||||
In the tools menu select the "Internet Options" line to open the settings. In the
|
In the tools menu select the "Internet Options" line to open the settings. In the
|
||||||
settings window choose the connections tab and click on LAN settings for the
|
settings window choose the connections tab and click on LAN settings for the
|
||||||
proxy port configuration.</p>
|
proxy port configuration.
|
||||||
<img src="{{ url_for('static', filename='images/ie.options.jpg') }}" alt="IEOptions" title="IEOptions">
|
{%- endtrans %}</p>
|
||||||
<p>
|
<img src="{{ url_for('static', filename='images/ie.options.jpg') }}" alt="{{ _('IE Internet Options') }}" title="{{ _('IE Internet Options') }}">
|
||||||
|
<p>{% trans -%}
|
||||||
Now set the checkmark at "use a proxy server for your LAN" and at the "Bypass
|
Now set the checkmark at "use a proxy server for your LAN" and at the "Bypass
|
||||||
proxy server for local addresses". With a click on Advanced-button you open the
|
proxy server for local addresses". With a click on Advanced-button you open the
|
||||||
window to open the ports. Enter the values like on the picture, IP 127.0.0.1
|
window to open the ports. Enter the values like on the picture, IP 127.0.0.1
|
||||||
and port 4444 for HTTP, port 4445 for HTTPS. With clicks on OK you save the
|
and port 4444 for HTTP, port 4445 for HTTPS. With clicks on OK you save the
|
||||||
settings and your browser is set to use the I2P proxy.</p>
|
settings and your browser is set to use the I2P proxy.
|
||||||
<img src="{{ url_for('static', filename='images/ie.proxyports.jpg') }}" alt="IEPPorts" title="PPorts">
|
{%- endtrans %}</p>
|
||||||
|
<img src="{{ url_for('static', filename='images/ie.proxyports.jpg') }}" alt="{{ _('IE Proxy Settings') }}" title="{{ _('IE Proxy Settings') }}">
|
||||||
|
|
||||||
<a name="firefox"></a>
|
<a name="firefox"></a>
|
||||||
<h3>Firefox</h3>
|
<h3>Firefox</h3>
|
||||||
<p>
|
<p>{% trans -%}
|
||||||
From the Tools menu, select Options to bring up the Firefox settings panel.
|
From the Tools menu, select Options to bring up the Firefox settings panel.
|
||||||
Click the icon labelled <em>Advanced</em>, then click on the <em>Network</em>
|
Click the icon labelled <em>Advanced</em>, then click on the <em>Network</em>
|
||||||
tab. In the <em>Connections</em> section, click on the Settings button. You'll
|
tab. In the <em>Connections</em> section, click on the Settings button. You'll
|
||||||
see a Window like the following:</p>
|
see a Window like the following:
|
||||||
<img src="{{ url_for('static', filename='images/firefox.options.jpg') }}" alt="" title="FFOptions">
|
{%- endtrans %}</p>
|
||||||
<p>
|
<img src="{{ url_for('static', filename='images/firefox.options.jpg') }}" alt="{{ _('Firefox Network Options') }}" title="{{ _('Firefox Network Options') }}">
|
||||||
|
<p>{% trans -%}
|
||||||
In the <em>Connection Settings</em> window, click the circle next to <em>Manual
|
In the <em>Connection Settings</em> window, click the circle next to <em>Manual
|
||||||
proxy configuration</em>, then enter 127.0.0.1, port 4444 in the HTTP Proxy
|
proxy configuration</em>, then enter 127.0.0.1, port 4444 in the HTTP Proxy
|
||||||
field. Enter 127.0.0.1, port 4445 in the SSL Proxy field.
|
field. Enter 127.0.0.1, port 4445 in the SSL Proxy field.
|
||||||
Be sure to enter localhost and 127.0.0.1 into the "No Proxy for" box.</p>
|
Be sure to enter localhost and 127.0.0.1 into the "No Proxy for" box.
|
||||||
<img src="{{ url_for('static', filename='images/firefox.proxyports.jpg') }}" alt="" title="FFPPorts">
|
{%- endtrans %}</p>
|
||||||
<br>
|
<img src="{{ url_for('static', filename='images/firefox.proxyports.jpg') }}" alt="{{ _('Firefox Proxy Settings') }}" title="{{ _('Firefox Proxy Settings') }}">
|
||||||
|
|
||||||
<a name="konqueror"></a>
|
<a name="konqueror"></a>
|
||||||
<h3>Konqueror</h3>
|
<h3>Konqueror</h3>
|
||||||
<p>
|
<p>{% trans -%}
|
||||||
From the <em>Settings</em> menu, select <em>Configure Konqueror</em>. In the
|
From the <em>Settings</em> menu, select <em>Configure Konqueror</em>. In the
|
||||||
Web Browsing group on the left side, select Proxy Services.
|
Web Browsing group on the left side, select Proxy Services.
|
||||||
In this new window, select the option "Manually specify the proxy settings" and
|
In this new window, select the option "Manually specify the proxy settings" and
|
||||||
click the <em>Setup</em> box.</p>
|
click the <em>Setup</em> box.
|
||||||
<img src="{{ url_for('static', filename='images/konqueror.options.jpg') }}" alt="" title="KOptions">
|
{%- endtrans %}</p>
|
||||||
<p>
|
<img src="{{ url_for('static', filename='images/konqueror.options.jpg') }}" alt="{{ _('Konqueror Proxy Options') }}" title="{{ _('Konqueror Proxy Options') }}">
|
||||||
|
<p>{% trans -%}
|
||||||
Enter 127.0.0.1 and port 4444 into the HTTP box. Enter 127.0.0.1 and port 4445 into
|
Enter 127.0.0.1 and port 4444 into the HTTP box. Enter 127.0.0.1 and port 4445 into
|
||||||
HTTPS box. Click the <em>New</em> button in the Exceptions section. Enter
|
HTTPS box. Click the <em>New</em> button in the Exceptions section. Enter
|
||||||
localhost and click OK. Click the <em>New</em> button once more and enter
|
localhost and click OK. Click the <em>New</em> button once more and enter
|
||||||
127.0.0.1 and OK. Hit OK once more to close the configuration window.</p>
|
127.0.0.1 and OK. Hit OK once more to close the configuration window.
|
||||||
<img src="{{ url_for('static', filename='images/konqueror.proxyports.jpg') }}" alt="" title="KPPorts">
|
{%- endtrans %}</p>
|
||||||
<br>
|
<img src="{{ url_for('static', filename='images/konqueror.proxyports.jpg') }}" alt="{{ _('Konqueror Proxy Ports') }}" title="{{ _('Konqueror Proxy Ports') }}">
|
||||||
|
|
||||||
<a name="TOS"></a>
|
<a name="TOS"></a>
|
||||||
<h3>Outproxy Terms Of Service</h3>
|
<h3>{{ _('Outproxy Terms Of Service') }}</h3>
|
||||||
<p>
|
<p>{% trans -%}
|
||||||
Remember: I2P was not designed for creating proxies to the outer Internet.
|
Remember: I2P was not designed for creating proxies to the outer Internet.
|
||||||
Instead, it is meant to be used as an internal network.
|
Instead, it is meant to be used as an internal network.
|
||||||
</p>
|
{%- endtrans %}</p>
|
||||||
<p>
|
<p>{% trans -%}
|
||||||
<b>The I2P project itself does not run any proxies to the Internet. Any such proxy
|
<b>The I2P project itself does not run any proxies to the Internet. Any such proxy
|
||||||
services are run by by private volunteers and could be shut down or
|
services are run by by private volunteers and could be shut down or
|
||||||
unreachable at anytime.</b></p>
|
unreachable at anytime.</b>
|
||||||
<p>
|
{%- endtrans %}</p>
|
||||||
|
<p>{% trans -%}
|
||||||
By default, I2P comes with two outproxies configured: <code>false.i2p</code>
|
By default, I2P comes with two outproxies configured: <code>false.i2p</code>
|
||||||
(an HTTP-only proxy) and <code>outproxyng.h2ik.i2p</code> (an HTTPS proxy
|
(an HTTP-only proxy) and <code>outproxyng.h2ik.i2p</code> (an HTTPS proxy
|
||||||
routed through Tor.</p>
|
routed through Tor.
|
||||||
<p>Both of these outproxies are configured with connection limits. This means
|
{%- endtrans %}</p>
|
||||||
|
<p>{% trans -%}
|
||||||
|
Both of these outproxies are configured with connection limits. This means
|
||||||
that only set amount of accesses are allowed per client. Once the limit is
|
that only set amount of accesses are allowed per client. Once the limit is
|
||||||
reached, the client is blocked out for a timeframe of 1min/1h/1 day. Be
|
reached, the client is blocked out for a timeframe of 1min/1h/1 day. Be
|
||||||
respectful and do not overload these services with too many requests!</p>
|
respectful and do not overload these services with too many requests!
|
||||||
<p>Filtering is active on these outproxies (for example, mibbit and torrent
|
{%- endtrans %}</p>
|
||||||
|
<p>{% trans -%}
|
||||||
|
Filtering is active on these outproxies (for example, mibbit and torrent
|
||||||
tracker access is blocked). Note that even though the pirate bay is blocked
|
tracker access is blocked). Note that even though the pirate bay is blocked
|
||||||
they host an official eepsite at <a href="http://tbp.i2p">tpb.i2p</a>. Eepsites
|
they host an official eepsite at <a href="http://tbp.i2p">tpb.i2p</a>. Eepsites
|
||||||
that are accessible via .i2p addresses are also not allowed via the outproxies.
|
that are accessible via .i2p addresses are also not allowed via the outproxies.
|
||||||
As a convenience, <code>False.i2p</code> blocks ad servers.</p>
|
As a convenience, <code>False.i2p</code> blocks ad servers.
|
||||||
<p><a href="https://www.torproject.org">Tor</a> is good application to use as an
|
{%- endtrans %}</p>
|
||||||
outproxy to the Internet.</p>
|
<p>{% trans -%}
|
||||||
|
<a href="https://www.torproject.org">Tor</a> is good application to use as an
|
||||||
|
outproxy to the Internet.
|
||||||
|
{%- endtrans %}</p>
|
||||||
<!-- vim: set noai ff=unix nosi ft=html tw=79 et sw=4 ts=4 spell spelllang=en: -->
|
<!-- vim: set noai ff=unix nosi ft=html tw=79 et sw=4 ts=4 spell spelllang=en: -->
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
@@ -1,7 +1,9 @@
|
|||||||
{% extends "global/layout.html" %}
|
{% extends "global/layout.html" %}
|
||||||
{% block title %}Glossary{% endblock %}
|
{% block title %}{{ _('Glossary') }}{% endblock %}
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
{% trans -%}
|
||||||
This page lists often-used terminology when discussing I2P and cryptography.
|
This page lists often-used terminology when discussing I2P and cryptography.
|
||||||
|
{%- endtrans %}
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<td>I2P</td>
|
<td>I2P</td>
|
||||||
|
@@ -1,21 +1,30 @@
|
|||||||
{% extends "global/layout.html" %}
|
{% extends "global/layout.html" %}
|
||||||
{% block title %}Hall Of Fame{% endblock %}
|
{% block title %}{{ _('Hall Of Fame') }}{% endblock %}
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<!-- file version 2012.12.31.01 -->
|
<!-- file version 2012.12.31.01 -->
|
||||||
<h1>I2P'<small>s</small> Hall of Fame</h1>
|
<h1>{% trans %}I2P'<small>s</small> Hall of Fame{% endtrans %}</h1>
|
||||||
<b>Current balance: as of 2012-12-31</b><br />
|
<b>{% trans date='2012-12-31' -%}
|
||||||
<b>General fund: 3879,635 € and 1430,74794429 BTC</b><br />
|
Current balance: as of {{ date }}
|
||||||
<b><a href="{{ site_url('get-involved/bounties/datastore') }}">Datastorage bounty</a>: 115.0 € and 2 BTC</b><br />
|
{%- endtrans %}</b><br />
|
||||||
<b><a href="{{ site_url('get-involved/bounties/ipv6') }}">native IPv6 I2P </a>: 100.0 €</b><br />
|
<b>{{ _('General fund') }}:
|
||||||
<b><a href="{{ site_url('get-involved/bounties/i2phex') }}">I2PHex bounty</a>: 60.0 €</b><br />
|
{% trans euroval='3879,635', btcval='1430,74794429' %}{{ euroval }} € and {{ btcval }} BTC{% endtrans %}</b><br />
|
||||||
<b><a href="{{ site_url('get-involved/bounties/debpack') }}">I2P in debian mirrors</a>: 113.0 €</b><br />
|
<b><a href="{{ site_url('get-involved/bounties/datastore') }}">{{ _('Datastorage bounty') }}</a>:
|
||||||
<b><a href="{{ site_url('get-involved/bounties/btcclient') }}">Bitcoin client for I2P</a>: 30.0 € and 118.34 BTC</b><br />
|
{% trans euroval='115.0', btcval='2' %}{{ euroval }} € and {{ btcval }} BTC{% endtrans %}</b><br />
|
||||||
<b><a href="{{ site_url('get-involved/bounties/unittests') }}">Unit Tests for I2P router</a>: 2700 €</b><br />
|
<b><a href="{{ site_url('get-involved/bounties/ipv6') }}">{{ _('Native IPv6 I2P') }}</a>:
|
||||||
<b>Bounty Robert: 0</b><br />
|
{% trans euroval='100.0' %}{{ euroval }} €{% endtrans %}</b><br />
|
||||||
<b>Bounty Syndie: 100 BTC</b><br />
|
<b><a href="{{ site_url('get-involved/bounties/i2phex') }}">{{ _('I2PHex bounty') }}</a>:
|
||||||
|
{% trans euroval='60.0' %}{{ euroval }} €{% endtrans %}</b><br />
|
||||||
|
<b><a href="{{ site_url('get-involved/bounties/debpack') }}">{{ _('I2P in debian mirrors') }}</a>:
|
||||||
|
{% trans euroval='113.0' %}{{ euroval }} €{% endtrans %}</b><br />
|
||||||
|
<b><a href="{{ site_url('get-involved/bounties/btcclient') }}">{{ _('Bitcoin client for I2P') }}</a>:
|
||||||
|
{% trans euroval='30.0', btcval='118.34' %}{{ euroval }} € and {{ btcval }} BTC{% endtrans %}</b><br />
|
||||||
|
<b><a href="{{ site_url('get-involved/bounties/unittests') }}">{{ _('Unit Tests for I2P router') }}</a>:
|
||||||
|
{% trans euroval='2700' %}{{ euroval }} €{% endtrans %}</b><br />
|
||||||
|
<b>{{ _('Bounty Robert') }}: 0</b><br />
|
||||||
|
<b>{{ _('Bounty Syndie') }}: 100 BTC</b><br />
|
||||||
|
|
||||||
<br />
|
<br />
|
||||||
<b>Current monthly running costs:</b><br />
|
<b>{{ _('Current monthly running costs:') }}</b><br />
|
||||||
<table border="1">
|
<table border="1">
|
||||||
<tr>
|
<tr>
|
||||||
<td>Welterde</td>
|
<td>Welterde</td>
|
||||||
@@ -26,236 +35,236 @@
|
|||||||
<td>40 €/mo since January, 2008 - i2p-projekt.de and domains</td>
|
<td>40 €/mo since January, 2008 - i2p-projekt.de and domains</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
<p>Big thanks go to the following people who have donated to I2P!</p>
|
<p>{% trans %}Big thanks go to the following people who have donated to I2P!{% endtrans %}</p>
|
||||||
<p>
|
<p>{% trans echelon='echelon@'+i2pconv('mail.i2p') -%}
|
||||||
If you have made a donation, please send an email to <a href="mailto:echelon@{{ i2pconv('mail.i2p') }}">echelon</a>
|
If you have made a donation, please send an email to <a href="mailto:{{ echelon }}">echelon</a>
|
||||||
with your name or nick (and optionally homepage) so we can list you here.
|
with your name or nick (and optionally homepage) so we can list you here.
|
||||||
</p>
|
{%- endtrans %}</p>
|
||||||
|
|
||||||
<b>Current monthly subscriptions:</b><br />
|
<b>{{ _('Current monthly subscriptions:') }}</b><br />
|
||||||
<table border="1">
|
<table border="1">
|
||||||
<tr><td>01/2012-01/2013</td><td>anonymous</td><td>30 €</td><td>General fund</td></tr>
|
<tr><td>01/2012-01/2013</td><td>anonymous</td><td>30 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
</table>
|
</table>
|
||||||
<br />
|
<br />
|
||||||
|
|
||||||
<b>2012 donations and costs:</b><br />
|
<b>2012 donations and costs:</b><br />
|
||||||
<table border="1">
|
<table border="1">
|
||||||
<tr><td>date</td><td>who</td><td>income</td><td>outgoing</td><td>account</td></tr>
|
<tr><td>date</td><td>who</td><td>income</td><td>outgoing</td><td>account</td></tr>
|
||||||
<tr><td>Jan, 2012</td><td>www.i2p2.de server rent</td><td></td><td>-100 €</td><td>General fund</td></tr>
|
<tr><td>Jan, 2012</td><td>www.i2p2.de server rent</td><td></td><td>-100 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Jan, 2012</td><td>www.i2p-projekt.de/echelon.i2p server rent</td><td></td><td>-200 €</td><td>General fund</td></tr>
|
<tr><td>Jan, 2012</td><td>www.i2p-projekt.de/echelon.i2p server rent</td><td></td><td>-200 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Jan, 2012</td><td>I2P services sponge</td><td></td><td>-100 €</td><td>General fund</td></tr>
|
<tr><td>Jan, 2012</td><td>I2P services sponge</td><td></td><td>-100 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Jan, 2012</td><td>anonymous</td><td>500 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Jan, 2012</td><td>anonymous</td><td>500 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Jan, 2012</td><td>anonymous</td><td>1500 €</td><td></td><td>Bounty Unit Tests</td></tr>
|
<tr><td>Jan, 2012</td><td>anonymous</td><td>1500 €</td><td></td><td>Bounty Unit Tests</td></tr>
|
||||||
<tr><td>Jan, 2012</td><td>anonymous</td><td>30 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Jan, 2012</td><td>anonymous</td><td>30 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Jan, 2012</td><td>anonymous</td><td>10 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Jan, 2012</td><td>anonymous</td><td>10 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Jan, 2012</td><td>anonymous</td><td>0.01 BTC</td><td></td><td>General fund</td></tr>
|
<tr><td>Jan, 2012</td><td>anonymous</td><td>0.01 BTC</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Jan, 2012</td><td>anonymous</td><td>100 BTC</td><td></td><td>Bounty I2P bitcoin client</td></tr>
|
<tr><td>Jan, 2012</td><td>anonymous</td><td>100 BTC</td><td></td><td>Bounty I2P bitcoin client</td></tr>
|
||||||
<tr><td>Jan, 2012</td><td>anonymous</td><td>20 €</td><td></td><td>Bounty .deb package</td></tr>
|
<tr><td>Jan, 2012</td><td>anonymous</td><td>20 €</td><td></td><td>Bounty .deb package</td></tr>
|
||||||
<tr><td>Jan, 2012</td><td>anonymous</td><td>25 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Jan, 2012</td><td>anonymous</td><td>25 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Jan, 2012</td><td>alu-anon</td><td>20 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Jan, 2012</td><td>alu-anon</td><td>20 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Jan, 2012</td><td>maxkoda</td><td>1.00 BTC</td><td></td><td>General fund</td></tr>
|
<tr><td>Jan, 2012</td><td>maxkoda</td><td>1.00 BTC</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Jan, 2012</td><td>maxkoda</td><td>2.00 BTC</td><td></td><td>Bounty I2P BTC client</td></tr>
|
<tr><td>Jan, 2012</td><td>maxkoda</td><td>2.00 BTC</td><td></td><td>Bounty I2P BTC client</td></tr>
|
||||||
|
|
||||||
<tr><td>Feb, 2012</td><td>DJ Eugene</td><td>10 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Feb, 2012</td><td>DJ Eugene</td><td>10 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Feb, 2012</td><td>ZZZ new dev workstation</td><td></td><td>522,02 €</td><td>General fund</td></tr>
|
<tr><td>Feb, 2012</td><td>ZZZ new dev workstation</td><td></td><td>522,02 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Feb, 2012</td><td>anonymous</td><td>15 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Feb, 2012</td><td>anonymous</td><td>15 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Feb, 2012</td><td>anonymous</td><td>91 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Feb, 2012</td><td>anonymous</td><td>91 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Feb, 2012</td><td>Sponge dev machine</td><td></td><td>52,3 €</td><td>General fund</td></tr>
|
<tr><td>Feb, 2012</td><td>Sponge dev machine</td><td></td><td>52,3 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Feb, 2012</td><td>anonymous</td><td>30 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Feb, 2012</td><td>anonymous</td><td>30 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Feb, 2012</td><td>anonymous</td><td>22 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Feb, 2012</td><td>anonymous</td><td>22 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Feb, 2012</td><td>domain cost</td><td></td><td>11,9 €</td><td>General fund</td></tr>
|
<tr><td>Feb, 2012</td><td>domain cost</td><td></td><td>11,9 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Feb, 2012</td><td>domain cost</td><td></td><td>11,9 €</td><td>General fund</td></tr>
|
<tr><td>Feb, 2012</td><td>domain cost</td><td></td><td>11,9 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Feb, 2012</td><td>anonymous</td><td>1.4328 BTC</td><td></td><td>General fund</td></tr>
|
<tr><td>Feb, 2012</td><td>anonymous</td><td>1.4328 BTC</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Feb, 2012</td><td>anonymous</td><td>1000.00 BTC</td><td></td><td>General fund</td></tr>
|
<tr><td>Feb, 2012</td><td>anonymous</td><td>1000.00 BTC</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Feb, 2012</td><td>anonymous</td><td>2.20 BTC</td><td></td><td>General fund</td></tr>
|
<tr><td>Feb, 2012</td><td>anonymous</td><td>2.20 BTC</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Feb, 2012</td><td>maxkoda</td><td>1.00 BTC</td><td></td><td>General fund</td></tr>
|
<tr><td>Feb, 2012</td><td>maxkoda</td><td>1.00 BTC</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Feb, 2012</td><td>maxkoda</td><td>2.00 BTC</td><td></td><td>Bounty I2P BTC client</td></tr>
|
<tr><td>Feb, 2012</td><td>maxkoda</td><td>2.00 BTC</td><td></td><td>Bounty I2P BTC client</td></tr>
|
||||||
|
|
||||||
<tr><td>Mar, 2012</td><td>Lautrec</td><td>10 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Mar, 2012</td><td>Lautrec</td><td>10 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Mar, 2012</td><td>anonymous</td><td>30 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Mar, 2012</td><td>anonymous</td><td>30 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Mar, 2012</td><td>PayPal fees recalculated</td><td></td><td>188,13 €</td><td>General fund</td></tr>
|
<tr><td>Mar, 2012</td><td>PayPal fees recalculated</td><td></td><td>188,13 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Mar, 2012</td><td>anonymous</td><td>0.25 BTC</td><td></td><td>General fund</td></tr>
|
<tr><td>Mar, 2012</td><td>anonymous</td><td>0.25 BTC</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Mar, 2012</td><td>anonymous</td><td>2.00 BTC</td><td></td><td>General fund</td></tr>
|
<tr><td>Mar, 2012</td><td>anonymous</td><td>2.00 BTC</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Mar, 2012</td><td>anonymous</td><td>0.0000491 BTC</td><td></td><td>General fund</td></tr>
|
<tr><td>Mar, 2012</td><td>anonymous</td><td>0.0000491 BTC</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Mar, 2012</td><td>anonymous</td><td>1500 €</td><td></td><td>Bounty Unit Tests</td></tr>
|
<tr><td>Mar, 2012</td><td>anonymous</td><td>1500 €</td><td></td><td>Bounty Unit Tests</td></tr>
|
||||||
<tr><td>Mar, 2012</td><td>domain cost</td><td></td><td>11,9 €</td><td>General fund</td></tr>
|
<tr><td>Mar, 2012</td><td>domain cost</td><td></td><td>11,9 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Mar, 2012</td><td>maxkoda</td><td>1.01 BTC</td><td></td><td>General fund</td></tr>
|
<tr><td>Mar, 2012</td><td>maxkoda</td><td>1.01 BTC</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Mar, 2012</td><td>maxkoda</td><td>2.10 BTC</td><td></td><td>Bounty I2P BTC client</td></tr>
|
<tr><td>Mar, 2012</td><td>maxkoda</td><td>2.10 BTC</td><td></td><td>Bounty I2P BTC client</td></tr>
|
||||||
|
|
||||||
<tr><td>Apr, 2012</td><td>anonymous</td><td>100 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Apr, 2012</td><td>anonymous</td><td>100 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Apr, 2012</td><td>anonymous</td><td>30 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Apr, 2012</td><td>anonymous</td><td>30 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Apr, 2012</td><td>anonymous</td><td>0,50 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Apr, 2012</td><td>anonymous</td><td>0,50 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Apr, 2012</td><td>anonymous</td><td>0.10 BTC</td><td></td><td>General fund</td></tr>
|
<tr><td>Apr, 2012</td><td>anonymous</td><td>0.10 BTC</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Apr, 2012</td><td>anonymous</td><td>0.723 BTC</td><td></td><td>General fund</td></tr>
|
<tr><td>Apr, 2012</td><td>anonymous</td><td>0.723 BTC</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
|
|
||||||
<tr><td>May, 2012</td><td>anonymous</td><td>0.01 BTC</td><td></td><td>General fund</td></tr>
|
<tr><td>May, 2012</td><td>anonymous</td><td>0.01 BTC</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>May, 2012</td><td>anonymous</td><td>2.00 BTC</td><td></td><td>General fund</td></tr>
|
<tr><td>May, 2012</td><td>anonymous</td><td>2.00 BTC</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>May, 2012</td><td>anonymous</td><td>1.50 BTC</td><td></td><td>General fund</td></tr>
|
<tr><td>May, 2012</td><td>anonymous</td><td>1.50 BTC</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>May, 2012</td><td>anonymous</td><td>150 €</td><td></td><td>General fund</td></tr>
|
<tr><td>May, 2012</td><td>anonymous</td><td>150 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>May, 2012</td><td>anonymous</td><td>5 €</td><td></td><td>General fund</td></tr>
|
<tr><td>May, 2012</td><td>anonymous</td><td>5 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>May, 2012</td><td>PayPal fees april</td><td></td><td>11,94 €</td><td>General fund</td></tr>
|
<tr><td>May, 2012</td><td>PayPal fees april</td><td></td><td>11,94 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
|
|
||||||
<tr><td>May, 2012</td><td>anonymous</td><td>10 €</td><td></td><td>General fund</td></tr>
|
<tr><td>May, 2012</td><td>anonymous</td><td>10 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>May, 2012</td><td>anonymous</td><td>30 €</td><td></td><td>General fund</td></tr>
|
<tr><td>May, 2012</td><td>anonymous</td><td>30 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>May, 2012</td><td>anonymous</td><td>0.25 BTC</td><td></td><td>General fund</td></tr>
|
<tr><td>May, 2012</td><td>anonymous</td><td>0.25 BTC</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>May, 2012</td><td>anonymous</td><td>0,69307046 BTC</td><td></td><td>General fund</td></tr>
|
<tr><td>May, 2012</td><td>anonymous</td><td>0,69307046 BTC</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
|
|
||||||
<tr><td>Jun, 2012</td><td>sell 100 BTC</td><td>513.38 €</td><td>100 BTC</td><td>General fund</td></tr>
|
<tr><td>Jun, 2012</td><td>sell 100 BTC</td><td>513.38 €</td><td>100 BTC</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Jun, 2012</td><td>anonymous</td><td>10 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Jun, 2012</td><td>anonymous</td><td>10 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Jun, 2012</td><td>anonymous</td><td>30 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Jun, 2012</td><td>anonymous</td><td>30 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Jun, 2012</td><td>anonymous</td><td>10 BTC</td><td></td><td>General fund</td></tr>
|
<tr><td>Jun, 2012</td><td>anonymous</td><td>10 BTC</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Jun, 2012</td><td>MaxKoda</td><td>1 BTC</td><td></td><td>General fund</td></tr>
|
<tr><td>Jun, 2012</td><td>MaxKoda</td><td>1 BTC</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Jun, 2012</td><td>maxkoda</td><td>1 BTC</td><td></td><td>Bounty I2P BTC client</td></tr>
|
<tr><td>Jun, 2012</td><td>maxkoda</td><td>1 BTC</td><td></td><td>Bounty I2P BTC client</td></tr>
|
||||||
|
|
||||||
<tr><td>Jul, 2012</td><td>anonymous</td><td>10 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Jul, 2012</td><td>anonymous</td><td>10 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Jul, 2012</td><td>anonymous</td><td>30 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Jul, 2012</td><td>anonymous</td><td>30 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Jul, 2012</td><td>anonymous</td><td>1 BTC</td><td></td><td>General fund</td></tr>
|
<tr><td>Jul, 2012</td><td>anonymous</td><td>1 BTC</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Jul, 2012</td><td>anonymous</td><td>4 BTC</td><td></td><td>General fund</td></tr>
|
<tr><td>Jul, 2012</td><td>anonymous</td><td>4 BTC</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
|
|
||||||
<tr><td>Aug, 2012</td><td>anonymous</td><td>10 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Aug, 2012</td><td>anonymous</td><td>10 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Aug, 2012</td><td>anonymous</td><td>30 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Aug, 2012</td><td>anonymous</td><td>30 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Aug, 2012</td><td>anonymous</td><td>96.04 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Aug, 2012</td><td>anonymous</td><td>96.04 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
|
|
||||||
<tr><td>Sep, 2012</td><td>anonymous</td><td>30 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Sep, 2012</td><td>anonymous</td><td>30 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Sep, 2012</td><td>anonymous</td><td>30 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Sep, 2012</td><td>anonymous</td><td>30 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Sep, 2012</td><td>Evgeny Ilin</td><td>5 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Sep, 2012</td><td>Evgeny Ilin</td><td>5 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Sep, 2012</td><td>anonymous</td><td>0.0001 BTC</td><td></td><td>General fund</td></tr>
|
<tr><td>Sep, 2012</td><td>anonymous</td><td>0.0001 BTC</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
|
|
||||||
<tr><td>Oct, 2012</td><td>dJavid84fr</td><td>30 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Oct, 2012</td><td>dJavid84fr</td><td>30 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Oct, 2012</td><td>anonymous</td><td>1.11 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Oct, 2012</td><td>anonymous</td><td>1.11 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Oct, 2012</td><td>anonymous</td><td>20 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Oct, 2012</td><td>anonymous</td><td>20 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Oct, 2012</td><td>anonymous</td><td>30 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Oct, 2012</td><td>anonymous</td><td>30 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Oct, 2012</td><td>anonymous</td><td>1 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Oct, 2012</td><td>anonymous</td><td>1 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Oct, 2012</td><td>anonymous</td><td>20 €</td><td></td><td>Bounty Deb package</td></tr>
|
<tr><td>Oct, 2012</td><td>anonymous</td><td>20 €</td><td></td><td>Bounty Deb package</td></tr>
|
||||||
<tr><td>Oct, 2012</td><td>anonymous</td><td>5 €</td><td></td><td>Bounty Robert</td></tr>
|
<tr><td>Oct, 2012</td><td>anonymous</td><td>5 €</td><td></td><td>Bounty Robert</td></tr>
|
||||||
<tr><td>Oct, 2012</td><td>anonymous</td><td>20 €</td><td></td><td>Bounty Robert</td></tr>
|
<tr><td>Oct, 2012</td><td>anonymous</td><td>20 €</td><td></td><td>Bounty Robert</td></tr>
|
||||||
<tr><td>Oct, 2012</td><td>anonymous</td><td>10 BTC</td><td></td><td>Bounty Robert</td></tr>
|
<tr><td>Oct, 2012</td><td>anonymous</td><td>10 BTC</td><td></td><td>Bounty Robert</td></tr>
|
||||||
|
|
||||||
<tr><td>Oct, 2012</td><td>anonymous</td><td>1 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Oct, 2012</td><td>anonymous</td><td>1 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Oct, 2012</td><td>anonymous</td><td>20 €</td><td></td><td>Bounty Robert</td></tr>
|
<tr><td>Oct, 2012</td><td>anonymous</td><td>20 €</td><td></td><td>Bounty Robert</td></tr>
|
||||||
|
|
||||||
<tr><td>Nov, 2012</td><td>anonymous</td><td>20 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Nov, 2012</td><td>anonymous</td><td>20 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Nov, 2012</td><td>anonymous</td><td>30 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Nov, 2012</td><td>anonymous</td><td>30 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Nov, 2012</td><td>anonymous</td><td>0.000666 BTC</td><td></td><td>General fund</td></tr>
|
<tr><td>Nov, 2012</td><td>anonymous</td><td>0.000666 BTC</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Nov, 2012</td><td>anonymous</td><td>0.05025998 BTC</td><td></td><td>General fund</td></tr>
|
<tr><td>Nov, 2012</td><td>anonymous</td><td>0.05025998 BTC</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Nov, 2012</td><td>anonymous</td><td>1 BTC</td><td></td><td>General fund</td></tr>
|
<tr><td>Nov, 2012</td><td>anonymous</td><td>1 BTC</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Nov, 2012</td><td>maxkoda</td><td>1 BTC</td><td></td><td>Bounty native I2P BTC client</td></tr>
|
<tr><td>Nov, 2012</td><td>maxkoda</td><td>1 BTC</td><td></td><td>Bounty native I2P BTC client</td></tr>
|
||||||
<tr><td>Nov, 2012</td><td>anonymous</td><td>0.00064184 BTC</td><td></td><td>General fund</td></tr>
|
<tr><td>Nov, 2012</td><td>anonymous</td><td>0.00064184 BTC</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Mov, 2012</td><td>anonymous</td><td>0.01697271 BTC</td><td></td><td>General fund</td></tr>
|
<tr><td>Mov, 2012</td><td>anonymous</td><td>0.01697271 BTC</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Nov, 2012</td><td>anonymous</td><td>0.0005 BTC</td><td></td><td>General fund</td></tr>
|
<tr><td>Nov, 2012</td><td>anonymous</td><td>0.0005 BTC</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Nov, 2012</td><td>anonymous</td><td>16 €</td><td></td><td>Robert Bounty</td></tr>
|
<tr><td>Nov, 2012</td><td>anonymous</td><td>16 €</td><td></td><td>Robert Bounty</td></tr>
|
||||||
<tr><td>Nov, 2012</td><td>anonymous</td><td>40 €</td><td></td><td>Robert Bounty</td></tr>
|
<tr><td>Nov, 2012</td><td>anonymous</td><td>40 €</td><td></td><td>Robert Bounty</td></tr>
|
||||||
<tr><td>Nov, 2012</td><td>I2P</td><td></td><td>101 € & 10BTC</td><td>Robert Bounty payout</td></tr>
|
<tr><td>Nov, 2012</td><td>I2P</td><td></td><td>101 € & 10BTC</td><td>Robert Bounty payout</td></tr>
|
||||||
|
|
||||||
<tr><td>Dec, 2012</td><td>anonymous</td><td>10 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Dec, 2012</td><td>anonymous</td><td>10 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Dec, 2012</td><td>anonymous</td><td>3 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Dec, 2012</td><td>anonymous</td><td>3 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Dec, 2012</td><td>anonymous</td><td>20 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Dec, 2012</td><td>anonymous</td><td>20 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Dec, 2012</td><td>anonymous</td><td>30 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Dec, 2012</td><td>anonymous</td><td>30 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Dec, 2012</td><td>anonymous</td><td>10 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Dec, 2012</td><td>anonymous</td><td>10 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Dec, 2012</td><td>anonymous</td><td>0.7 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Dec, 2012</td><td>anonymous</td><td>0.7 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Dec, 2012</td><td>anonymous</td><td>0.5 BTC</td><td></td><td>General fund</td></tr>
|
<tr><td>Dec, 2012</td><td>anonymous</td><td>0.5 BTC</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Dec, 2012</td><td>anonymous</td><td>0.0010 BTC</td><td></td><td>General fund</td></tr>
|
<tr><td>Dec, 2012</td><td>anonymous</td><td>0.0010 BTC</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Dec, 2012</td><td>anonymous</td><td>0.5 BTC</td><td></td><td>General fund</td></tr>
|
<tr><td>Dec, 2012</td><td>anonymous</td><td>0.5 BTC</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Dec, 2012</td><td>I2P</td><td></td><td>100 BTC</td><td>General fund</td></tr>
|
<tr><td>Dec, 2012</td><td>I2P</td><td></td><td>100 BTC</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Dec, 2012</td><td>I2P</td><td>100 BTC</td><td></td><td>Syndie Bounty</td></tr>
|
<tr><td>Dec, 2012</td><td>I2P</td><td>100 BTC</td><td></td><td>Syndie Bounty</td></tr>
|
||||||
<tr><td>Dec, 2012</td><td>anonymous</td><td>0.01234567 BTC</td><td></td><td>General fund</td></tr>
|
<tr><td>Dec, 2012</td><td>anonymous</td><td>0.01234567 BTC</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Dec, 2012</td><td>anonymous</td><td>0.01234567 BTC</td><td></td><td>General fund</td></tr>
|
<tr><td>Dec, 2012</td><td>anonymous</td><td>0.01234567 BTC</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
|
|
||||||
|
|
||||||
</table>
|
</table>
|
||||||
<br />
|
<br />
|
||||||
<br />
|
<br />
|
||||||
<b>2011 donations and costs:</b><br />
|
<b>{{ _('2011 donations and costs:') }}</b><br />
|
||||||
<table border="1">
|
<table border="1">
|
||||||
<tr><td>date</td><td>who</td><td>income</td><td>outgoing</td><td>account</td></tr>
|
<tr><td>date</td><td>who</td><td>income</td><td>outgoing</td><td>account</td></tr>
|
||||||
<tr><td>Jan, 2011</td><td>www.i2p2.de server rent</td><td></td><td>-100 €</td><td>General fund</td></tr>
|
<tr><td>Jan, 2011</td><td>www.i2p2.de server rent</td><td></td><td>-100 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Jan, 2011</td><td>www.i2p-projekt.de/echelon.i2p server rent</td><td></td><td>-200 €</td><td>General fund</td></tr>
|
<tr><td>Jan, 2011</td><td>www.i2p-projekt.de/echelon.i2p server rent</td><td></td><td>-200 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Jan, 2011</td><td>PayPal fees 2010</td><td></td><td>-40 €</td><td>General fund</td></tr>
|
<tr><td>Jan, 2011</td><td>PayPal fees 2010</td><td></td><td>-40 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Jan, 2011</td><td>refund of netstorage bounty,duck,smeghead</td><td>700 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Jan, 2011</td><td>refund of netstorage bounty,duck,smeghead</td><td>700 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Jan, 2011</td><td>woodchips</td><td>50 BTC</td><td></td><td>General fund</td></tr>
|
<tr><td>Jan, 2011</td><td>woodchips</td><td>50 BTC</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Jan, 2011</td><td>anonymous</td><td>13 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Jan, 2011</td><td>anonymous</td><td>13 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Jan, 2011</td><td>anonymous</td><td>20 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Jan, 2011</td><td>anonymous</td><td>20 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Jan, 2011</td><td>anonymous</td><td>400 BTC</td><td></td><td>General fund</td></tr>
|
<tr><td>Jan, 2011</td><td>anonymous</td><td>400 BTC</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Jan, 2011</td><td>Amiga4000</td><td>1000 BTC</td><td></td><td>General fund</td></tr>
|
<tr><td>Jan, 2011</td><td>Amiga4000</td><td>1000 BTC</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Jan, 2011</td><td>anonymous</td><td>30 BTC</td><td></td><td>General fund</td></tr>
|
<tr><td>Jan, 2011</td><td>anonymous</td><td>30 BTC</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Jan, 2011</td><td>Mozartito</td><td>8 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Jan, 2011</td><td>Mozartito</td><td>8 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Jan, 2011</td><td>anonymous</td><td>20 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Jan, 2011</td><td>anonymous</td><td>20 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Jan, 2011</td><td>Flattr</td><td>69,15 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Jan, 2011</td><td>Flattr</td><td>69,15 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Feb, 2011</td><td>bv-falcon</td><td>15 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Feb, 2011</td><td>bv-falcon</td><td>15 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Feb, 2011</td><td>anonymous</td><td>6,66 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Feb, 2011</td><td>anonymous</td><td>6,66 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Feb, 2011</td><td>anonymous</td><td>100 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Feb, 2011</td><td>anonymous</td><td>100 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Feb, 2011</td><td>anonymous</td><td>20 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Feb, 2011</td><td>anonymous</td><td>20 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Feb, 2011</td><td>anonymous</td><td>25 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Feb, 2011</td><td>anonymous</td><td>25 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Feb, 2011</td><td>3 domains 2011</td><td></td><td>-36 €</td><td>General fund</td></tr>
|
<tr><td>Feb, 2011</td><td>3 domains 2011</td><td></td><td>-36 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Feb, 2011</td><td>anonymous</td><td>33.41 BTC</td><td></td><td>General fund</td></tr>
|
<tr><td>Feb, 2011</td><td>anonymous</td><td>33.41 BTC</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Mar, 2011</td><td>anonymous</td><td>30 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Mar, 2011</td><td>anonymous</td><td>30 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Mar, 2011</td><td>h2ik</td><td>23 €</td><td></td><td>I2P deb in debian mirrors</td></tr>
|
<tr><td>Mar, 2011</td><td>h2ik</td><td>23 €</td><td></td><td>I2P deb in debian mirrors</td></tr>
|
||||||
<tr><td>Mar, 2011</td><td>h2ik</td><td>50 €</td><td></td><td>IPv6 Bounty</td></tr>
|
<tr><td>Mar, 2011</td><td>h2ik</td><td>50 €</td><td></td><td>IPv6 Bounty</td></tr>
|
||||||
<tr><td>Mar, 2011</td><td>hamada</td><td></td><td>-80 BTC</td><td>Arabic routerconsole</td></tr>
|
<tr><td>Mar, 2011</td><td>hamada</td><td></td><td>-80 BTC</td><td>Arabic routerconsole</td></tr>
|
||||||
<tr><td>Mar, 2011</td><td>anonymous</td><td>63.01 BTC</td><td></td><td>General fund</td></tr>
|
<tr><td>Mar, 2011</td><td>anonymous</td><td>63.01 BTC</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Apr, 2011</td><td>I2P</td><td>745.84 €</td><td>-1000 BTC</td><td>General fund</td></tr>
|
<tr><td>Apr, 2011</td><td>I2P</td><td>745.84 €</td><td>-1000 BTC</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Apr, 2011</td><td>anonymous</td><td>30 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Apr, 2011</td><td>anonymous</td><td>30 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Apr, 2011</td><td>anonymous</td><td>10 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Apr, 2011</td><td>anonymous</td><td>10 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Apr, 2011</td><td>magma</td><td>100 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Apr, 2011</td><td>magma</td><td>100 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Apr, 2011</td><td>I2P services sponge</td><td></td><td>-100 €</td><td>General fund</td></tr>
|
<tr><td>Apr, 2011</td><td>I2P services sponge</td><td></td><td>-100 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Apr, 2011</td><td>anonymous</td><td>20 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Apr, 2011</td><td>anonymous</td><td>20 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Apr, 2011</td><td>anonymous</td><td>50 €</td><td></td><td>I2P debian package bounty</td></tr>
|
<tr><td>Apr, 2011</td><td>anonymous</td><td>50 €</td><td></td><td>I2P debian package bounty</td></tr>
|
||||||
<tr><td>Apr, 2011</td><td>anonymous</td><td>10 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Apr, 2011</td><td>anonymous</td><td>10 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Apr, 2011</td><td>anonymous</td><td>10 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Apr, 2011</td><td>anonymous</td><td>10 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Apr, 2011</td><td>anonymous</td><td>0.06 BTC</td><td></td><td>General fund</td></tr>
|
<tr><td>Apr, 2011</td><td>anonymous</td><td>0.06 BTC</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>May, 2011</td><td>anonymous</td><td>30 €</td><td></td><td>General fund</td></tr>
|
<tr><td>May, 2011</td><td>anonymous</td><td>30 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>May, 2011</td><td>anonymous</td><td>5 €</td><td></td><td>General fund</td></tr>
|
<tr><td>May, 2011</td><td>anonymous</td><td>5 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>May, 2011</td><td>anonymous</td><td>20 €</td><td></td><td>General fund</td></tr>
|
<tr><td>May, 2011</td><td>anonymous</td><td>20 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>May, 2011</td><td>anonymous</td><td>10 €</td><td></td><td>General fund</td></tr>
|
<tr><td>May, 2011</td><td>anonymous</td><td>10 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>May, 2011</td><td>Max Koda</td><td>10 BTC</td><td></td><td>General fund</td></tr>
|
<tr><td>May, 2011</td><td>Max Koda</td><td>10 BTC</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>May, 2011</td><td>anonymous</td><td>1.180001 BTC</td><td></td><td>General fund</td></tr>
|
<tr><td>May, 2011</td><td>anonymous</td><td>1.180001 BTC</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>May, 2011</td><td>ZZZ</td><td></td><td>250.06 €</td><td>trimslice dev device for ZZZ</td></tr>
|
<tr><td>May, 2011</td><td>ZZZ</td><td></td><td>250.06 €</td><td>trimslice dev device for ZZZ</td></tr>
|
||||||
<tr><td>Jun, 2011</td><td>An anonymous secret society society@mail.i2p</td><td>200 €</td><td></td><td>SILC bounty</td></tr>
|
<tr><td>Jun, 2011</td><td>An anonymous secret society society@mail.i2p</td><td>200 €</td><td></td><td>SILC bounty</td></tr>
|
||||||
<tr><td>Jun, 2011</td><td>Flattr</td><td>104 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Jun, 2011</td><td>Flattr</td><td>104 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Jun, 2011</td><td>anonymous</td><td>30 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Jun, 2011</td><td>anonymous</td><td>30 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Jun, 2011</td><td>anonymous</td><td>3 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Jun, 2011</td><td>anonymous</td><td>3 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Jun, 2011</td><td>anonymous</td><td></td><td>-13.6 BTC</td><td>General fund</td></tr>
|
<tr><td>Jun, 2011</td><td>anonymous</td><td></td><td>-13.6 BTC</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Jun, 2011</td><td>anonymous</td><td>22.5 BTC</td><td></td><td>General fund</td></tr>
|
<tr><td>Jun, 2011</td><td>anonymous</td><td>22.5 BTC</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Jul, 2011</td><td>hamada</td><td></td><td>-20 BTC</td><td>arabic bounty</td></tr>
|
<tr><td>Jul, 2011</td><td>hamada</td><td></td><td>-20 BTC</td><td>arabic bounty</td></tr>
|
||||||
<tr><td>Jul, 2011</td><td>anonymous</td><td>0.2 BTC</td><td></td><td>General fund</td></tr>
|
<tr><td>Jul, 2011</td><td>anonymous</td><td>0.2 BTC</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Jul, 2011</td><td>psychonaut</td><td>30 €</td><td></td><td>Bitcoin client bounty</td></tr>
|
<tr><td>Jul, 2011</td><td>psychonaut</td><td>30 €</td><td></td><td>Bitcoin client bounty</td></tr>
|
||||||
<tr><td>Jul, 2011</td><td>anonymous</td><td>30 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Jul, 2011</td><td>anonymous</td><td>30 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Jul, 2011</td><td>anonymous</td><td>5 GBP</td><td></td><td>General fund</td></tr>
|
<tr><td>Jul, 2011</td><td>anonymous</td><td>5 GBP</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Jul, 2011</td><td>anonymous</td><td>10 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Jul, 2011</td><td>anonymous</td><td>10 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Jul, 2011</td><td>anonymous</td><td>10 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Jul, 2011</td><td>anonymous</td><td>10 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Aug, 2011</td><td>anonymous</td><td>30 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Aug, 2011</td><td>anonymous</td><td>30 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Aug, 2011</td><td>An anonymous secret society society@mail.i2p</td><td>20 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Aug, 2011</td><td>An anonymous secret society society@mail.i2p</td><td>20 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Aug, 2011</td><td>anonymous</td><td>15 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Aug, 2011</td><td>anonymous</td><td>15 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Aug, 2011</td><td>ZZZ</td><td></td><td>$150 US</td><td>travel expenses for ZZZ</td></tr>
|
<tr><td>Aug, 2011</td><td>ZZZ</td><td></td><td>$150 US</td><td>travel expenses for ZZZ</td></tr>
|
||||||
<tr><td>Sep, 2011</td><td>anonymous</td><td>30 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Sep, 2011</td><td>anonymous</td><td>30 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Sep, 2011</td><td>anonymous</td><td>5 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Sep, 2011</td><td>anonymous</td><td>5 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Sep, 2011</td><td>maxkoda.i2p</td><td>1.303 BTC</td><td></td><td>General fund</td></tr>
|
<tr><td>Sep, 2011</td><td>maxkoda.i2p</td><td>1.303 BTC</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Sep, 2011</td><td>anonymous</td><td>1.2 BTC</td><td></td><td>General fund</td></tr>
|
<tr><td>Sep, 2011</td><td>anonymous</td><td>1.2 BTC</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Oct, 2011</td><td>anonymous</td><td>12.1347 BTC</td><td></td><td>General fund</td></tr>
|
<tr><td>Oct, 2011</td><td>anonymous</td><td>12.1347 BTC</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Oct, 2011</td><td>anonymous</td><td>30 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Oct, 2011</td><td>anonymous</td><td>30 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Oct, 2011</td><td>anonymous</td><td>20 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Oct, 2011</td><td>anonymous</td><td>20 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Oct, 2011</td><td>anonymous</td><td>5 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Oct, 2011</td><td>anonymous</td><td>5 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Oct, 2011</td><td>anonymous</td><td>10 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Oct, 2011</td><td>anonymous</td><td>10 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Oct, 2011</td><td>anonymous</td><td>5 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Oct, 2011</td><td>anonymous</td><td>5 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Oct, 2011</td><td>uglic</td><td>30 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Oct, 2011</td><td>uglic</td><td>30 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Oct, 2011</td><td>anonymous</td><td>10 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Oct, 2011</td><td>anonymous</td><td>10 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Oct, 2011</td><td>vention</td><td>73 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Oct, 2011</td><td>vention</td><td>73 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Oct, 2011</td><td>anonymous</td><td>20 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Oct, 2011</td><td>anonymous</td><td>20 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Oct, 2011</td><td>4get</td><td></td><td>163 €</td><td>RU translation delayed payment</td></tr>
|
<tr><td>Oct, 2011</td><td>4get</td><td></td><td>163 €</td><td>RU translation delayed payment</td></tr>
|
||||||
<tr><td>Nov, 2011</td><td>anonymous</td><td>30 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Nov, 2011</td><td>anonymous</td><td>30 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Nov, 2011</td><td>anonymous</td><td>10 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Nov, 2011</td><td>anonymous</td><td>10 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Nov, 2011</td><td>Daniel Liabeuf</td><td>20 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Nov, 2011</td><td>Daniel Liabeuf</td><td>20 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Nov, 2011</td><td>anonymous</td><td>15 €</td><td></td><td>Bounty eepsites in datastorage</td></tr>
|
<tr><td>Nov, 2011</td><td>anonymous</td><td>15 €</td><td></td><td>Bounty eepsites in datastorage</td></tr>
|
||||||
<tr><td>Nov, 2011</td><td>maxkoda</td><td>5.23 BTC</td><td></td><td>bounty BTC client in I2P</td></tr>
|
<tr><td>Nov, 2011</td><td>maxkoda</td><td>5.23 BTC</td><td></td><td>bounty BTC client in I2P</td></tr>
|
||||||
<tr><td>Nov, 2011</td><td>anonymous</td><td>0.512 BTC</td><td></td><td>General fund</td></tr>
|
<tr><td>Nov, 2011</td><td>anonymous</td><td>0.512 BTC</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Dec, 2011</td><td>anonymous</td><td>30 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Dec, 2011</td><td>anonymous</td><td>30 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
|
|
||||||
<tr><td>Dec, 2011</td><td>silc bounty</td><td>100 €</td><td></td><td>ReturningNovice</td></tr>
|
<tr><td>Dec, 2011</td><td>silc bounty</td><td>100 €</td><td></td><td>ReturningNovice</td></tr>
|
||||||
<tr><td>Dec, 2011</td><td>silc bounty</td><td>100 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Dec, 2011</td><td>silc bounty</td><td>100 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Dec, 2011</td><td>ReturningNovice</td><td>50 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Dec, 2011</td><td>ReturningNovice</td><td>50 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Dec, 2011</td><td>ReturningNovice</td><td>50 €</td><td></td><td>Sponge</td></tr>
|
<tr><td>Dec, 2011</td><td>ReturningNovice</td><td>50 €</td><td></td><td>Sponge</td></tr>
|
||||||
<tr><td>Dec, 2011</td><td>anonymous</td><td>5 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Dec, 2011</td><td>anonymous</td><td>5 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Dec, 2011</td><td>anonymous</td><td>5 €</td><td></td><td>General fund</td></tr>
|
<tr><td>Dec, 2011</td><td>anonymous</td><td>5 €</td><td></td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Dec, 2011</td><td>maxkoda</td><td>5.01 BTC</td><td></td><td>bounty BTC client in I2P</td></tr>
|
<tr><td>Dec, 2011</td><td>maxkoda</td><td>5.01 BTC</td><td></td><td>bounty BTC client in I2P</td></tr>
|
||||||
<tr><td>Dec, 2011</td><td>anonymous</td><td>0.4825475 BTC</td><td></td><td>Sponge</td></tr>
|
<tr><td>Dec, 2011</td><td>anonymous</td><td>0.4825475 BTC</td><td></td><td>Sponge</td></tr>
|
||||||
<tr><td>Dec, 2011</td><td>anonymous</td><td>5,54436182 BTC</td><td></td><td>general fund</td></tr>
|
<tr><td>Dec, 2011</td><td>anonymous</td><td>5,54436182 BTC</td><td></td><td>general fund</td></tr>
|
||||||
@@ -266,111 +275,111 @@ with your name or nick (and optionally homepage) so we can list you here.
|
|||||||
</table>
|
</table>
|
||||||
<br />
|
<br />
|
||||||
<br />
|
<br />
|
||||||
<b>Previous to 2011 donations:</b><br />
|
<b>{{ _('Previous to 2011 donations:') }}</b><br />
|
||||||
<table border="1">
|
<table border="1">
|
||||||
<tr><td>Dec, 2010</td><td>anonymous</td><td>20 €</td><td>General fund</td></tr>
|
<tr><td>Dec, 2010</td><td>anonymous</td><td>20 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Dec, 2010</td><td>anonymous</td><td>30 €</td><td>General fund</td></tr>
|
<tr><td>Dec, 2010</td><td>anonymous</td><td>30 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Dec, 2010</td><td>anonymous</td><td>$20 USD</td><td>General fund</td></tr>
|
<tr><td>Dec, 2010</td><td>anonymous</td><td>$20 USD</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Dec, 2010</td><td>anonymous</td><td>$10 USD</td><td>General fund</td></tr>
|
<tr><td>Dec, 2010</td><td>anonymous</td><td>$10 USD</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Dec, 2010</td><td>anonymous</td><td>20 €</td><td>General fund</td></tr>
|
<tr><td>Dec, 2010</td><td>anonymous</td><td>20 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Dec, 2010</td><td>anonymous</td><td>1.50 €</td><td>General fund</td></tr>
|
<tr><td>Dec, 2010</td><td>anonymous</td><td>1.50 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Dec, 2010</td><td>anonymous</td><td>10 €</td><td>General fund</td></tr>
|
<tr><td>Dec, 2010</td><td>anonymous</td><td>10 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Nov, 2010</td><td>anonymous</td><td>20 €</td><td>General fund</td></tr>
|
<tr><td>Nov, 2010</td><td>anonymous</td><td>20 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Oct, 2010</td><td>anonymous</td><td>20 €</td><td>General fund</td></tr>
|
<tr><td>Oct, 2010</td><td>anonymous</td><td>20 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Oct, 2010</td><td>anonymous</td><td>15 €</td><td>General fund</td></tr>
|
<tr><td>Oct, 2010</td><td>anonymous</td><td>15 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Oct, 2010</td><td>ru bounty payback</td><td>$230 USD</td><td>General fund</td></tr>
|
<tr><td>Oct, 2010</td><td>ru bounty payback</td><td>$230 USD</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Oct, 2010</td><td>R.Schwabe</td><td>10 €</td><td>General fund</td></tr>
|
<tr><td>Oct, 2010</td><td>R.Schwabe</td><td>10 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Oct, 2010</td><td>Flattr</td><td>29,40 €</td><td>General fund</td></tr>
|
<tr><td>Oct, 2010</td><td>Flattr</td><td>29,40 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Sep, 2010</td><td>anonymous</td><td>10 €</td><td>General fund</td></tr>
|
<tr><td>Sep, 2010</td><td>anonymous</td><td>10 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Sep, 2010</td><td>anonymous</td><td>11 €</td><td>General fund</td></tr>
|
<tr><td>Sep, 2010</td><td>anonymous</td><td>11 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Sep, 2010</td><td>anonymous</td><td>10 €</td><td>General fund</td></tr>
|
<tr><td>Sep, 2010</td><td>anonymous</td><td>10 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Sep, 2010</td><td>anonymous</td><td>20 €</td><td>General fund</td></tr>
|
<tr><td>Sep, 2010</td><td>anonymous</td><td>20 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Sep, 2010</td><td>R.Schwabe</td><td>10 €</td><td>General fund</td></tr>
|
<tr><td>Sep, 2010</td><td>R.Schwabe</td><td>10 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Sep, 2010</td><td>anonymous</td><td>15 €</td><td>General fund</td></tr>
|
<tr><td>Sep, 2010</td><td>anonymous</td><td>15 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Aug, 2010</td><td>anonymous</td><td>20 €</td><td>General fund</td></tr>
|
<tr><td>Aug, 2010</td><td>anonymous</td><td>20 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Aug, 2010</td><td>anonymous</td><td>10 €</td><td>General fund</td></tr>
|
<tr><td>Aug, 2010</td><td>anonymous</td><td>10 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Jul, 2010</td><td>anonymous</td><td>6,50 PLN</td><td>General fund</td></tr>
|
<tr><td>Jul, 2010</td><td>anonymous</td><td>6,50 PLN</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Jul, 2010</td><td>anonymous</td><td>10 €</td><td>General fund</td></tr>
|
<tr><td>Jul, 2010</td><td>anonymous</td><td>10 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Jul, 2010</td><td>anonymous</td><td>5 €</td><td>General fund</td></tr>
|
<tr><td>Jul, 2010</td><td>anonymous</td><td>5 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Jul, 2010</td><td>anonymous</td><td>20 €</td><td>General fund</td></tr>
|
<tr><td>Jul, 2010</td><td>anonymous</td><td>20 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Jul, 2010</td><td>anonymous</td><td>30 €</td><td>General fund</td></tr>
|
<tr><td>Jul, 2010</td><td>anonymous</td><td>30 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Jun, 2010</td><td>anonymous</td><td>5 €</td><td>General fund</td></tr>
|
<tr><td>Jun, 2010</td><td>anonymous</td><td>5 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Jun, 2010</td><td>anonymous</td><td>20 €</td><td>General fund</td></tr>
|
<tr><td>Jun, 2010</td><td>anonymous</td><td>20 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Jun, 2010</td><td>anonymous</td><td>8 €</td><td>General fund</td></tr>
|
<tr><td>Jun, 2010</td><td>anonymous</td><td>8 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Jun, 2010</td><td>anonymous</td><td>10 €</td><td>General fund</td></tr>
|
<tr><td>Jun, 2010</td><td>anonymous</td><td>10 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>May, 2010</td><td>anonymous</td><td>$ 20 CAD</td><td>General fund</td></tr>
|
<tr><td>May, 2010</td><td>anonymous</td><td>$ 20 CAD</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>May, 2010</td><td>anonymous</td><td>10 €</td><td>General fund</td></tr>
|
<tr><td>May, 2010</td><td>anonymous</td><td>10 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>May, 2010</td><td>anonymous</td><td>7 €</td><td>General fund</td></tr>
|
<tr><td>May, 2010</td><td>anonymous</td><td>7 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Apr, 2010</td><td>anonymous</td><td>£ 60 SCO</td><td>General fund</td></tr>
|
<tr><td>Apr, 2010</td><td>anonymous</td><td>£ 60 SCO</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Apr, 2010</td><td>anonymous</td><td>10 €</td><td>General fund</td></tr>
|
<tr><td>Apr, 2010</td><td>anonymous</td><td>10 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Apr, 2010</td><td>anonymous</td><td>200 €</td><td>Datastorage bounty</td></tr>
|
<tr><td>Apr, 2010</td><td>anonymous</td><td>200 €</td><td>Datastorage bounty</td></tr>
|
||||||
<tr><td>Apr, 2010</td><td>anonymous</td><td>10 €</td><td>General fund</td></tr>
|
<tr><td>Apr, 2010</td><td>anonymous</td><td>10 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Apr, 2010</td><td>Mozartito</td><td>5 €</td><td>General fund</td></tr>
|
<tr><td>Apr, 2010</td><td>Mozartito</td><td>5 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Mar, 2010</td><td>anonymous</td><td>140 €</td><td>General fund</td></tr>
|
<tr><td>Mar, 2010</td><td>anonymous</td><td>140 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Mar, 2010</td><td>anonymous</td><td>10 €</td><td>Abo General fund</td></tr>
|
<tr><td>Mar, 2010</td><td>anonymous</td><td>10 €</td><td>Abo {{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Mar, 2010</td><td>anonymous</td><td>10 €</td><td>Abo General fund</td></tr>
|
<tr><td>Mar, 2010</td><td>anonymous</td><td>10 €</td><td>Abo {{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Feb, 2010</td><td>anonymous</td><td>10 €</td><td>Abo General fund</td></tr>
|
<tr><td>Feb, 2010</td><td>anonymous</td><td>10 €</td><td>Abo {{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Feb, 2010</td><td>anonymous</td><td>5 €</td><td>General fund</td></tr>
|
<tr><td>Feb, 2010</td><td>anonymous</td><td>5 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Feb, 2010</td><td>anonymous</td><td>10 €</td><td>General fund</td></tr>
|
<tr><td>Feb, 2010</td><td>anonymous</td><td>10 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
|
|
||||||
<tr><td>Jan, 2010</td><td>anonymous</td><td>500 €</td><td>General fund</td></tr>
|
<tr><td>Jan, 2010</td><td>anonymous</td><td>500 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Jan, 2010</td><td>bernerbaer</td><td>50 €</td><td>General fund</td></tr>
|
<tr><td>Jan, 2010</td><td>bernerbaer</td><td>50 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Jan, 2010</td><td>anonymous</td><td>15 €</td><td>General fund</td></tr>
|
<tr><td>Jan, 2010</td><td>anonymous</td><td>15 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Apr, 2009-Jan, 2010</td><td>neutron</td><td>20 €/month</td><td>outproxy fund</td></tr>
|
<tr><td>Apr, 2009-Jan, 2010</td><td>neutron</td><td>20 €/month</td><td>outproxy fund</td></tr>
|
||||||
<tr><td>Jan, 2010</td><td>anonymous</td><td>$20 USD</td><td>General fund</td></tr>
|
<tr><td>Jan, 2010</td><td>anonymous</td><td>$20 USD</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Jan, 2010</td><td>anonymous</td><td>6.80 €</td><td>General fund</td></tr>
|
<tr><td>Jan, 2010</td><td>anonymous</td><td>6.80 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Jan, 2010</td><td>anonymous</td><td>10 €</td><td>General fund</td></tr>
|
<tr><td>Jan, 2010</td><td>anonymous</td><td>10 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Dec, 2009</td><td>anonymous</td><td>5 €</td><td>General fund</td></tr>
|
<tr><td>Dec, 2009</td><td>anonymous</td><td>5 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Dec, 2009</td><td>anonymous</td><td>35 €</td><td>General fund</td></tr>
|
<tr><td>Dec, 2009</td><td>anonymous</td><td>35 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Nov, 2009</td><td>russian donor</td><td>230 $</td><td>Russian translation bounty</td></tr>
|
<tr><td>Nov, 2009</td><td>russian donor</td><td>230 $</td><td>Russian translation bounty</td></tr>
|
||||||
<tr><td>Nov, 2009</td><td>anonymous</td><td>10 €</td><td>General fund</td></tr>
|
<tr><td>Nov, 2009</td><td>anonymous</td><td>10 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Oct, 2009</td><td>echelon</td><td>10 €</td><td>i2phex bounty</td></tr>
|
<tr><td>Oct, 2009</td><td>echelon</td><td>10 €</td><td>i2phex bounty</td></tr>
|
||||||
<tr><td>Oct, 2009</td><td>arne bab</td><td>10 €</td><td>i2phex bounty</td></tr>
|
<tr><td>Oct, 2009</td><td>arne bab</td><td>10 €</td><td>i2phex bounty</td></tr>
|
||||||
<tr><td>Oct, 2009</td><td>anonymous</td><td>10 €</td><td>General fund</td></tr>
|
<tr><td>Oct, 2009</td><td>anonymous</td><td>10 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Aug, 2009</td><td>anonymous</td><td>400 €</td><td>General fund</td></tr>
|
<tr><td>Aug, 2009</td><td>anonymous</td><td>400 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Aug, 2009</td><td>anonymous</td><td>10 €</td><td>General fund</td></tr>
|
<tr><td>Aug, 2009</td><td>anonymous</td><td>10 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Aug, 2009</td><td>anonymous</td><td>100 €</td><td>General fund</td></tr>
|
<tr><td>Aug, 2009</td><td>anonymous</td><td>100 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Jul, 2009</td><td>G.Klaus</td><td>15 €</td><td>General fund</td></tr>
|
<tr><td>Jul, 2009</td><td>G.Klaus</td><td>15 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Jul, 2009</td><td>R.Schwabe</td><td>$20 USD</td><td>General fund</td></tr>
|
<tr><td>Jul, 2009</td><td>R.Schwabe</td><td>$20 USD</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Jun, 2009</td><td>anonymous</td><td>10 €</td><td>General fund</td></tr>
|
<tr><td>Jun, 2009</td><td>anonymous</td><td>10 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Jun, 2009</td><td>Cendre</td><td>20 €</td><td>General fund</td></tr>
|
<tr><td>Jun, 2009</td><td>Cendre</td><td>20 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Jun, 2009</td><td>M.Hilbig</td><td>10 €</td><td>General fund</td></tr>
|
<tr><td>Jun, 2009</td><td>M.Hilbig</td><td>10 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Jun, 2009</td><td>anonymous</td><td>20 €</td><td>General fund</td></tr>
|
<tr><td>Jun, 2009</td><td>anonymous</td><td>20 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>May, 2009</td><td>EoL</td><td>10 €</td><td>General fund</td></tr>
|
<tr><td>May, 2009</td><td>EoL</td><td>10 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Apr, 2009</td><td>anonymous</td><td>10 €</td><td>General fund</td></tr>
|
<tr><td>Apr, 2009</td><td>anonymous</td><td>10 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Apr, 2009</td><td>anonymous</td><td>60 €</td><td>General fund</td></tr>
|
<tr><td>Apr, 2009</td><td>anonymous</td><td>60 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Apr, 2009</td><td>Gilgongo</td><td>15 €</td><td>General fund</td></tr>
|
<tr><td>Apr, 2009</td><td>Gilgongo</td><td>15 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Apr, 2009</td><td>Amiga4000</td><td>50 €</td><td>I2P vuze plugin bounty</td></tr>
|
<tr><td>Apr, 2009</td><td>Amiga4000</td><td>50 €</td><td>I2P vuze plugin bounty</td></tr>
|
||||||
<tr><td>Mar, 2009</td><td>[anonymous]</td><td>50 €</td><td>General fund</td></tr>
|
<tr><td>Mar, 2009</td><td>[anonymous]</td><td>50 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Feb, 2009</td><td>[anonymous]</td><td>30 €</td><td>General fund</td></tr>
|
<tr><td>Feb, 2009</td><td>[anonymous]</td><td>30 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Feb, 2009</td><td>DVT</td><td>20 €</td><td>General fund</td></tr>
|
<tr><td>Feb, 2009</td><td>DVT</td><td>20 €</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Oct, 2008</td><td>eche|on</td><td>500.0 €</td><td>Datastorage bounty</td></tr>
|
<tr><td>Oct, 2008</td><td>eche|on</td><td>500.0 €</td><td>Datastorage bounty</td></tr>
|
||||||
<tr><td>Mar, 2007</td><td>zzz</td><td>$200 USD</td><td>General fund</td></tr>
|
<tr><td>Mar, 2007</td><td>zzz</td><td>$200 USD</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Nov, 2006-Dec, 2007</td><td>[anonymous]</td><td>$10 USD/month</td><td>general fund</td></tr>
|
<tr><td>Nov, 2006-Dec, 2007</td><td>[anonymous]</td><td>$10 USD/month</td><td>general fund</td></tr>
|
||||||
<tr><td>Dec, 2006</td><td>bar</td><td colspan="2">New mac testing machine</td></tr>
|
<tr><td>Dec, 2006</td><td>bar</td><td colspan="2">New mac testing machine</td></tr>
|
||||||
<tr><td>Dec, 2006</td><td>[anonymous]</td><td>$200 USD</td><td>General fund</td></tr>
|
<tr><td>Dec, 2006</td><td>[anonymous]</td><td>$200 USD</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Oct, 2006</td><td>[anonymous]</td><td>$150 USD</td><td>General fund</td></tr>
|
<tr><td>Oct, 2006</td><td>[anonymous]</td><td>$150 USD</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Oct, 2006</td><td>[anonymous]</td><td>$100 USD</td><td>General fund</td></tr>
|
<tr><td>Oct, 2006</td><td>[anonymous]</td><td>$100 USD</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Oct, 2005-Oct, 2006</td><td>Eol</td><td>$10 USD/month</td><td>General fund</td></tr>
|
<tr><td>Oct, 2005-Oct, 2006</td><td>Eol</td><td>$10 USD/month</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Oct, 2006</td><td>Peter</td><td>$750 USD</td><td>General fund</td></tr>
|
<tr><td>Oct, 2006</td><td>Peter</td><td>$750 USD</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Jun, 2006</td><td>[anonymous]</td><td>$450 USD</td><td>General fund</td></tr>
|
<tr><td>Jun, 2006</td><td>[anonymous]</td><td>$450 USD</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Jun, 2006</td><td>[anonymous]</td><td>$10 USD</td><td>General fund</td></tr>
|
<tr><td>Jun, 2006</td><td>[anonymous]</td><td>$10 USD</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Jun, 2006</td><td>[anonymous]</td><td>$10 USD</td><td>General fund</td></tr>
|
<tr><td>Jun, 2006</td><td>[anonymous]</td><td>$10 USD</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>May, 2006</td><td>athena</td><td>$135 USD</td><td>General fund</td></tr>
|
<tr><td>May, 2006</td><td>athena</td><td>$135 USD</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Apr, 2006</td><td>postman</td><td>$300 USD</td><td>General fund</td></tr>
|
<tr><td>Apr, 2006</td><td>postman</td><td>$300 USD</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Apr, 2006</td><td>[anonymous]</td><td>$300 USD</td><td>General fund</td></tr>
|
<tr><td>Apr, 2006</td><td>[anonymous]</td><td>$300 USD</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Apr, 2006</td><td>[anonymous]</td><td>$500 USD</td><td>General fund</td></tr>
|
<tr><td>Apr, 2006</td><td>[anonymous]</td><td>$500 USD</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Apr, 2006</td><td>[anonymous]</td><td>$100 USD</td><td>General fund</td></tr>
|
<tr><td>Apr, 2006</td><td>[anonymous]</td><td>$100 USD</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Apr, 2006</td><td>[anonymous]</td><td>$10 USD</td><td>General fund</td></tr>
|
<tr><td>Apr, 2006</td><td>[anonymous]</td><td>$10 USD</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Apr, 2006</td><td>[anonymous]</td><td>$50 USD</td><td>General fund</td></tr>
|
<tr><td>Apr, 2006</td><td>[anonymous]</td><td>$50 USD</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Apr, 2006</td><td>[anonymous]</td><td>$15 USD</td><td>General fund</td></tr>
|
<tr><td>Apr, 2006</td><td>[anonymous]</td><td>$15 USD</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Apr, 2006</td><td>[anonymous]</td><td>$12 USD</td><td>General fund</td></tr>
|
<tr><td>Apr, 2006</td><td>[anonymous]</td><td>$12 USD</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Mar, 2006</td><td>[anonymous]</td><td>$30 USD</td><td>General fund</td></tr>
|
<tr><td>Mar, 2006</td><td>[anonymous]</td><td>$30 USD</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Mar, 2006</td><td>[anonymous]</td><td>$800 USD</td><td>General fund</td></tr>
|
<tr><td>Mar, 2006</td><td>[anonymous]</td><td>$800 USD</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Mar, 2006</td><td>bar</td><td colspan="2">New development machine</td></tr>
|
<tr><td>Mar, 2006</td><td>bar</td><td colspan="2">New development machine</td></tr>
|
||||||
<tr><td>Mar, 2006</td><td>postman</td><td>$300 USD</td><td>General fund</td></tr>
|
<tr><td>Mar, 2006</td><td>postman</td><td>$300 USD</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Mar, 2006</td><td>[anonymous]</td><td>$5 USD</td><td>General fund</td></tr>
|
<tr><td>Mar, 2006</td><td>[anonymous]</td><td>$5 USD</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Feb, 2006</td><td>[anonymous]</td><td>$50 USD</td><td>General fund</td></tr>
|
<tr><td>Feb, 2006</td><td>[anonymous]</td><td>$50 USD</td><td>{{ _('General fund') }}</td></tr>
|
||||||
<tr><td>Jan, 2006</td><td>[anonymous]</td><td>$500 USD</td><td>Unit test bounty</td></tr>
|
<tr><td>Jan, 2006</td><td>[anonymous]</td><td>$500 USD</td><td>Unit test bounty</td></tr>
|
||||||
<tr><td>Jan, 2006</td><td>[anonymous]</td><td>$25 USD</td><td>I2P general fund</td></tr>
|
<tr><td>Jan, 2006</td><td>[anonymous]</td><td>$25 USD</td><td>I2P general fund</td></tr>
|
||||||
<tr><td>Jan, 2006</td><td>[anonymous]</td><td>$10 USD</td><td>I2P general fund</td></tr>
|
<tr><td>Jan, 2006</td><td>[anonymous]</td><td>$10 USD</td><td>I2P general fund</td></tr>
|
||||||
|
@@ -1,8 +1,9 @@
|
|||||||
{% extends "global/layout.html" %}
|
{% extends "global/layout.html" %}
|
||||||
{% block title %}Intro{% endblock %}
|
{% block title %}{{ _('Intro') }}{% endblock %}
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<h1>The Invisible Internet Project (I2P)</h1>
|
<h1>{{ _('The Invisible Internet Project (I2P)') }}</h1>
|
||||||
<p>I2P is an anonymous network, exposing a simple layer that applications can
|
<p>{% trans -%}
|
||||||
|
I2P is an anonymous network, exposing a simple layer that applications can
|
||||||
use to anonymously and securely send messages to each other. The network itself is
|
use to anonymously and securely send messages to each other. The network itself is
|
||||||
strictly message based (a la
|
strictly message based (a la
|
||||||
<a href="http://en.wikipedia.org/wiki/Internet_Protocol">IP</a>), but there is a
|
<a href="http://en.wikipedia.org/wiki/Internet_Protocol">IP</a>), but there is a
|
||||||
@@ -10,12 +11,14 @@ library available to allow reliable streaming communication on top of it (a la
|
|||||||
<a href="http://en.wikipedia.org/wiki/Transmission_Control_Protocol">TCP</a>).
|
<a href="http://en.wikipedia.org/wiki/Transmission_Control_Protocol">TCP</a>).
|
||||||
All communication is end to end encrypted (in total there are four layers of
|
All communication is end to end encrypted (in total there are four layers of
|
||||||
encryption used when sending a message), and even the end points ("destinations")
|
encryption used when sending a message), and even the end points ("destinations")
|
||||||
are cryptographic identifiers (essentially a pair of <a href="http://en.wikipedia.org/wiki/Public_key_encryption">public keys</a>).</p>
|
are cryptographic identifiers (essentially a pair of <a href="http://en.wikipedia.org/wiki/Public_key_encryption">public keys</a>).
|
||||||
|
{%- endtrans %}</p>
|
||||||
|
|
||||||
<h2>How does it work?</h2>
|
<h2>{{ _('How does it work?') }}</h2>
|
||||||
|
|
||||||
<p>To anonymize the messages sent, each client application has their I2P "router"
|
<p>{% trans tunnelrouting=site_url('docs/how/tunnel-routing') -%}
|
||||||
build a few inbound and outbound "<a href="{{ site_url('docs/how/tunnelrouting') }}">tunnels</a>" - a
|
To anonymize the messages sent, each client application has their I2P "router"
|
||||||
|
build a few inbound and outbound "<a href="{{ tunnelrouting }}">tunnels</a>" - a
|
||||||
sequence of peers that pass messages in one direction (to and from the client,
|
sequence of peers that pass messages in one direction (to and from the client,
|
||||||
respectively). In turn, when a client wants to send a message to another client,
|
respectively). In turn, when a client wants to send a message to another client,
|
||||||
the client passes that message out one of their outbound tunnels targeting one of the
|
the client passes that message out one of their outbound tunnels targeting one of the
|
||||||
@@ -24,30 +27,38 @@ participant in the network chooses the length of these tunnels, and in doing so,
|
|||||||
makes a tradeoff between anonymity, latency, and throughput according to their
|
makes a tradeoff between anonymity, latency, and throughput according to their
|
||||||
own needs. The result is that the number of peers relaying each end to end
|
own needs. The result is that the number of peers relaying each end to end
|
||||||
message is the absolute minimum necessary to meet both the sender's and the
|
message is the absolute minimum necessary to meet both the sender's and the
|
||||||
receiver's threat model.</p>
|
receiver's threat model.
|
||||||
|
{%- endtrans %}</p>
|
||||||
|
|
||||||
<p>The first time a client wants to contact another client, they make a query
|
<p>{% trans netdb=site_url('docs/how/network-database') -%}
|
||||||
against the fully distributed "<a href="{{ site_url('docs/how/networkdatabase') }}">network
|
The first time a client wants to contact another client, they make a query
|
||||||
|
against the fully distributed "<a href="{{ netdb }}">network
|
||||||
database</a>" - a custom structured <a href="http://en.wikipedia.org/wiki/Distributed_hash_table">
|
database</a>" - a custom structured <a href="http://en.wikipedia.org/wiki/Distributed_hash_table">
|
||||||
distributed hash table (DHT)</a> based off the
|
distributed hash table (DHT)</a> based off the
|
||||||
<a href="http://en.wikipedia.org/wiki/Kademlia"> Kademlia algorithm</a>. This is done
|
<a href="http://en.wikipedia.org/wiki/Kademlia"> Kademlia algorithm</a>. This is done
|
||||||
to find the other client's inbound tunnels efficiently, but subsequent messages
|
to find the other client's inbound tunnels efficiently, but subsequent messages
|
||||||
between them usually includes that data so no further network database lookups
|
between them usually includes that data so no further network database lookups
|
||||||
are required.</p>
|
are required.
|
||||||
|
{%- endtrans %}</p>
|
||||||
<p>More details about how I2P works are <a href="{{ site_url('docs') }}">available</a>.</p>
|
|
||||||
|
|
||||||
<h2>What can you do with it?</h2>
|
<p>{% trans docs=site_url('docs') -%}
|
||||||
|
More details about how I2P works are <a href="{{ docs }}">available</a>.
|
||||||
|
{%- endtrans %}</p>
|
||||||
|
|
||||||
<p>Within the I2P network, applications are not restricted in how they can
|
<h2>{{ _('What can you do with it?') }}</h2>
|
||||||
|
|
||||||
|
<p>{% trans i2ptunnel=site_url('docs/api/i2ptunnel') -%}
|
||||||
|
Within the I2P network, applications are not restricted in how they can
|
||||||
communicate - those that typically use UDP can make use of the base I2P
|
communicate - those that typically use UDP can make use of the base I2P
|
||||||
functionality, and those that typically use TCP can use the TCP-like streaming
|
functionality, and those that typically use TCP can use the TCP-like streaming
|
||||||
library. We have a generic TCP/I2P bridge application
|
library. We have a generic TCP/I2P bridge application
|
||||||
("<a href="{{ site_url('docs/api/i2ptunnel') }}">I2PTunnel</a>") that enables people to forward TCP streams
|
("<a href="{{ i2ptunnel }}">I2PTunnel</a>") that enables people to forward TCP streams
|
||||||
into the I2P network as well as to receive streams out of the network and
|
into the I2P network as well as to receive streams out of the network and
|
||||||
forward them towards a specific TCP/IP address.</p>
|
forward them towards a specific TCP/IP address.
|
||||||
|
{%- endtrans %}</p>
|
||||||
|
|
||||||
<p>I2PTunnel is currently used to let people run their own anonymous website
|
<p>{% trans -%}
|
||||||
|
I2PTunnel is currently used to let people run their own anonymous website
|
||||||
("eepsite") by running a normal webserver and pointing an I2PTunnel 'server'
|
("eepsite") by running a normal webserver and pointing an I2PTunnel 'server'
|
||||||
at it, which people can access anonymously over I2P with a normal web browser
|
at it, which people can access anonymously over I2P with a normal web browser
|
||||||
by running an I2PTunnel HTTP proxy ("eepproxy"). In addition, we use the same
|
by running an I2PTunnel HTTP proxy ("eepproxy"). In addition, we use the same
|
||||||
@@ -59,9 +70,11 @@ build an optimized swarming file transfer application (a la
|
|||||||
distributed data store (a la <a href="http://freenetproject.org/">Freenet</a> /
|
distributed data store (a la <a href="http://freenetproject.org/">Freenet</a> /
|
||||||
<a href="http://mnetproject.org/">MNet</a>), and a blogging system (a fully
|
<a href="http://mnetproject.org/">MNet</a>), and a blogging system (a fully
|
||||||
distributed <a href="http://www.livejournal.com/">LiveJournal</a>), but those are
|
distributed <a href="http://www.livejournal.com/">LiveJournal</a>), but those are
|
||||||
not ready for use yet.</p>
|
not ready for use yet.
|
||||||
|
{%- endtrans %}</p>
|
||||||
|
|
||||||
<p>I2P is not inherently an "outproxy" network - the client you send a message
|
<p>{% trans -%}
|
||||||
|
I2P is not inherently an "outproxy" network - the client you send a message
|
||||||
to is the cryptographic identifier, not some IP address, so the message must
|
to is the cryptographic identifier, not some IP address, so the message must
|
||||||
be addressed to someone running I2P. However, it is possible for that client
|
be addressed to someone running I2P. However, it is possible for that client
|
||||||
to be an outproxy, allowing you to anonymously make use of their Internet
|
to be an outproxy, allowing you to anonymously make use of their Internet
|
||||||
@@ -71,16 +84,21 @@ that runs a <a href="http://www.squid-cache.org/">squid</a> HTTP proxy, allowing
|
|||||||
simple anonymous browsing of the normal web. Simple outproxies like that are
|
simple anonymous browsing of the normal web. Simple outproxies like that are
|
||||||
not viable in the long run for several reasons (including the cost of running
|
not viable in the long run for several reasons (including the cost of running
|
||||||
one as well as the anonymity and security issues they introduce), but in
|
one as well as the anonymity and security issues they introduce), but in
|
||||||
certain circumstances the technique could be appropriate.</p>
|
certain circumstances the technique could be appropriate.
|
||||||
|
{%- endtrans %}</p>
|
||||||
|
|
||||||
<p>The I2P development <a href="{{ site_url('about/team') }}">team</a> is an open group, welcome to all
|
<p>{% trans team=site_url('about/team'), volunteer=site_url('get-involved'),
|
||||||
who are interested in <a href="{{ site_url('volunteer') }}">getting involved</a>, and all of
|
licenses=site_url('get-involved/develop/licenses'), sam=site_url('docs/api/sam'),
|
||||||
the code is <a href="{{ site_url('volunteer/develop/licenses') }}">open source</a>. The core I2P SDK and the
|
roadmap=site_url('get-involved/roadmap') -%}
|
||||||
|
The I2P development <a href="{{ team }}">team</a> is an open group, welcome to all
|
||||||
|
who are interested in <a href="{{ volunteer }}">getting involved</a>, and all of
|
||||||
|
the code is <a href="{{ licenses }}">open source</a>. The core I2P SDK and the
|
||||||
current router implementation is done in Java (currently working with both
|
current router implementation is done in Java (currently working with both
|
||||||
sun and kaffe, gcj support planned for later), and there is a
|
sun and kaffe, gcj support planned for later), and there is a
|
||||||
<a href="{{ site_url('docs/api/sam') }}">simple socket based API</a> for accessing the network from
|
<a href="{{ sam }}">simple socket based API</a> for accessing the network from
|
||||||
other languages (with a C library available, and both Python and Perl in
|
other languages (with a C library available, and both Python and Perl in
|
||||||
development). The network is actively being developed and has not yet reached
|
development). The network is actively being developed and has not yet reached
|
||||||
the 1.0 release, but the current <a href="{{ site_url('volunteer/roadmap') }}">roadmap</a> describes
|
the 1.0 release, but the current <a href="{{ roadmap }}">roadmap</a> describes
|
||||||
our schedule.</p>
|
our schedule.
|
||||||
|
{%- endtrans %}</p>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
@@ -1,209 +1,221 @@
|
|||||||
{% extends "global/layout.html" %}
|
{% extends "global/layout.html" %}
|
||||||
{% block title %}Presentations on I2P{% endblock %}
|
{% block title %}{{ _('Presentations on I2P') }}{% endblock %}
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<h1>Presentations on I2P</h1>
|
<h1>{{ _('Presentations on I2P') }}</h1>
|
||||||
<p>
|
<p>{% trans papers=site_url('research/papers') -%}
|
||||||
Following are links to presentations, videos, and tutorials about I2P. Links to research papers on I2P are available <a href="{{ site_url('research/papers') }}">here</a>.
|
Following are links to presentations, videos, and tutorials about I2P. Links to research papers on I2P are available <a href="{{ papers }}">here</a>.
|
||||||
</p><p>
|
{%- endtrans %}</p>
|
||||||
To request an addition to this page, please send to press ~~~at~~~ i2p2.de.
|
<p>{% trans email='press ~~~at~~~ i2p2.de' -%}
|
||||||
</p><p>
|
To request an addition to this page, please send to {{ email }}.
|
||||||
|
{%- endtrans %}</p>
|
||||||
|
<p>{% trans %}
|
||||||
Newest links are at the bottom of each section.
|
Newest links are at the bottom of each section.
|
||||||
</p>
|
{%- endtrans %}</p>
|
||||||
<div class="links">
|
<div class="links">
|
||||||
|
|
||||||
<h2>Presentations</h2>
|
<h2>{{ _('Presentations') }}</h2>
|
||||||
<ul>
|
<ul>
|
||||||
|
|
||||||
<li>
|
<li>{% trans mp3='http://invisibleip.sourceforge.net/iip/resources/codecon_0x90.mp3',
|
||||||
|
transcript='http://invisibleip.sourceforge.net/iip/resources/iip_transcript.txt' -%}
|
||||||
IIP Presentation at CodeCon
|
IIP Presentation at CodeCon
|
||||||
<a href="http://invisibleip.sourceforge.net/iip/resources/codecon_0x90.mp3">MP3 audio</a>
|
<a href="{{ mp3 }}">MP3 audio</a>
|
||||||
<a href="http://invisibleip.sourceforge.net/iip/resources/iip_transcript.txt">transcript</a>
|
<a href="{{ transcript }}">transcript</a>
|
||||||
Lance James (0x90), February 2002.
|
Lance James (0x90), February 2002.
|
||||||
</li>
|
{%- endtrans %}</li>
|
||||||
|
|
||||||
<li>
|
<li>{% trans mp3='http://invisibleip.sourceforge.net/iip/resources/toorconspeech.mp3',
|
||||||
|
slides='http://invisibleip.sourceforge.net/iip/resources/toorconspeech/' -%}
|
||||||
IIP Presentation at ToorCon
|
IIP Presentation at ToorCon
|
||||||
<a href="http://invisibleip.sourceforge.net/iip/resources/toorconspeech.mp3">MP3 audio</a>
|
<a href="{{ mp3 }}">MP3 audio</a>
|
||||||
<a href="http://invisibleip.sourceforge.net/iip/resources/toorconspeech/">slides</a>
|
<a href="{{ slides }}">slides</a>
|
||||||
Lance James (0x90), September 2002.
|
Lance James (0x90), September 2002.
|
||||||
</li>
|
{%- endtrans %}</li>
|
||||||
|
|
||||||
<li>
|
<li>{% trans video='http://www.youtube.com/watch?v=TsfdzfGZyu0',
|
||||||
<a href="http://www.youtube.com/watch?v=TsfdzfGZyu0">To Be or I2P</a>
|
pdf='http://events.ccc.de/congress/2007/Fahrplan/attachments/1017_24c3-i2p.pdf' -%}
|
||||||
|
<a href="{{ video }}">To Be or I2P</a>
|
||||||
(Youtube Video)
|
(Youtube Video)
|
||||||
An introduction into anonymous communication with I2P.
|
An introduction into anonymous communication with I2P.
|
||||||
<a href="http://events.ccc.de/congress/2007/Fahrplan/attachments/1017_24c3-i2p.pdf">To Be or I2P (PDF presentation)</a>,
|
<a href="{{ pdf }}">To Be or I2P (PDF presentation)</a>,
|
||||||
Jens Kubieziel, 24C3 Berlin, December 28, 2007.
|
Jens Kubieziel, 24C3 Berlin, December 28, 2007.
|
||||||
</li>
|
{%- endtrans %}</li>
|
||||||
|
|
||||||
<li>
|
<li>{% trans video='http://marge.informatik.tu-chemnitz.de/archiv/CLT2009/V4-Sa1200-Security-Lars_Schimmer.mp4' -%}
|
||||||
<a href="http://marge.informatik.tu-chemnitz.de/archiv/CLT2009/V4-Sa1200-Security-Lars_Schimmer.mp4">Video of I2P talk at Chemnitz Linux Tag</a>,
|
<a href="{{ video }}">Video of I2P talk at Chemnitz Linux Tag</a>,
|
||||||
Lars Schimmer,
|
Lars Schimmer,
|
||||||
March 14-15, 2009
|
March 14-15, 2009
|
||||||
</li>
|
{%- endtrans %}</li>
|
||||||
|
|
||||||
<li>
|
<li>{% trans mp3='http://c2047862.cdn.cloudfiles.rackspacecloud.com/tnhc21.mp3' -%}
|
||||||
HOPE New York July 17, 2010 - Brief overview of I2P by zzz, at the end of Adrian Hong's talk
|
HOPE New York July 17, 2010 - Brief overview of I2P by zzz, at the end of Adrian Hong's talk
|
||||||
"Hackers for Human Rights".
|
"Hackers for Human Rights".
|
||||||
<a href="http://c2047862.cdn.cloudfiles.rackspacecloud.com/tnhc21.mp3">MP3 audio</a>
|
<a href="{{ mp3 }}">MP3 audio</a>
|
||||||
</li>
|
{%- endtrans %}</li>
|
||||||
|
|
||||||
<li>
|
<li>{% trans link='http://www.irongeek.com/i.php?page=videos/shmoocon-firetalks-2011' -%}
|
||||||
<a href="http://www.irongeek.com/i.php?page=videos/shmoocon-firetalks-2011">Into the I2P Darknet: Welcome to Cipherspace</a>
|
<a href="{{ link }}">Into the I2P Darknet: Welcome to Cipherspace</a>
|
||||||
Adrian Crenshaw. Schmoocon Firetalk, January 2011
|
Adrian Crenshaw. Schmoocon Firetalk, January 2011
|
||||||
</li>
|
{%- endtrans %}</li>
|
||||||
|
|
||||||
<li>
|
<li>{% trans link='http://www.youtube.com/watch?v=TexNr_5J5AU' -%}
|
||||||
<a href="http://www.youtube.com/watch?v=TexNr_5J5AU">Using techhnology to advance liberty</a>
|
<a href="{{ link }}">Using techhnology to advance liberty</a>
|
||||||
(Youtube Video)
|
(Youtube Video)
|
||||||
Eric Johnson.
|
Eric Johnson.
|
||||||
<a href="http://agora.io/etienne">Agora I/O Unconference</a>, March 27, 2011.
|
<a href="http://agora.io/etienne">Agora I/O Unconference</a>, March 27, 2011.
|
||||||
I2P covered from 10:00 to 20:00 in the video.
|
I2P covered from 10:00 to 20:00 in the video.
|
||||||
</li>
|
{%- endtrans %}</li>
|
||||||
|
|
||||||
<li>
|
<li>{% trans pdf='http://patras.fosscomm.gr/talks/BSoD_Pub.pdf' -%}
|
||||||
<a href="http://patras.fosscomm.gr/talks/BSoD_Pub.pdf">The Bright side of darknets</a>, FOSSCOMM Patras May 2011
|
<a href="{{ pdf }}">The Bright side of darknets</a>, FOSSCOMM Patras May 2011
|
||||||
</li>
|
{%- endtrans %}</li>
|
||||||
|
|
||||||
<li>
|
<li>{% trans link='http://www.youtube.com/watch?v=bI_1qlcwfE0' -%}
|
||||||
<a href="http://www.youtube.com/watch?v=bI_1qlcwfE0">Common Darknet Weaknesses</a>
|
<a href="{{ link }}">Common Darknet Weaknesses</a>
|
||||||
(Youtube Video)
|
(Youtube Video)
|
||||||
Adrian Crenshaw, <a href="http://aide.marshall.edu/">AIDE</a>, July 11-15, 2011.
|
Adrian Crenshaw, <a href="http://aide.marshall.edu/">AIDE</a>, July 11-15, 2011.
|
||||||
</li>
|
{%- endtrans %}</li>
|
||||||
|
|
||||||
<li>
|
<li>{% trans link='http://www.irongeek.com/i.php?page=security/i2p-tor-workshop-notes' -%}
|
||||||
<a href="http://www.irongeek.com/i.php?page=security/i2p-tor-workshop-notes">I2P / Tor Workshop Notes</a>
|
<a href="{{ link }}">I2P / Tor Workshop Notes</a>
|
||||||
Adrian Crenshaw. DEF CON 19, Las Vegas, August 6, 2011.
|
Adrian Crenshaw. DEF CON 19, Las Vegas, August 6, 2011.
|
||||||
</li>
|
{%- endtrans %}</li>
|
||||||
|
|
||||||
<li>
|
<li>{% trans live='http://www.youtube.com/watch?v=xxKXkbohRZM',
|
||||||
<a href="http://www.youtube.com/watch?v=xxKXkbohRZM">Cipherspaces/Darknets: An Overview Of Attack Strategies -
|
studio='http://www.youtube.com/watch?v=xFxJ6Dc5ass',
|
||||||
|
slides='http://www.irongeek.com/downloads/Adrian-Crenshaw-darknet-weaknesses.pptx' -%}
|
||||||
|
<a href="{{ live }}">Cipherspaces/Darknets: An Overview Of Attack Strategies -
|
||||||
DEF CON Live version (Youtube Video)</a>,
|
DEF CON Live version (Youtube Video)</a>,
|
||||||
<a href="http://www.youtube.com/watch?v=xFxJ6Dc5ass">"Studio" version (Youtube Video)</a>,
|
<a href="{{ studio }}">"Studio" version (Youtube Video)</a>,
|
||||||
<a href="http://www.irongeek.com/downloads/Adrian-Crenshaw-darknet-weaknesses.pptx">Slides (ppt)</a>
|
<a href="{{ slides }}">Slides (ppt)</a>
|
||||||
Adrian Crenshaw. DEF CON 19, Las Vegas, August 7, 2011.
|
Adrian Crenshaw. DEF CON 19, Las Vegas, August 7, 2011.
|
||||||
</li>
|
{%- endtrans %}</li>
|
||||||
|
|
||||||
<li>
|
<li>{% trans -%}
|
||||||
<a href="http://0x375.org/">Modern cipherspace ecosystems</a>, 0x375 0x06 4/11/2011
|
<a href="http://0x375.org/">Modern cipherspace ecosystems</a>, 0x375 0x06 4/11/2011
|
||||||
</li>
|
{%- endtrans %}</li>
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<h2>Tutorials</h2>
|
<h2>{{ _('Tutorials') }}</h2>
|
||||||
<ul>
|
<ul>
|
||||||
|
|
||||||
<li>
|
<li>{% trans link='http://www.youtube.com/watch?v=5J3nh1DoRMw' -%}
|
||||||
<a href="http://www.youtube.com/watch?v=5J3nh1DoRMw">I2P Windows Tutorial</a>
|
<a href="{{ link }}">I2P Windows Tutorial</a>
|
||||||
(Youtube Video)
|
(Youtube Video)
|
||||||
This guide will show you how to install I2P in Windows XP.
|
This guide will show you how to install I2P in Windows XP.
|
||||||
By <a href="http://telecomix.org/">Telecomix</a>
|
By <a href="http://telecomix.org/">Telecomix</a>
|
||||||
</li>
|
{%- endtrans %}</li>
|
||||||
|
|
||||||
<li>
|
<li>
|
||||||
<a href="http://www.youtube.com/watch?v=QeRN2G9VW5E">I2P Debian Tutorial</a>
|
<li>{% trans link='http://www.youtube.com/watch?v=QeRN2G9VW5E' -%}
|
||||||
|
<a href="{{ link }}">I2P Debian Tutorial</a>
|
||||||
(Youtube Video)
|
(Youtube Video)
|
||||||
This will guide you through how to install I2P on a Debian Linux System.
|
This will guide you through how to install I2P on a Debian Linux System.
|
||||||
By <a href="http://telecomix.org/">Telecomix</a>
|
By <a href="http://telecomix.org/">Telecomix</a>
|
||||||
</li>
|
{%- endtrans %}</li>
|
||||||
|
|
||||||
<li>
|
<li>
|
||||||
<a href="http://www.youtube.com/watch?v=2ylW85vc7SA">How to set up anonymous site in I2P</a>
|
<li>{% trans link='http://www.youtube.com/watch?v=2ylW85vc7SA' -%}
|
||||||
|
<a href="{{ link }}">How to set up anonymous site in I2P</a>
|
||||||
(Youtube Video)
|
(Youtube Video)
|
||||||
How to set up an anonymous web site in I2P.
|
How to set up an anonymous web site in I2P.
|
||||||
By <a href="http://telecomix.org/">Telecomix</a>
|
By <a href="http://telecomix.org/">Telecomix</a>
|
||||||
</li>
|
{%- endtrans %}</li>
|
||||||
|
|
||||||
<li>
|
<li>{% trans link='http://www.youtube.com/watch?v=d8mvGZqVgE4' -%}
|
||||||
<a href="http://www.youtube.com/watch?v=d8mvGZqVgE4">I2P Tutorial Mac OS X</a>
|
<a href="{{ link }}">I2P Tutorial Mac OS X</a>
|
||||||
(Youtube Video)
|
(Youtube Video)
|
||||||
A tutorial on how to run i2p on Mac OS X and how to connect to irc.telecomix.i2p.
|
A tutorial on how to run i2p on Mac OS X and how to connect to irc.telecomix.i2p.
|
||||||
By <a href="http://telecomix.org/">Telecomix</a>
|
By <a href="http://telecomix.org/">Telecomix</a>
|
||||||
</li>
|
{%- endtrans %}</li>
|
||||||
|
|
||||||
<li>
|
<li>{% trans link='http://www.youtube.com/watch?v=5jv7tVVJdTQ' -%}
|
||||||
<a href="http://www.youtube.com/watch?v=5jv7tVVJdTQ">Felix Atari explains the basic principles of I2P</a>
|
<a href="{{ link }}">Felix Atari explains the basic principles of I2P</a>
|
||||||
(Youtube Video)
|
(Youtube Video)
|
||||||
Agent Felix Atari of the Telecomix Crypto Munitions Bureau.
|
Agent Felix Atari of the Telecomix Crypto Munitions Bureau.
|
||||||
By <a href="http://telecomix.org/">Telecomix</a>
|
By <a href="http://telecomix.org/">Telecomix</a>
|
||||||
</li>
|
{%- endtrans %}</li>
|
||||||
|
|
||||||
<li>
|
<li>{% trans link='http://www.youtube.com/watch?v=WyN_QK-_3GA' -%}
|
||||||
<a href="http://www.youtube.com/watch?v=WyN_QK-_3GA">How to get onto I2P, the anonymous P2P Darknet (Windows Install)</a>
|
<a href="{{ link }}">How to get onto I2P, the anonymous P2P Darknet (Windows Install)</a>
|
||||||
(Youtube Video)
|
(Youtube Video)
|
||||||
This tutorial shows how to install and configure software needed to access I2P.
|
This tutorial shows how to install and configure software needed to access I2P.
|
||||||
</li>
|
{%- endtrans %}</li>
|
||||||
|
|
||||||
<li>
|
<li>{% trans link='http://www.youtube.com/watch?v=q4owyd_CaGc' -%}
|
||||||
<a href="http://www.youtube.com/watch?v=q4owyd_CaGc">How to connect to I2P</a>
|
<a href="{{ link }}">How to connect to I2P</a>
|
||||||
(Youtube Video)
|
(Youtube Video)
|
||||||
How to install I2P on Ubuntu.
|
How to install I2P on Ubuntu.
|
||||||
</li>
|
{%- endtrans %}</li>
|
||||||
|
|
||||||
<li>
|
<li>{% trans link='http://www.irongeek.com/i.php?page=videos/i2p-darknet-software-in-linux' -%}
|
||||||
<a href="http://www.irongeek.com/i.php?page=videos/i2p-darknet-software-in-linux">Installing the I2P darknet software in Linux</a>
|
<a href="{{ link }}">Installing the I2P darknet software in Linux</a>
|
||||||
(Video)
|
(Video)
|
||||||
Adrian Crenshaw.
|
Adrian Crenshaw.
|
||||||
January 2011
|
January 2011
|
||||||
</li>
|
{%- endtrans %}</li>
|
||||||
|
|
||||||
<li>
|
<li>{% trans link='http://www.youtube.com/watch?v=NV90TRs_pGE' -%}
|
||||||
<a href="http://www.youtube.com/watch?v=NV90TRs_pGE">Short garlic routing animation</a>
|
<a href="{{ link }}">Short garlic routing animation</a>
|
||||||
(Youtube Video)
|
(Youtube Video)
|
||||||
Adrian Crenshaw.
|
Adrian Crenshaw.
|
||||||
</li>
|
{% endtrans %}</li>
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<h2>Articles and Interviews</h2>
|
<h2>{{ _('Articles and Interviews') }}</h2>
|
||||||
<ul>
|
<ul>
|
||||||
|
|
||||||
<li>
|
<li>{% trans link1='http://invisibleip.sourceforge.net/iip/mediaDCInterview1.php',
|
||||||
|
link2='http://invisibleip.sourceforge.net/iip/mediaDCInterview2.php' -%}
|
||||||
0x90 Interviewed by DistributedCity
|
0x90 Interviewed by DistributedCity
|
||||||
<a href="http://invisibleip.sourceforge.net/iip/mediaDCInterview1.php">Part 1</a>
|
<a href="{{ link1 }}">Part 1</a>
|
||||||
<a href="http://invisibleip.sourceforge.net/iip/mediaDCInterview2.php">Part 2</a>
|
<a href="{{ link2 }}">Part 2</a>
|
||||||
July 26, 2002.
|
July 26, 2002.
|
||||||
</li>
|
{%- endtrans %}</li>
|
||||||
|
|
||||||
<li>
|
<li>{% trans link='http://invisibleip.sourceforge.net/iip/resources/elpais-iip.txt' -%}
|
||||||
0x90 Interviewed by El Pais
|
0x90 Interviewed by El Pais
|
||||||
(original in Spanish)
|
(original in Spanish)
|
||||||
<a href="http://invisibleip.sourceforge.net/iip/resources/elpais-iip.txt">English translation</a>
|
<a href="{{ link }}">English translation</a>
|
||||||
October 31, 2002.
|
October 31, 2002.
|
||||||
</li>
|
{%- endtrans %}</li>
|
||||||
|
|
||||||
<li>
|
<li>{% trans link='http://www.businessweek.com/magazine/content/03_37/b3849089_mz063.htm' -%}
|
||||||
<a href="http://www.businessweek.com/magazine/content/03_37/b3849089_mz063.htm">2003 Business Week article referencing invisiblenet</a>
|
<a href="{{ link }}">2003 Business Week article referencing invisiblenet</a>
|
||||||
</li>
|
{%- endtrans %}</li>
|
||||||
|
|
||||||
<li>
|
<li>{% trans link='http://www.netzwelt.de/news/75371-i2p-das-anonyme-netz-im.html' -%}
|
||||||
<a href="http://www.netzwelt.de/news/75371-i2p-das-anonyme-netz-im.html">Netzwelt.de article about being anonymous in the Internet</a>
|
<a href="{{ link }}">Netzwelt.de article about being anonymous in the Internet</a>
|
||||||
(German)
|
(German)
|
||||||
November 2007.
|
November 2007.
|
||||||
</li>
|
{%- endtrans %}</li>
|
||||||
|
|
||||||
<li>
|
<li>{% trans link='http://www.gulli.com/news/i2p-an-anonymous-network-2009-03-09/',
|
||||||
<a href="http://www.gulli.com/news/i2p-an-anonymous-network-2009-03-09/">zzz interviewed by gulli.com</a>
|
german='http://www.gulli.com/news/i2p-anonymes-netzwerk-im-2009-03-09/',
|
||||||
|
russian='http://translated.by/you/i2p-an-anonymous-network-interrogated/into-ru/' -%}
|
||||||
|
<a href="{{ link }}">zzz interviewed by gulli.com</a>
|
||||||
March 2009
|
March 2009
|
||||||
<a href="http://www.gulli.com/news/i2p-anonymes-netzwerk-im-2009-03-09/">German translation</a>
|
<a href="{{ german }}">German translation</a>
|
||||||
<a href="http://translated.by/you/i2p-an-anonymous-network-interrogated/into-ru/">Russian translation</a>
|
<a href="{{ russian }}">Russian translation</a>
|
||||||
</li>
|
{%- endtrans %}</li>
|
||||||
|
|
||||||
<li>
|
<li>{% trans mp3='http://www.isdpodcast.com/podcasts/infosec-daily-podcast-episode-454.mp3' -%}
|
||||||
<a href="http://www.isdpodcast.com/podcasts/infosec-daily-podcast-episode-454.mp3">zzz interviewed on the InfoSec Daily Podcast Ep. 454 (mp3)</a>
|
<a href="{{ mp3 }}">zzz interviewed on the InfoSec Daily Podcast Ep. 454 (mp3)</a>
|
||||||
August 18, 2011
|
August 18, 2011
|
||||||
</li>
|
{%- endtrans %}</li>
|
||||||
|
|
||||||
<li>
|
<li>{% trans link='http://how-to.linuxcareer.com/i2p-anonymity-for-the-masses' -%}
|
||||||
<a href="http://how-to.linuxcareer.com/i2p-anonymity-for-the-masses">I2P - Anonymity for the Masses</a>,
|
<a href="{{ link }}">I2P - Anonymity for the Masses</a>,
|
||||||
Jonathan Cox,
|
Jonathan Cox,
|
||||||
November 11, 2011.
|
November 11, 2011.
|
||||||
</li>
|
{%- endtrans %}</li>
|
||||||
|
|
||||||
<li>
|
<li>{% trans mp3='http://www.isdpodcast.com/podcasts/infosec-daily-podcast-episode-596.mp3' -%}
|
||||||
<a href="http://www.isdpodcast.com/podcasts/infosec-daily-podcast-episode-596.mp3">zzz and Lance James interviewed on the InfoSec Daily Podcast Ep. 596 (mp3)</a>
|
<a href="{{ mp3 }}">zzz and Lance James interviewed on the InfoSec Daily Podcast Ep. 596 (mp3)</a>
|
||||||
February 16, 2012
|
February 16, 2012
|
||||||
</li>
|
{%- endtrans %}</li>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
@@ -1,38 +1,47 @@
|
|||||||
{% extends "global/layout.html" %}
|
{% extends "global/layout.html" %}
|
||||||
{% block title %}Future Performance Improvements{% endblock %}
|
{% block title %}{{ _('Future Performance Improvements') }}{% endblock %}
|
||||||
{% block content %}
|
{% block content %}
|
||||||
Updated August 2010, current as of router version 0.8
|
{% block lastupdated %}{{ _('August 2010') }}{% endblock %}
|
||||||
|
{% block accuratefor %}0.8{% endblock %}
|
||||||
|
|
||||||
<p>There are a few major techniques that can be done to improve the perceived
|
<p>{% trans -%}
|
||||||
|
There are a few major techniques that can be done to improve the perceived
|
||||||
performance of I2P - some of the following are CPU related, others bandwidth
|
performance of I2P - some of the following are CPU related, others bandwidth
|
||||||
related, and others still are protocol related. However, all of those
|
related, and others still are protocol related. However, all of those
|
||||||
dimensions affect the latency, throughput, and perceived performance of the
|
dimensions affect the latency, throughput, and perceived performance of the
|
||||||
network, as they reduce contention for scarce resources. This list is of course
|
network, as they reduce contention for scarce resources. This list is of course
|
||||||
not comprehensive, but it does cover the major ones that are seen.</p>
|
not comprehensive, but it does cover the major ones that are seen.
|
||||||
<p>For past performance improvements see the <a href="{{ site_url('about/performance/history') }}">
|
{%- endtrans %}</p>
|
||||||
|
<p>{% trans history=site_url('about/performance/history') -%}
|
||||||
|
For past performance improvements see the <a href="{{ history }}">
|
||||||
Performance History</a>.
|
Performance History</a>.
|
||||||
|
{%- endtrans %}</p>
|
||||||
|
|
||||||
<h2>Better peer profiling and selection</h2>
|
<h2>{{ _('Better peer profiling and selection') }}</h2>
|
||||||
<p>Probably one of the most important parts of getting faster performance will
|
<p>{% trans sybilpdf='http://www.cs.rice.edu/Conferences/IPTPS02/101.pdf'-%}
|
||||||
|
Probably one of the most important parts of getting faster performance will
|
||||||
be improving how routers choose the peers that they build their tunnels through
|
be improving how routers choose the peers that they build their tunnels through
|
||||||
- making sure they don't use peers with slow links or ones with fast links that
|
- making sure they don't use peers with slow links or ones with fast links that
|
||||||
are overloaded, etc. In addition, we've got to make sure we don't expose
|
are overloaded, etc. In addition, we've got to make sure we don't expose
|
||||||
ourselves to a
|
ourselves to a <a href="{{ sybilpdf }}">Sybil</a> attack
|
||||||
<a href="http://www.cs.rice.edu/Conferences/IPTPS02/101.pdf">Sybil</a> attack
|
from a powerful adversary with lots of fast machines.
|
||||||
from a powerful adversary with lots of fast machines. </p>
|
{%- endtrans %}</p>
|
||||||
|
|
||||||
<h2>Network database tuning</h2>
|
<h2>{{ _('Network database tuning') }}</h2>
|
||||||
<p>We're going to want to be more efficient with the network database's healing
|
<p>{% trans -%}
|
||||||
|
We're going to want to be more efficient with the network database's healing
|
||||||
and maintenance algorithms - rather than constantly explore the keyspace for new
|
and maintenance algorithms - rather than constantly explore the keyspace for new
|
||||||
peers - causing a significant number of network messages and router load - we
|
peers - causing a significant number of network messages and router load - we
|
||||||
can slow down or even stop exploring until we detect that there's something new
|
can slow down or even stop exploring until we detect that there's something new
|
||||||
worth finding (e.g. decay the exploration rate based upon the last time someone
|
worth finding (e.g. decay the exploration rate based upon the last time someone
|
||||||
gave us a reference to someone we had never heard of). We can also do some
|
gave us a reference to someone we had never heard of). We can also do some
|
||||||
tuning on what we actually send - how many peers we bounce back (or even if we
|
tuning on what we actually send - how many peers we bounce back (or even if we
|
||||||
bounce back a reply), as well as how many concurrent searches we perform.</p>
|
bounce back a reply), as well as how many concurrent searches we perform.
|
||||||
|
{%- endtrans %}</p>
|
||||||
|
|
||||||
<h2>Session Tag Tuning and Improvements</h2>
|
<h2>{{ _('Session Tag Tuning and Improvements') }}</h2>
|
||||||
<p>The way the <a href="{{ site_url('docs/how/elgamalaes') }}">ElGamal/AES+SessionTag</a> algorithm
|
<p>{% trans elgamalaes=site_url('docs/how/elgamal-aes') -%}
|
||||||
|
The way the <a href="{{ elgamalaes }}">ElGamal/AES+SessionTag</a> algorithm
|
||||||
works is by managing a set of random one-time-use 32 byte arrays, and expiring
|
works is by managing a set of random one-time-use 32 byte arrays, and expiring
|
||||||
them if they aren't used quickly enough. If we expire them too soon, we're
|
them if they aren't used quickly enough. If we expire them too soon, we're
|
||||||
forced to fall back on a full (expensive) ElGamal encryption, but if we don't
|
forced to fall back on a full (expensive) ElGamal encryption, but if we don't
|
||||||
@@ -41,15 +50,17 @@ run out of memory (and if the recipient somehow gets corrupted and loses some
|
|||||||
tags, even more encryption failures may occur prior to detection). With some
|
tags, even more encryption failures may occur prior to detection). With some
|
||||||
more active detection and feedback driven algorithms, we can safely and more
|
more active detection and feedback driven algorithms, we can safely and more
|
||||||
efficiently tune the lifetime of the tags, replacing the ElGamal encryption with
|
efficiently tune the lifetime of the tags, replacing the ElGamal encryption with
|
||||||
a trivial AES operation.</p>
|
a trivial AES operation.
|
||||||
<p>
|
{%- endtrans %}</p>
|
||||||
|
<p>{% trans elgamalaes=site_url('docs/how/elgamal-aes') -%}
|
||||||
Additional ideas for improving Session Tag delivery are described on the
|
Additional ideas for improving Session Tag delivery are described on the
|
||||||
<a href="{{ site_url('docs/how/elgamalaes') }}#future">ElGamal/AES+SessionTag page</a>.
|
<a href="{{ elgamalaes }}#future">ElGamal/AES+SessionTag page</a>.
|
||||||
</p>
|
{%- endtrans %}</p>
|
||||||
|
|
||||||
|
|
||||||
<h2 id="prng">Migrate sessionTag to synchronized PRNG</h2>
|
<h2 id="prng">{{ _('Migrate sessionTag to synchronized PRNG') }}</h2>
|
||||||
<p>Right now, our <a href="{{ site_url('docs/how/elgamalaes') }}">ElGamal/AES+SessionTag</a>
|
<p>{% trans elgamalaes=site_url('docs/how/elgamal-aes') -%}
|
||||||
|
Right now, our <a href="{{ elgamalaes }}">ElGamal/AES+SessionTag</a>
|
||||||
algorithm works by tagging each encrypted message with a unique random
|
algorithm works by tagging each encrypted message with a unique random
|
||||||
32 byte nonce (a "session tag"), identifying that message as being encrypted
|
32 byte nonce (a "session tag"), identifying that message as being encrypted
|
||||||
with the associated AES session's key. This prevents peers from distinguishing
|
with the associated AES session's key. This prevents peers from distinguishing
|
||||||
@@ -58,8 +69,10 @@ new random tag. To accomplish this, every few messages bundle a whole
|
|||||||
new set of session tags within the encrypted message itself, transparently
|
new set of session tags within the encrypted message itself, transparently
|
||||||
delivering a way to identify future messages. We then have to keep track
|
delivering a way to identify future messages. We then have to keep track
|
||||||
of what messages are successfully delivered so that we know what tags
|
of what messages are successfully delivered so that we know what tags
|
||||||
we may use.</p>
|
we may use.
|
||||||
<p>This works fine and is fairly robust, however it is inefficient in terms
|
{%- endtrans %}</p>
|
||||||
|
<p>{% trans -%}
|
||||||
|
This works fine and is fairly robust, however it is inefficient in terms
|
||||||
of bandwidth usage, as it requires the delivery of these tags ahead of
|
of bandwidth usage, as it requires the delivery of these tags ahead of
|
||||||
time (and not all tags may be necessary, or some may be wasted, due to
|
time (and not all tags may be necessary, or some may be wasted, due to
|
||||||
their expiration). On average though, predelivering the session tag costs
|
their expiration). On average though, predelivering the session tag costs
|
||||||
@@ -68,53 +81,77 @@ size can be avoided by replacing the delivery of the tags with a synchronized
|
|||||||
PRNG - when a new session is established (through an ElGamal encrypted
|
PRNG - when a new session is established (through an ElGamal encrypted
|
||||||
block), both sides seed a PRNG for use and generate the session tags on
|
block), both sides seed a PRNG for use and generate the session tags on
|
||||||
demand (with the recipient precalculating the next few possible values
|
demand (with the recipient precalculating the next few possible values
|
||||||
to handle out of order delivery).</p>
|
to handle out of order delivery).
|
||||||
|
{%- endtrans %}</p>
|
||||||
|
|
||||||
<h2>Longer lasting tunnels</h2>
|
<h2>{{ _('Longer lasting tunnels') }}</h2>
|
||||||
<p>The current default tunnel duration of 10 minutes is fairly arbitrary, though
|
<p>{% trans -%}
|
||||||
|
The current default tunnel duration of 10 minutes is fairly arbitrary, though
|
||||||
it "feels okay". Once we've got tunnel healing code and more effective failure
|
it "feels okay". Once we've got tunnel healing code and more effective failure
|
||||||
detection, we'll be able to more safely vary those durations, reducing the
|
detection, we'll be able to more safely vary those durations, reducing the
|
||||||
network and CPU load (due to expensive tunnel creation messages).</p>
|
network and CPU load (due to expensive tunnel creation messages).
|
||||||
|
{%- endtrans %}</p>
|
||||||
|
|
||||||
<p>
|
<p>{% trans -%}
|
||||||
This appears to be an easy fix for high load on the big-bandwidth routers, but
|
This appears to be an easy fix for high load on the big-bandwidth routers, but
|
||||||
we should not resort to it until we've tuned the tunnel building algorithms further.
|
we should not resort to it until we've tuned the tunnel building algorithms further.
|
||||||
However, the 10 minute tunnel lifetime is hardcoded in quite a few places,
|
However, the 10 minute tunnel lifetime is hardcoded in quite a few places,
|
||||||
so substantial effort would be required to change the duration.
|
so substantial effort would be required to change the duration.
|
||||||
Also, it would be difficult to maintain backward compatibility with such a change.
|
Also, it would be difficult to maintain backward compatibility with such a change.
|
||||||
</p><p>
|
{%- endtrans %}</p>
|
||||||
|
<p>{% trans -%}
|
||||||
Currently, since the network average tunnel build success rate is fairly high,
|
Currently, since the network average tunnel build success rate is fairly high,
|
||||||
there are no current plans to extend tunnel lifetime.
|
there are no current plans to extend tunnel lifetime.
|
||||||
</p>
|
{%- endtrans %}</p>
|
||||||
|
|
||||||
|
|
||||||
<h2>Adjust the timeouts</h2>
|
<h2>{{ _('Adjust the timeouts') }}</h2>
|
||||||
<p>Yet another of the fairly arbitrary but "okay feeling" things we've got are the
|
<p>{% trans -%}
|
||||||
|
Yet another of the fairly arbitrary but "okay feeling" things we've got are the
|
||||||
current timeouts for various activities. Why do we have a 60 second "peer
|
current timeouts for various activities. Why do we have a 60 second "peer
|
||||||
unreachable" timeout? Why do we try sending through a different tunnel that a
|
unreachable" timeout? Why do we try sending through a different tunnel that a
|
||||||
LeaseSet advertises after 10 seconds? Why are the network database queries
|
LeaseSet advertises after 10 seconds? Why are the network database queries
|
||||||
bounded by 60 or 20 second limits? Why are destinations configured to ask for a
|
bounded by 60 or 20 second limits? Why are destinations configured to ask for a
|
||||||
new set of tunnels every 10 minutes? Why do we allow 60 seconds for a peer to
|
new set of tunnels every 10 minutes? Why do we allow 60 seconds for a peer to
|
||||||
reply to our request that they join a tunnel? Why do we consider a tunnel that
|
reply to our request that they join a tunnel? Why do we consider a tunnel that
|
||||||
doesn't pass our test within 60 seconds "dead"?</p>
|
doesn't pass our test within 60 seconds "dead"?
|
||||||
<p>Each of those imponderables can be addressed with more adaptive code, as well
|
{%- endtrans %}</p>
|
||||||
|
<p>{% trans -%}
|
||||||
|
Each of those imponderables can be addressed with more adaptive code, as well
|
||||||
as tunable parameters to allow for more appropriate tradeoffs between
|
as tunable parameters to allow for more appropriate tradeoffs between
|
||||||
bandwidth, latency, and CPU usage.</p>
|
bandwidth, latency, and CPU usage.
|
||||||
|
{%- endtrans %}</p>
|
||||||
|
|
||||||
<h2>Full streaming protocol improvements</h2>
|
<h2>{{ _('Full streaming protocol improvements') }}</h2>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Perhaps re-enable the interactive stream profile (the
|
<li>
|
||||||
current implementation only uses the bulk stream profile).</li>
|
{% trans -%}
|
||||||
<li>Client level bandwidth limiting (in either or both directions on a stream,
|
Perhaps re-enable the interactive stream profile (the
|
||||||
or possibly shared across multiple streams). This would be in addition to
|
current implementation only uses the bulk stream profile).
|
||||||
the router's overall bandwidth limiting, of course.</li>
|
{%- endtrans %}
|
||||||
<li>Access control lists (only allowing streams to or from certain other known
|
</li>
|
||||||
destinations).</li>
|
<li>
|
||||||
<li>Web controls and monitoring the health of the various streams, as well
|
{% trans -%}
|
||||||
as the ability to explicitly close or throttle them.</li>
|
Client level bandwidth limiting (in either or both directions on a stream,
|
||||||
|
or possibly shared across multiple streams). This would be in addition to
|
||||||
|
the router's overall bandwidth limiting, of course.
|
||||||
|
{%- endtrans %}
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
{% trans -%}
|
||||||
|
Access control lists (only allowing streams to or from certain other known
|
||||||
|
destinations).
|
||||||
|
{%- endtrans %}
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
{% trans -%}
|
||||||
|
Web controls and monitoring the health of the various streams, as well
|
||||||
|
as the ability to explicitly close or throttle them.
|
||||||
|
{%- endtrans %}
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<p>
|
<p>{% trans streaming=site_url('docs/api/streaming') -%}
|
||||||
Additional ideas for improving the streaming library are described on the
|
Additional ideas for improving the streaming library are described on the
|
||||||
<a href="{{ site_url('docs/api/streaming') }}#future">streaming library page</a>.
|
<a href="{{ streaming }}#future">streaming library page</a>.
|
||||||
</p>
|
{%- endtrans %}</p>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
@@ -1,30 +1,42 @@
|
|||||||
{% extends "global/layout.html" %}
|
{% extends "global/layout.html" %}
|
||||||
{% block title %}Performance History{% endblock %}
|
{% block title %}{{ _('Performance History') }}{% endblock %}
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<p>Notable performance improvements have been made using the techniques below.
|
<p>{% trans performance=site_url('about/performance') -%}
|
||||||
There is more to do, see the <a href="{{ site_url('about/performance') }}">Performance</a> page
|
Notable performance improvements have been made using the techniques below.
|
||||||
for current issues and thoughts.</p>
|
There is more to do, see the <a href="{{ performance }}">Performance</a> page
|
||||||
|
for current issues and thoughts.
|
||||||
|
{%- endtrans %}</p>
|
||||||
|
|
||||||
<h2>Native math <b>[implemented]</b></h2>
|
<h2>{{ _('Native math') }}</h2>
|
||||||
<p>When I last profiled the I2P code, the vast majority of time was spent within
|
<b>[{{ _('implemented') }}]</b>
|
||||||
|
<p>{% trans modpow='http://java.sun.com/j2se/1.4.2/docs/api/java/math/BigInteger.html#modPow(java.math.BigInteger,%20java.math.BigInteger)',
|
||||||
|
jbigi=site_url('misc/jbigi') -%}
|
||||||
|
When I last profiled the I2P code, the vast majority of time was spent within
|
||||||
one function: java.math.BigInteger's
|
one function: java.math.BigInteger's
|
||||||
<a href="http://java.sun.com/j2se/1.4.2/docs/api/java/math/BigInteger.html#modPow(java.math.BigInteger,%20java.math.BigInteger)">modPow</a>.
|
<a href="{{ modpow }}">modPow</a>.
|
||||||
Rather than try to tune this method, we'll call out to
|
Rather than try to tune this method, we'll call out to
|
||||||
<a href="http://www.swox.com/gmp/">GNU MP</a> - an insanely fast math library
|
<a href="http://www.swox.com/gmp/">GNU MP</a> - an insanely fast math library
|
||||||
(with tuned assembler for many architectures). (<i>Editor: see
|
(with tuned assembler for many architectures). (<i>Editor: see
|
||||||
<a href="jbigi">NativeBigInteger for faster public key cryptography</a></i>)</p>
|
<a href="{{ jbigi }}">NativeBigInteger for faster public key cryptography</a></i>)
|
||||||
<p>ugha and duck are working on the C/JNI glue code, and the existing java code
|
{%- endtrans %}</p>
|
||||||
|
<p>{% trans %}
|
||||||
|
ugha and duck are working on the C/JNI glue code, and the existing java code
|
||||||
is already deployed with hooks for that whenever its ready. Preliminary results
|
is already deployed with hooks for that whenever its ready. Preliminary results
|
||||||
look fantastic - running the router with the native GMP modPow is providing over
|
look fantastic - running the router with the native GMP modPow is providing over
|
||||||
a 800% speedup in encryption performance, and the load was cut in half. This
|
a 800% speedup in encryption performance, and the load was cut in half. This
|
||||||
was just on one user's machine, and things are nowhere near ready for packaging
|
was just on one user's machine, and things are nowhere near ready for packaging
|
||||||
and deployment, yet.</p>
|
and deployment, yet.
|
||||||
|
{%- endtrans %}</p>
|
||||||
|
|
||||||
<h2>Garlic wrapping a "reply" LeaseSet <b>[implemented but needs tuning]</b></h2>
|
<h2>{% trans %}Garlic wrapping a "reply" LeaseSet{% endtrans %}</h2>
|
||||||
<p>This algorithm tweak will only be relevant for applications that want their
|
<b>[{{ _('implemented but needs tuning') }}]</b>
|
||||||
|
<p>{% trans -%}
|
||||||
|
This algorithm tweak will only be relevant for applications that want their
|
||||||
peers to reply to them (though that includes everything that uses I2PTunnel or
|
peers to reply to them (though that includes everything that uses I2PTunnel or
|
||||||
mihi's ministreaming lib):</p>
|
mihi's ministreaming lib):
|
||||||
<p>Previously, when Alice sent Bob a message, when Bob replied he had to do a
|
{%- endtrans %}</p>
|
||||||
|
<p>{% trans -%}
|
||||||
|
Previously, when Alice sent Bob a message, when Bob replied he had to do a
|
||||||
lookup in the network database - sending out a few requests to get Alice's
|
lookup in the network database - sending out a few requests to get Alice's
|
||||||
current LeaseSet. If he already has Alice's current LeaseSet, he can instead
|
current LeaseSet. If he already has Alice's current LeaseSet, he can instead
|
||||||
just send his reply immediately - this is (part of) why it typically takes a
|
just send his reply immediately - this is (part of) why it typically takes a
|
||||||
@@ -36,20 +48,24 @@ stored - completely removing any need for a network database lookup on replies.
|
|||||||
This trades off a large portion of the sender's bandwidth for that faster reply.
|
This trades off a large portion of the sender's bandwidth for that faster reply.
|
||||||
If we didn't do this very often,
|
If we didn't do this very often,
|
||||||
overall network bandwidth usage would decrease, since the recipient doesn't
|
overall network bandwidth usage would decrease, since the recipient doesn't
|
||||||
have to do the network database lookup.</p>
|
have to do the network database lookup.
|
||||||
<p>
|
{%- endtrans %}</p>
|
||||||
|
<p>{% trans -%}
|
||||||
For unpublished LeaseSets such as "shared clients", this is the only way to
|
For unpublished LeaseSets such as "shared clients", this is the only way to
|
||||||
get the LeaseSet to Bob. Unfortunately this bundling every time adds
|
get the LeaseSet to Bob. Unfortunately this bundling every time adds
|
||||||
almost 100% overhead to a high-bandwidth connection, and much more to
|
almost 100% overhead to a high-bandwidth connection, and much more to
|
||||||
a connection with smaller messages.
|
a connection with smaller messages.
|
||||||
</p><p>
|
{%- endtrans %}</p>
|
||||||
|
<p>{% trans -%}
|
||||||
Changes scheduled for release 0.6.2 will bundle the LeaseSet only when
|
Changes scheduled for release 0.6.2 will bundle the LeaseSet only when
|
||||||
necessary, at the beginning of a connection or when the LeaseSet changes.
|
necessary, at the beginning of a connection or when the LeaseSet changes.
|
||||||
This will substantially reduce the total overhead of I2P messaging.
|
This will substantially reduce the total overhead of I2P messaging.
|
||||||
</p>
|
{%- endtrans %}</p>
|
||||||
|
|
||||||
<h2>More efficient TCP rejection <b>[implemented]</b></h2>
|
<h2>{{ _('More efficient TCP rejection') }}</h2>
|
||||||
<p>At the moment, all TCP connections do all of their peer validation after
|
<b>[{{ _('implemented') }}]</b>
|
||||||
|
<p>{% trans -%}
|
||||||
|
At the moment, all TCP connections do all of their peer validation after
|
||||||
going through the full (expensive) Diffie-Hellman handshaking to negotiate a
|
going through the full (expensive) Diffie-Hellman handshaking to negotiate a
|
||||||
private session key. This means that if someone's clock is really wrong, or
|
private session key. This means that if someone's clock is really wrong, or
|
||||||
their NAT/firewall/etc is improperly configured (or they're just running an
|
their NAT/firewall/etc is improperly configured (or they're just running an
|
||||||
@@ -58,37 +74,49 @@ constantly, thanks to the shitlist) cause a futile expensive cryptographic
|
|||||||
operation on all the peers they know about. While we will want to keep some
|
operation on all the peers they know about. While we will want to keep some
|
||||||
verification/validation within the encryption boundary, we'll want to update the
|
verification/validation within the encryption boundary, we'll want to update the
|
||||||
protocol to do some of it first, so that we can reject them cleanly
|
protocol to do some of it first, so that we can reject them cleanly
|
||||||
without wasting much CPU or other resources.</p>
|
without wasting much CPU or other resources.
|
||||||
|
{%- endtrans %}</p>
|
||||||
|
|
||||||
<h2>Adjust the tunnel testing <b>[implemented]</b></h2>
|
<h2>{{ _('Adjust the tunnel testing') }}</h2>
|
||||||
<p>Rather than going with the fairly random scheme we have now, we should use a
|
<b>[{{ _('implemented') }}]</b>
|
||||||
|
<p>{% trans -%}
|
||||||
|
Rather than going with the fairly random scheme we have now, we should use a
|
||||||
more context aware algorithm for testing tunnels. e.g. if we already know its
|
more context aware algorithm for testing tunnels. e.g. if we already know its
|
||||||
passing valid data correctly, there's no need to test it, while if we haven't
|
passing valid data correctly, there's no need to test it, while if we haven't
|
||||||
seen any data through it recently, perhaps its worthwhile to throw some data its
|
seen any data through it recently, perhaps its worthwhile to throw some data its
|
||||||
way. This will reduce the tunnel contention due to excess messages, as well as
|
way. This will reduce the tunnel contention due to excess messages, as well as
|
||||||
improve the speed at which we detect - and address - failing tunnels.</p>
|
improve the speed at which we detect - and address - failing tunnels.
|
||||||
|
{%- endtrans %}</p>
|
||||||
|
|
||||||
<h2>Persistent Tunnel / Lease Selection</h2>
|
<h2>{{ _('Persistent Tunnel / Lease Selection') }}</h2>
|
||||||
<p>Outbound tunnel selection implemented in 0.6.1.30, inbound lease selection
|
<p>{% trans -%}
|
||||||
implemented in release 0.6.2.</p>
|
Outbound tunnel selection implemented in 0.6.1.30, inbound lease selection
|
||||||
<p>Selecting tunnels and leases at random for every message creates a large
|
implemented in release 0.6.2.
|
||||||
|
{%- endtrans %}</p>
|
||||||
|
<p>{% trans -%}
|
||||||
|
Selecting tunnels and leases at random for every message creates a large
|
||||||
incidence of out-of-order delivery, which prevents the streaming lib from
|
incidence of out-of-order delivery, which prevents the streaming lib from
|
||||||
increasing its window size as much as it could. By persisting with the
|
increasing its window size as much as it could. By persisting with the
|
||||||
same selections for a given connection, the transfer rate is much faster.
|
same selections for a given connection, the transfer rate is much faster.
|
||||||
</p>
|
{%- endtrans %}</p>
|
||||||
|
|
||||||
<h2>Compress some data structures <b>[implemented]</b></h2>
|
<h2>{{ _('Compress some data structures') }}</h2>
|
||||||
<p>The I2NP messages and the data they contain is already defined in a fairly
|
<b>[{{ _('implemented') }}]</b>
|
||||||
|
<p>{% trans -%}
|
||||||
|
The I2NP messages and the data they contain is already defined in a fairly
|
||||||
compact structure, though one attribute of the RouterInfo structure is not -
|
compact structure, though one attribute of the RouterInfo structure is not -
|
||||||
"options" is a plain ASCII name = value mapping. Right now, we're filling it
|
"options" is a plain ASCII name = value mapping. Right now, we're filling it
|
||||||
with those published statistics - around 3300 bytes per peer. Trivial to
|
with those published statistics - around 3300 bytes per peer. Trivial to
|
||||||
implement GZip compression would nearly cut that to 1/3 its size, and when you
|
implement GZip compression would nearly cut that to 1/3 its size, and when you
|
||||||
consider how often RouterInfo structures are passed across the network, that's
|
consider how often RouterInfo structures are passed across the network, that's
|
||||||
significant savings - every time a router asks another router for a networkDb
|
significant savings - every time a router asks another router for a networkDb
|
||||||
entry that the peer doesn't have, it sends back 3-10 RouterInfo of them.</p>
|
entry that the peer doesn't have, it sends back 3-10 RouterInfo of them.
|
||||||
|
{%- endtrans %}</p>
|
||||||
|
|
||||||
<h2>Update the ministreaming protocol</h2> [replaced by full streaming protocol]
|
<h2>{{ _('Update the ministreaming protocol') }}</h2>
|
||||||
<p>Currently mihi's ministreaming library has a fairly simple stream negotiation
|
<b>[{{ _('replaced by full streaming protocol') }}]</b>
|
||||||
|
<p>{% trans -%}
|
||||||
|
Currently mihi's ministreaming library has a fairly simple stream negotiation
|
||||||
protocol - Alice sends Bob a SYN message, Bob replies with an ACK message, then
|
protocol - Alice sends Bob a SYN message, Bob replies with an ACK message, then
|
||||||
Alice and Bob send each other some data, until one of them sends the other a
|
Alice and Bob send each other some data, until one of them sends the other a
|
||||||
CLOSE message. For long lasting connections (to an IRC server, for instance),
|
CLOSE message. For long lasting connections (to an IRC server, for instance),
|
||||||
@@ -97,22 +125,27 @@ that overhead is negligible, but for simple one-off request/response situations
|
|||||||
necessary. If, however, Alice piggybacked her first payload in with the SYN
|
necessary. If, however, Alice piggybacked her first payload in with the SYN
|
||||||
message, and Bob piggybacked his first reply with the ACK - and perhaps also
|
message, and Bob piggybacked his first reply with the ACK - and perhaps also
|
||||||
included the CLOSE flag - transient streams such as HTTP requests could be
|
included the CLOSE flag - transient streams such as HTTP requests could be
|
||||||
reduced to a pair of messages, instead of the SYN+ACK+request+response+CLOSE.</p>
|
reduced to a pair of messages, instead of the SYN+ACK+request+response+CLOSE.
|
||||||
|
{%- endtrans %}</p>
|
||||||
|
|
||||||
<h2>Implement full streaming protocol</h2> [<a href="{{ site_url('docs/api/streaming') }}">implemented</a>]
|
<h2>{{ _('Implement full streaming protocol') }}</h2>
|
||||||
<p>The ministreaming protocol takes advantage of a poor design decision in the
|
<b>[<a href="{{ site_url('docs/api/streaming') }}">{{ _('implemented') }}</a>]</b>
|
||||||
|
<p>{% trans -%}
|
||||||
|
The ministreaming protocol takes advantage of a poor design decision in the
|
||||||
I2P client protocol (I2CP) - the exposure of "mode=GUARANTEED", allowing what
|
I2P client protocol (I2CP) - the exposure of "mode=GUARANTEED", allowing what
|
||||||
would otherwise be an unreliable, best-effort, message based protocol to be used
|
would otherwise be an unreliable, best-effort, message based protocol to be used
|
||||||
for reliable, blocking operation (under the covers, its still all unreliable and
|
for reliable, blocking operation (under the covers, its still all unreliable and
|
||||||
message based, with the router providing delivery guarantees by garlic wrapping
|
message based, with the router providing delivery guarantees by garlic wrapping
|
||||||
an "ACK" message in with the payload, so once the data gets to the target, the
|
an "ACK" message in with the payload, so once the data gets to the target, the
|
||||||
ACK message is forwarded back to us [through tunnels, of course]).</p>
|
ACK message is forwarded back to us [through tunnels, of course]).
|
||||||
<p>As I've
|
{%- endtrans %}</p>
|
||||||
<a href="http://dev.i2p.net/pipermail/i2p/2004-March/000167.html">said</a>, having
|
<p>{% trans link='http://dev.i2p.net/pipermail/i2p/2004-March/000167.html' -%}
|
||||||
|
As I've <a href="{{ link }}">said</a>, having
|
||||||
I2PTunnel (and the ministreaming lib) go this route was the best thing that
|
I2PTunnel (and the ministreaming lib) go this route was the best thing that
|
||||||
could be done, but more efficient mechanisms are available. When we rip out the
|
could be done, but more efficient mechanisms are available. When we rip out the
|
||||||
"mode=GUARANTEED" functionality, we're essentially leaving ourselves with an
|
"mode=GUARANTEED" functionality, we're essentially leaving ourselves with an
|
||||||
I2CP that looks like an anonymous IP layer, and as such, we'll be able to
|
I2CP that looks like an anonymous IP layer, and as such, we'll be able to
|
||||||
implement the streaming library to take advantage of the design experiences of
|
implement the streaming library to take advantage of the design experiences of
|
||||||
the TCP layer - selective ACKs, congestion detection, nagle, etc.</p>
|
the TCP layer - selective ACKs, congestion detection, nagle, etc.
|
||||||
|
{%- endtrans %}</p>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
@@ -1,48 +1,50 @@
|
|||||||
{% extends "global/layout.html" %}
|
{% extends "global/layout.html" %}
|
||||||
{% block title %}Performance{% endblock %}
|
{% block title %}{{ _('Performance') }}{% endblock %}
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
|
||||||
<h1>How does I2P work, why is it slow, and why does it not use my full bandwidth?</h1>
|
<h1>{% trans %}How does I2P work, why is it slow, and why does it not use my full bandwidth?{% endtrans %}</h1>
|
||||||
|
|
||||||
<p>Probably one of the most frequent things people ask is "how fast is I2P?",
|
<p>{% trans -%}
|
||||||
|
Probably one of the most frequent things people ask is "how fast is I2P?",
|
||||||
and no one seems to like the answer - "it depends". After trying out I2P, the
|
and no one seems to like the answer - "it depends". After trying out I2P, the
|
||||||
next thing they ask is "will it get faster?", and the answer to that is a most
|
next thing they ask is "will it get faster?", and the answer to that is a most
|
||||||
emphatic <b>yes</b>.</p>
|
emphatic <b>yes</b>.
|
||||||
|
{%- endtrans %}</p>
|
||||||
|
|
||||||
<p>
|
<p>{% trans -%}
|
||||||
I2P is a full dynamic network. Each client is known to other nodes and tests local known nodes for reachability and capacity.
|
I2P is a full dynamic network. Each client is known to other nodes and tests local known nodes for reachability and capacity.
|
||||||
Only reachable and capable nodes are saved to a local NetDB (This is generally only a portion of the network, around 500-1000).
|
Only reachable and capable nodes are saved to a local NetDB (This is generally only a portion of the network, around 500-1000).
|
||||||
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.
|
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.
|
||||||
Because testing happens every minute, the pool of used nodes changes every minute.
|
Because testing happens every minute, the pool of used nodes changes every minute.
|
||||||
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.
|
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.
|
||||||
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.
|
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.
|
||||||
</p>
|
{%- endtrans %}</p>
|
||||||
|
|
||||||
<p>
|
<p>{% trans -%}
|
||||||
The above describes why each I2P node has different nodes to build tunnels.
|
The above describes why each I2P node has different nodes to build tunnels.
|
||||||
Because every I2P node has a different latency and bandwith, tunnels (which are built via those nodes) have different latency and bandwidth values.
|
Because every I2P node has a different latency and bandwith, tunnels (which are built via those nodes) have different latency and bandwidth values.
|
||||||
And because every I2P node has different tunnels built, no two I2P nodes have the same tunnel sets.
|
And because every I2P node has different tunnels built, no two I2P nodes have the same tunnel sets.
|
||||||
</p>
|
{%- endtrans %}</p>
|
||||||
|
|
||||||
<p>
|
<p>{% trans -%}
|
||||||
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.
|
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.
|
||||||
This adds up to 12 hops (aka 12 different I2P nodes) for a full roundtrip client-server-client.
|
This adds up to 12 hops (aka 12 different I2P nodes) for a full roundtrip client-server-client.
|
||||||
</p>
|
{%- endtrans %}</p>
|
||||||
|
|
||||||
<p>
|
<p>{% trans -%}
|
||||||
Each data package is sent through 6 other I2P nodes until it reaches the server:
|
Each data package is sent through 6 other I2P nodes until it reaches the server:
|
||||||
</p>
|
{%- endtrans %}</p>
|
||||||
<pre>
|
<pre>
|
||||||
client - hop1 - hop2 - hop3 - hopa1 - hopa2 - hopa3 - server
|
client - hop1 - hop2 - hop3 - hopa1 - hopa2 - hopa3 - server
|
||||||
</pre>
|
</pre>
|
||||||
<p>
|
<p>{% trans -%}
|
||||||
and on way back 6 different I2P nodes:
|
and on way back 6 different I2P nodes:
|
||||||
</p>
|
{%- endtrans %}</p>
|
||||||
<pre>
|
<pre>
|
||||||
server - hopb1 - hopb2 - hopb3 - hopc1 - hopc2 - hopc3 - client
|
server - hopb1 - hopb2 - hopb3 - hopc1 - hopc2 - hopc3 - client
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
<p>
|
<p>{% trans -%}
|
||||||
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.
|
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.
|
||||||
In the end: send data, wait for ack, send more data, wait for ack,..
|
In the end: send data, wait for ack, send more data, wait for ack,..
|
||||||
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.
|
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.
|
||||||
@@ -50,56 +52,60 @@ With some internals of TCP and I2P transport, a data package has a limited size
|
|||||||
Together these conditions set a limit of max bandwidth per tunnel of 20-50 kbyte/sec.
|
Together these conditions set a limit of max bandwidth per tunnel of 20-50 kbyte/sec.
|
||||||
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
|
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
|
||||||
latency and other limitations.
|
latency and other limitations.
|
||||||
</p>
|
{%- endtrans %}</p>
|
||||||
|
|
||||||
<p>
|
<p>{% trans -%}
|
||||||
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
|
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
|
||||||
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
|
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
|
||||||
use roughly 300 kb/sec traffic combined ( in reality it could be more if shorter tunnels are used with low or no anonymity available).
|
use roughly 300 kb/sec traffic combined ( in reality it could be more if shorter tunnels are used with low or no anonymity available).
|
||||||
Used tunnels are discarded every 10 minutes and new ones are built up.
|
Used tunnels are discarded every 10 minutes and new ones are built up.
|
||||||
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
|
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
|
||||||
sometimes break tunnels and connections, as seen on the IRC2P Network in loss of connection (ping timeout) or on when using eepget.
|
sometimes break tunnels and connections, as seen on the IRC2P Network in loss of connection (ping timeout) or on when using eepget.
|
||||||
</p>
|
{%- endtrans %}</p>
|
||||||
|
|
||||||
<p>
|
<p>{% trans -%}
|
||||||
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.
|
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.
|
||||||
For example, if an I2P node is "hop1" in the small example above, we only see 1 participating tunnel originating from the client.
|
For example, if an I2P node is "hop1" in the small example above, we only see 1 participating tunnel originating from the client.
|
||||||
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.
|
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.
|
||||||
If one distributes these limited numbers across the number of I2P nodes, there is only a fraction of available bandwidth/capacity available for use.
|
If one distributes these limited numbers across the number of I2P nodes, there is only a fraction of available bandwidth/capacity available for use.
|
||||||
</p>
|
{%- endtrans %}</p>
|
||||||
|
|
||||||
<p>
|
<p>{% trans -%}
|
||||||
To remain anonymous one router should not be used by the whole network for building tunnels.
|
To remain anonymous one router should not be used by the whole network for building tunnels.
|
||||||
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.
|
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.
|
||||||
I2P attempts to spread the load across a lot of I2P nodes because of this reason.
|
I2P attempts to spread the load across a lot of I2P nodes because of this reason.
|
||||||
</p>
|
{%- endtrans %}</p>
|
||||||
|
|
||||||
<p>
|
<p>{% trans -%}
|
||||||
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
|
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
|
||||||
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).
|
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).
|
||||||
I2P tries to limit these connections to be under 1500 per UDP and per TCP type.
|
I2P tries to limit these connections to be under 1500 per UDP and per TCP type.
|
||||||
This limits the amount of traffic routed across your I2P node as well.
|
This limits the amount of traffic routed across your I2P node as well.
|
||||||
</p>
|
{%- endtrans %}</p>
|
||||||
|
|
||||||
<p>
|
<p>{% trans -%}
|
||||||
In summary, I2P is very complex and there is no easy way to pinpoint why your node is not used.
|
In summary, I2P is very complex and there is no easy way to pinpoint why your node is not used.
|
||||||
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.
|
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.
|
||||||
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
|
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
|
||||||
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
|
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
|
||||||
be lower after a restart/shutdown for a minimum of 24h.
|
be lower after a restart/shutdown for a minimum of 24h.
|
||||||
</p>
|
{%- endtrans %}</p>
|
||||||
|
|
||||||
<p>
|
<p>{% trans -%}
|
||||||
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.
|
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.
|
||||||
It will be faster if you use I2P and build more tunnels, e.g. use a torrent or www for some time.
|
It will be faster if you use I2P and build more tunnels, e.g. use a torrent or www for some time.
|
||||||
</p>
|
{%- endtrans %}</p>
|
||||||
|
|
||||||
<h2>Performance Improvements</h2>
|
<h2>{{ _('Performance Improvements') }}</h2>
|
||||||
|
|
||||||
<p>For possible future performance improvements see
|
<p>{% trans future=site_url('about/performance/future') -%}
|
||||||
<a href="{{ site_url('about/performance/future') }}">Future Performance Improvements</a>.</p>
|
For possible future performance improvements see
|
||||||
|
<a href="{{ future }}">Future Performance Improvements</a>.
|
||||||
|
{%- endtrans %}</p>
|
||||||
|
|
||||||
<p>For past performance improvements see the <a href="{{ site_url('about/performance/history') }}">
|
<p>{% trans history=site_url('about/performance/history') -%}
|
||||||
Performance History</a>.</p>
|
For past performance improvements see the <a href="{{ history }}">
|
||||||
|
Performance History</a>.
|
||||||
|
{%- endtrans %}</p>
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
@@ -1,351 +1,352 @@
|
|||||||
{% extends "global/layout.html" %}
|
{% extends "global/layout.html" %}
|
||||||
{% block title %}Team{% endblock %}
|
{% block title %}{{ _('Team') }}{% endblock %}
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<h1>I2P Project Members</h1>
|
<h1>{{ _('I2P Project Members') }}</h1>
|
||||||
<p>We are a small group of people spread around several continents, working to
|
<p>{% trans volunteer=site_url('get-involved') -%}
|
||||||
|
We are a small group of people spread around several continents, working to
|
||||||
advance different aspects of the project and discussing the design of the
|
advance different aspects of the project and discussing the design of the
|
||||||
network.
|
network.
|
||||||
<a href="{{ site_url('volunteer') }}">Get involved!</a>
|
<a href="{{ volunteer }}">Get involved!</a>
|
||||||
</p>
|
{%- endtrans %}</p>
|
||||||
|
|
||||||
<table border="0">
|
<table border="0">
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top" rowspan="18"><b>Admin</b></td>
|
<td valign="top" rowspan="18"><b>{{ _('Admin') }}</b></td>
|
||||||
<td valign="top"><b>Project Manager</b></td>
|
<td valign="top"><b>{{ _('Project Manager') }}</b></td>
|
||||||
<td valign="top">zzz</td>
|
<td valign="top">zzz</td>
|
||||||
<td valign="top"><i>point of contact of last resort</i></td>
|
<td valign="top"><i>{{ _('point of contact of last resort') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top"><b>Treasurer</b></td>
|
<td valign="top"><b>{{ _('Treasurer') }}</b></td>
|
||||||
<td valign="top">eche|on</td>
|
<td valign="top">eche|on</td>
|
||||||
<td valign="top"><i>manage donations / accounts / bounties</i></td>
|
<td valign="top"><i>{{ _('manage donations / accounts / bounties') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top"><b>PR manager</b></td>
|
<td valign="top"><b>{{ _('PR manager') }}</b></td>
|
||||||
<td valign="top">orion</td>
|
<td valign="top">orion</td>
|
||||||
<td valign="top"><i>press contact, manages public relations and affairs</i></td>
|
<td valign="top"><i>{{ _('press contact, manages public relations and affairs') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top"><b><a href="http://{{ i2pconv('forum.i2p') }}/">Forum</a> admin</b></td>
|
<td valign="top"><b>{% trans forum=i2pconv('forum.i2p') %}<a href="http://{{ forum }}/">Forum</a> admin{% endtrans %}</b></td>
|
||||||
<td valign="top">cervantes</td>
|
<td valign="top">cervantes</td>
|
||||||
<td valign="top"><i>manage the public user forum</i></td>
|
<td valign="top"><i>{{ _('manage the public user forum') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top"><b>Mirrors admin</b></td>
|
<td valign="top"><b>{{ _('Mirrors admin') }}</b></td>
|
||||||
<td valign="top">welterde</td>
|
<td valign="top">welterde</td>
|
||||||
<td valign="top"><i>manage the project mirrors</i></td>
|
<td valign="top"><i>{{ _('manage the project mirrors') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top"><b><a href="{{ site_url('develop/monotone') }}">Monotone</a> guru</b></td>
|
<td valign="top"><b>{% trans monotone=site_url('get-involved/develop/monotone') %}<a href="{{ monotone }}">Monotone</a> guru{% endtrans %}</b></td>
|
||||||
<td valign="top">welterde, eche|on</td>
|
<td valign="top">welterde, eche|on</td>
|
||||||
<td valign="top"><i>manage the public monotone repositories</i></td>
|
<td valign="top"><i>{{ _('manage the public monotone repositories') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top"><b>Packager; Linux</b></td>
|
<td valign="top"><b>{{ _('Packager; Linux') }}</b></td>
|
||||||
<td valign="top">KillYourTV</td>
|
<td valign="top">KillYourTV</td>
|
||||||
<td valign="top"><i>Linux (Debian/Ubuntu) distribution packager</i></td>
|
<td valign="top"><i>{{ _('Linux (Debian/Ubuntu) distribution packager') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top"><b>Packager; Windows</b></td>
|
<td valign="top"><b>{{ _('Packager; Windows') }}</b></td>
|
||||||
<td valign="top">KillYourTV</td>
|
<td valign="top">KillYourTV</td>
|
||||||
<td valign="top"><i>Windows installer packager</i></td>
|
<td valign="top"><i>{{ _('Windows installer packager') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top"><b>Release Manager</b></td>
|
<td valign="top"><b>{{ _('Release Manager') }}</b></td>
|
||||||
<td valign="top">zzz</td>
|
<td valign="top">zzz</td>
|
||||||
<td valign="top"><i>Builds and signs the releases</i></td>
|
<td valign="top"><i>{{ _('Builds and signs the releases') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top"><b>Update admin</b></td>
|
<td valign="top"><b>{{ _('Update admin') }}</b></td>
|
||||||
<td valign="top">KillYourTV</td>
|
<td valign="top">KillYourTV</td>
|
||||||
<td valign="top"><i>Monitors and recruits in-network update hosts</i></td>
|
<td valign="top"><i>{{ _('Monitors and recruits in-network update hosts') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top"><b>Reseed admin</b></td>
|
<td valign="top"><b>{{ _('Reseed admin') }}</b></td>
|
||||||
<td valign="top">Meeh</td>
|
<td valign="top">Meeh</td>
|
||||||
<td valign="top"><i>Monitors, advises and recruits reseed hosts</i></td>
|
<td valign="top"><i>{{ _('Monitors, advises and recruits reseed hosts') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top"><b>Security expert</b></td>
|
<td valign="top"><b>{{ _('Security expert') }}</b></td>
|
||||||
<td valign="top" style="color:blue">[vacant]</td>
|
<td valign="top" style="color:blue">[{{ _('vacant') }}]</td>
|
||||||
<td valign="top"><i>threat model / crypto expert</i></td>
|
<td valign="top"><i>{{ _('threat model / crypto expert') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top"><b>User Advocate</b></td>
|
<td valign="top"><b>{{ _('User Advocate') }}</b></td>
|
||||||
<td valign="top" style="color:blue">[vacant]</td>
|
<td valign="top" style="color:blue">[{{ _('vacant') }}]</td>
|
||||||
<td valign="top"><i>gather, prioritize, advocate for user needs</i></td>
|
<td valign="top"><i>{{ _('gather, prioritize, advocate for user needs') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top"><b>Web Designer</b></td>
|
<td valign="top"><b>{{ _('Web Designer') }}</b></td>
|
||||||
<td valign="top" style="color:blue">[vacant]</td>
|
<td valign="top" style="color:blue">[{{ _('vacant') }}]</td>
|
||||||
<td valign="top"><i>manage the public project website content design</i></td>
|
<td valign="top"><i>{{ _('manage the public project website content design') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top"><b><a href="http://{{ i2pconv('www.i2p2.i2p') }}/">Webserver</a> admin</b></td>
|
<td valign="top"><b>{% trans website=i2pconv('www.i2p2.i2p') %}<a href="http://{{ website }}/">Webserver</a> admin{% endtrans %}</b></td>
|
||||||
<td valign="top">welterde</td>
|
<td valign="top">welterde</td>
|
||||||
<td valign="top"><i>manage the public project webservers</i></td>
|
<td valign="top"><i>{{ _('manage the public project webservers') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top"><b><a href="http://{{ i2pconv('www.i2p2.i2p') }}/">Website</a> admin</b></td>
|
<td valign="top"><b>{% trans website=i2pconv('www.i2p2.i2p') %}<a href="http://{{ website }}/">Website</a> admin{% endtrans %}</b></td>
|
||||||
<td valign="top" style="color:blue">[vacant]</td>
|
<td valign="top" style="color:blue">[{{ _('vacant') }}]</td>
|
||||||
<td valign="top"><i>manage the public project website content</i></td>
|
<td valign="top"><i>{{ _('manage the public project website content') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top"><b>News Admin</b></td>
|
<td valign="top"><b>{{ _('News Admin') }}</b></td>
|
||||||
<td valign="top">eche|on</td>
|
<td valign="top">eche|on</td>
|
||||||
<td valign="top"><i>manage router console news feed</i></td>
|
<td valign="top"><i>{{ _('manage router console news feed') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top"><b>Director of passion</b></td>
|
<td valign="top"><b>{{ _('Director of passion') }}</b></td>
|
||||||
<td valign="top" style="color:blue">[vacant]</td>
|
<td valign="top" style="color:blue">[{{ _('vacant') }}]</td>
|
||||||
<td valign="top"><i>community motivator</i></td>
|
<td valign="top"><i>{{ _('community motivator') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr><td colspan="4"><hr /></td></tr>
|
<tr><td colspan="4"><hr /></td></tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top" rowspan="25"><b>Dev</b></td>
|
<td valign="top" rowspan="25"><b>{{ _('Dev') }}</b></td>
|
||||||
<td valign="top"><b>Core Lead</b></td>
|
<td valign="top"><b>{{ _('Core Lead') }}</b></td>
|
||||||
<td valign="top">zzz</td>
|
<td valign="top">zzz</td>
|
||||||
<td valign="top"><i>lead dev for the SDK and router</i></td>
|
<td valign="top"><i>{{ _('lead dev for the SDK and router') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top"><b><a href="http://{{ i2pconv('hq.postman.i2p') }}/">I2P mail</a> lead</b></td>
|
<td valign="top"><b>{% trans postman=i2pconv('hq.postman.i2p') %}<a href="http://{{ postman }}/">I2P mail</a> lead{% endtrans %}</b></td>
|
||||||
<td valign="top">postman</td>
|
<td valign="top">postman</td>
|
||||||
<td valign="top"><i>organize and develop the i2p mail system</i></td>
|
<td valign="top"><i>{{ _('organize and develop the i2p mail system') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top"><b><a href="http://{{ i2pconv('i2host.i2p') }}/">I2Host</a> lead</b></td>
|
<td valign="top"><b>{% trans i2host=i2pconv('i2host.i2p') %}<a href="http://{{ i2host }}/">I2Host</a> lead{% endtrans %}</b></td>
|
||||||
<td valign="top">sponge</td>
|
<td valign="top">sponge</td>
|
||||||
<td valign="top"><i>I2Host addressbook application</i></td>
|
<td valign="top"><i>{{ _('I2Host addressbook application') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top"><b><a href="http://{{ i2pconv('bob.i2p') }}/">BOB</a> lead</b></td>
|
<td valign="top"><b>{% trans bob=i2pconv('bob.i2p') %}<a href="http://{{ bob }}/">BOB</a> lead{% endtrans %}</b></td>
|
||||||
<td valign="top">sponge</td>
|
<td valign="top">sponge</td>
|
||||||
<td valign="top"><i>Basic Open Bridge</i></td>
|
<td valign="top"><i>{{ _('Basic Open Bridge') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top"><b><a href="http://{{ i2pconv('i2pbote.i2p') }}/">I2P-Bote</a> lead</b></td>
|
<td valign="top"><b>{% trans bote=i2pconv('i2pbote.i2p') %}<a href="http://{{ bote }}/">I2P-Bote</a> lead{% endtrans %}</b></td>
|
||||||
<td valign="top">HungryHobo</td>
|
<td valign="top">HungryHobo</td>
|
||||||
<td valign="top"><i>I2PBote plugin</i></td>
|
<td valign="top"><i>{{ _('I2PBote plugin') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top"><b><a href="http://{{ i2pconv('bob.i2p') }}/">Robert</a> lead</b></td>
|
<td valign="top"><b>{% trans bob=i2pconv('bob.i2p') %}<a href="http://{{ bob }}/">Robert</a> lead{% endtrans %}</b></td>
|
||||||
<td valign="top">sponge</td>
|
<td valign="top">sponge</td>
|
||||||
<td valign="top"><i>Robert BitTorrent client</i></td>
|
<td valign="top"><i>{{ _('Robert BitTorrent client') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top"><b><a href="http://{{ i2pconv('forum.i2p') }}/viewforum?f=25">I2Phex</a> lead</b></td>
|
<td valign="top"><b>{% trans forum=i2pconv('forum.i2p') %}<a href="http://{{ forum }}/viewforum?f=25">I2Phex</a> lead{% endtrans %}</b></td>
|
||||||
<td valign="top" style="color:blue">[vacant]</td>
|
<td valign="top" style="color:blue">[{{ _('vacant') }}]</td>
|
||||||
<td valign="top"><i>I2Phex Gnutella client</i></td>
|
<td valign="top"><i>{{ _('I2Phex Gnutella client') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top"><b><a href="http://{{ i2pconv('forum.i2p') }}/viewforum?f=21">I2PSnark</a> lead</b></td>
|
<td valign="top"><b>{% trans forum=i2pconv('forum.i2p') %}<a href="http://{{ forum }}/viewforum?f=21">I2PSnark</a> lead{% endtrans %}</b></td>
|
||||||
<td valign="top">zzz</td>
|
<td valign="top">zzz</td>
|
||||||
<td valign="top"><i>Maintains the integrated Bittorrent client</i></td>
|
<td valign="top"><i>{{ _('Maintains the integrated Bittorrent client') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top"><b><a href="http://{{ i2pconv('forum.i2p') }}/viewforum?f=30">iMule</a> lead</b></td>
|
<td valign="top"><b>{% trans forum=i2pconv('forum.i2p') %}<a href="http://{{ forum }}/viewforum?f=30">iMule</a> lead{% endtrans %}</b></td>
|
||||||
<td valign="top" style="color:blue">[vacant]</td>
|
<td valign="top" style="color:blue">[{{ _('vacant') }}]</td>
|
||||||
<td valign="top"><i>eMule client over I2P</i></td>
|
<td valign="top"><i>{{ _('eMule client over I2P') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top"><b><a href="http://{{ i2pconv('forum.i2p') }}/viewforum?f=29">Syndie</a> lead</b></td>
|
<td valign="top"><b>{% trans forum=i2pconv('forum.i2p') %}<a href="http://{{ forum }}/viewforum?f=29">Syndie</a> lead{% endtrans %}</b></td>
|
||||||
<td valign="top" style="color:blue">[vacant]</td>
|
<td valign="top" style="color:blue">[{{ _('vacant') }}]</td>
|
||||||
<td valign="top"><i>Syndie development</i></td>
|
<td valign="top"><i>{{ _('Syndie development') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top"><b>Susimail lead</b></td>
|
<td valign="top"><b>{{ _('Susimail lead') }}</b></td>
|
||||||
<td valign="top" style="color:blue">[vacant]</td>
|
<td valign="top" style="color:blue">[{{ _('vacant') }}]</td>
|
||||||
<td valign="top"><i>Susimail development</i></td>
|
<td valign="top"><i>{{ _('Susimail development') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top"><b>Console</b></td>
|
<td valign="top"><b>{{ _('Console') }}</b></td>
|
||||||
<td valign="top" style="color:blue">[vacant]</td>
|
<td valign="top" style="color:blue">[{{ _('vacant') }}]</td>
|
||||||
<td valign="top"><i>Router console HTML/CSS design</i></td>
|
<td valign="top"><i>{{ _('Router console HTML/CSS design') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top"><b>SAM</b></td>
|
<td valign="top"><b>{{ _('SAM') }}</b></td>
|
||||||
<td valign="top" style="color:blue">[vacant]</td>
|
<td valign="top" style="color:blue">[{{ _('vacant') }}]</td>
|
||||||
<td valign="top"><i>SAM maintainer</i></td>
|
<td valign="top"><i>{{ _('SAM maintainer') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top" rowspan="8"><b>Console Translations</b></td>
|
<td valign="top" rowspan="8"><b>{{ _('Console Translations') }}</b></td>
|
||||||
<td valign="top">walking</td>
|
<td valign="top">walking</td>
|
||||||
<td valign="top"><i>Chinese</i></td>
|
<td valign="top"><i>{{ _('Chinese') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top">monkeybrains</td>
|
<td valign="top">monkeybrains</td>
|
||||||
<td valign="top"><i>Dutch</i></td>
|
<td valign="top"><i>{{ _('Dutch') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top" style="color:blue">magma</td>
|
<td valign="top" style="color:blue">magma</td>
|
||||||
<td valign="top"><i>French</i></td>
|
<td valign="top"><i>{{ _('French') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top">eche|on, mixxy</td>
|
<td valign="top">eche|on, mixxy</td>
|
||||||
<td valign="top"><i>German</i></td>
|
<td valign="top"><i>{{ _('German') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top">rus, 4get, slow</td>
|
<td valign="top">rus, 4get, slow</td>
|
||||||
<td valign="top"><i>Russian</i></td>
|
<td valign="top"><i>{{ _('Russian') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top">user</td>
|
<td valign="top">user</td>
|
||||||
<td valign="top"><i>Spanish</i></td>
|
<td valign="top"><i>{{ _('Spanish') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top">thelastcode, hamada</td>
|
<td valign="top">thelastcode, hamada</td>
|
||||||
<td valign="top"><i>Arabic</i></td>
|
<td valign="top"><i>{{ _('Arabic') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top" style="color:blue">[vacant]</td>
|
<td valign="top" style="color:blue">[{{ _('vacant') }}]</td>
|
||||||
<td valign="top"><i>Other languages</i></td>
|
<td valign="top"><i>{{ _('Other languages') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top" rowspan="4"><b>Contributors</b></td>
|
<td valign="top" rowspan="4"><b>{{ _('Contributors') }}</b></td>
|
||||||
<td valign="top">cervantes</td>
|
<td valign="top">cervantes</td>
|
||||||
<td valign="top"><i>fire2pe dev, console enhancements</i></td>
|
<td valign="top"><i>{{ _('fire2pe dev, console enhancements') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top">Mathiasdm</td>
|
<td valign="top">Mathiasdm</td>
|
||||||
<td valign="top"><i>desktopgui, dijjer port</i></td>
|
<td valign="top"><i>{{ _('desktopgui, dijjer port') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top">KillYourTV</td>
|
<td valign="top">KillYourTV</td>
|
||||||
<td valign="top"><i>Debian/Ubuntu Packager and PPA maintainer</i></td>
|
<td valign="top"><i>{{ _('Debian/Ubuntu Packager and PPA maintainer') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr style="color:blue">
|
<tr style="color:blue">
|
||||||
<td valign="top">[vacant]</td>
|
<td valign="top">[{{ _('vacant') }}]</td>
|
||||||
<td valign="top"><i>Help needed on many fronts!</i></td>
|
<td valign="top"><i>{{ _('Help needed on many fronts!') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr><td colspan="4"><hr /></td></tr>
|
<tr><td colspan="4"><hr /></td></tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top" rowspan="32" colspan="2"><b>Past contributors</b></td>
|
<td valign="top" rowspan="32" colspan="2"><b>{{ _('Past contributors') }}</b></td>
|
||||||
<td valign="top">mihi</td>
|
<td valign="top">mihi</td>
|
||||||
<td valign="top"><i>I2PTunnel development, ministreaming library</i></td>
|
<td valign="top"><i>{{ _('I2PTunnel development, ministreaming library') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top">jrandom</td>
|
<td valign="top">jrandom</td>
|
||||||
<td valign="top"><i>Project lead, Syndie lead</i></td>
|
<td valign="top"><i>{{ _('Project lead, Syndie lead') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top">Complication</td>
|
<td valign="top">Complication</td>
|
||||||
<td valign="top"><i>Project lead, Syndie lead, I2Phex, support guru</i></td>
|
<td valign="top"><i>{{ _('Project lead, Syndie lead, I2Phex, support guru') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top">mkvore</td>
|
<td valign="top">mkvore</td>
|
||||||
<td valign="top"><i>iMule lead</i></td>
|
<td valign="top"><i>{{ _('iMule lead') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top">redzara</td>
|
<td valign="top">redzara</td>
|
||||||
<td valign="top"><i>I2Phex work</i></td>
|
<td valign="top"><i>{{ _('I2Phex work') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top">striker</td>
|
<td valign="top">striker</td>
|
||||||
<td valign="top"><i>I2Phex work</i></td>
|
<td valign="top"><i>{{ _('I2Phex work') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top">legion</td>
|
<td valign="top">legion</td>
|
||||||
<td valign="top"><i>I2Phex work</i></td>
|
<td valign="top"><i>{{ _('I2Phex work') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top">Connely</td>
|
<td valign="top">Connely</td>
|
||||||
<td valign="top"><i>Python SAM library, attack simulations</i></td>
|
<td valign="top"><i>{{ _('Python SAM library, attack simulations') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top">mastiejaner</td>
|
<td valign="top">mastiejaner</td>
|
||||||
<td valign="top"><i>i2pmail development</i></td>
|
<td valign="top"><i>{{ _('i2pmail development') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top">dust</td>
|
<td valign="top">dust</td>
|
||||||
<td valign="top"><i>Syndie help</i></td>
|
<td valign="top"><i>{{ _('Syndie help') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top">susi23</td>
|
<td valign="top">susi23</td>
|
||||||
<td valign="top"><i>i2p mail,susimail and susidns apps</i></td>
|
<td valign="top"><i>{{ _('i2p mail,susimail and susidns apps') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top">sirup</td>
|
<td valign="top">sirup</td>
|
||||||
<td valign="top"><i>I2Phex (port of Phex to I2P)</i></td>
|
<td valign="top"><i>{{ _('I2Phex (port of Phex to I2P)') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top">Ragnarok</td>
|
<td valign="top">Ragnarok</td>
|
||||||
<td valign="top"><i>addressbook,i2p-bt,syndie client</i></td>
|
<td valign="top"><i>{{ _('addressbook,i2p-bt,syndie client') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top">duck</td>
|
<td valign="top">duck</td>
|
||||||
<td valign="top"><i>organize and develop the i2p-bt BitTorrent port</i></td>
|
<td valign="top"><i>{{ _('organize and develop the i2p-bt BitTorrent port') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top">Ragnarok</td>
|
<td valign="top">Ragnarok</td>
|
||||||
<td valign="top"><i>addressbook, i2p-bt, syndie client development</i></td>
|
<td valign="top"><i>{{ _('addressbook, i2p-bt, syndie client development') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top">thecrypto</td>
|
<td valign="top">thecrypto</td>
|
||||||
<td valign="top"><i>encryption and signature routines, I2PIM</i></td>
|
<td valign="top"><i>{{ _('encryption and signature routines, I2PIM') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top">aum</td>
|
<td valign="top">aum</td>
|
||||||
<td valign="top"><i>SAM jython code, work on stasher (DHT) and v2v (VoI2P)</i></td>
|
<td valign="top"><i>{{ _('SAM jython code, work on stasher (DHT) and v2v (VoI2P)') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top">hypercubus</td>
|
<td valign="top">hypercubus</td>
|
||||||
<td valign="top"><i>installer, systray, bogobot</i></td>
|
<td valign="top"><i>{{ _('installer, systray, bogobot') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top">ugha</td>
|
<td valign="top">ugha</td>
|
||||||
<td valign="top"><i>jbigi development, wiki migration, doc cleanup</i></td>
|
<td valign="top"><i>{{ _('jbigi development, wiki migration, doc cleanup') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top">oOo</td>
|
<td valign="top">oOo</td>
|
||||||
<td valign="top"><i>java debugging and client development on I2PTunnel and the router console</i></td>
|
<td valign="top"><i>{{ _('java debugging and client development on I2PTunnel and the router console') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top">BrianR</td>
|
<td valign="top">BrianR</td>
|
||||||
<td valign="top"><i>SAM perl module</i></td>
|
<td valign="top"><i>{{ _('SAM perl module') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top">eco</td>
|
<td valign="top">eco</td>
|
||||||
<td valign="top"><i>i2psnark work</i></td>
|
<td valign="top"><i>{{ _('i2psnark work') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top">shendaras</td>
|
<td valign="top">shendaras</td>
|
||||||
<td valign="top"><i>java cleanup</i></td>
|
<td valign="top"><i>{{ _('java cleanup') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top">JAnonymous</td>
|
<td valign="top">JAnonymous</td>
|
||||||
<td valign="top"><i>docs. wiki migration</i></td>
|
<td valign="top"><i>{{ _('docs. wiki migration') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top">jar</td>
|
<td valign="top">jar</td>
|
||||||
<td valign="top"><i>translations into French</i></td>
|
<td valign="top"><i>{{ _('translations into French') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top">scintilla</td>
|
<td valign="top">scintilla</td>
|
||||||
<td valign="top"><i>C port of jcpuid</i></td>
|
<td valign="top"><i>{{ _('C port of jcpuid') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top">smeghead</td>
|
<td valign="top">smeghead</td>
|
||||||
<td valign="top"><i>C# SAM library, pants, fortuna integration</i></td>
|
<td valign="top"><i>{{ _('C# SAM library, pants, fortuna integration') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top">Nightblade</td>
|
<td valign="top">Nightblade</td>
|
||||||
<td valign="top"><i>libSAM</i></td>
|
<td valign="top"><i>{{ _('libSAM') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top">dinoman</td>
|
<td valign="top">dinoman</td>
|
||||||
<td valign="top"><i>i2p-bt tracker development</i></td>
|
<td valign="top"><i>{{ _('i2p-bt tracker development') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top">DrWoo</td>
|
<td valign="top">DrWoo</td>
|
||||||
<td valign="top"><i>i2p-bt tracker development</i></td>
|
<td valign="top"><i>{{ _('i2p-bt tracker development') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top">dr|z3d</td>
|
<td valign="top">dr|z3d</td>
|
||||||
<td valign="top"><i>Console and website themes</i></td>
|
<td valign="top"><i>{{ _('Console and website themes') }}</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top" colspan="2">…and many others</td>
|
<td valign="top" colspan="2">{% trans %}… and many others{% endtrans %}</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
Reference in New Issue
Block a user