merge of 'a0a864483fd54fd4c0442c1fbfb1d8110f7ef75d'

and 'c478b5c0330839ec3394675ff894db719f9bb9d7'
This commit is contained in:
meeh
2019-08-18 22:05:23 +00:00
11 changed files with 427 additions and 58 deletions

View File

@@ -0,0 +1,83 @@
20:00:00 <zzz> 0) Hi
20:00:00 <zzz> 1) 0.9.41 release status remaining items (mhatta, nextloop)
20:00:00 <zzz> 2) 0.9.42 development status (zzz)
20:00:00 <zzz> 3) LS2 status (zzz)
20:00:00 <zzz> 4) I2P Browser "labs" project status (meeh)
20:00:00 <zzz> 5) Status scrum (zlatinb)
20:00:04 <zzz> 0) Hi
20:00:07 <zzz> hi!
20:00:19 <zzz> 1) 0.9.41 release status remaining items (mhatta, nextloop)
20:00:46 <zzz> within the last couple weeks, I see that mhatta did get 41 into sid, which is great
20:01:04 <zzz> I talked to nextloop also, he didn't get 41 into fdroid, but somebody else did.
20:01:27 <zzz> and nextloop promised to get back to doing f-droid going forward. super!
20:01:31 <zzz> anything else on 1) ?
20:01:50 <zzz> anybody else here? please say hi
20:01:58 <zlatinb> hi
20:02:37 <zzz> ok, one other. Hopefully everybody else shows up soon
20:02:50 <zzz> 2) .42 dev status
20:03:02 <zzz> we're 5 weeks in, 3 weeks to go, 1 week to tag freeze
20:03:20 <zzz> we landed the configuration splitting code I worked on with idk
20:03:58 <zzz> lots of bug fixes; GMP 6.1.2; updated the debian files to work for buster
20:04:17 <zzz> some ls2 fixes also
20:04:39 <zzz> zlatinb, you want to mention what you're doing with your test net, and what it's yielded so far?
20:05:11 <zlatinb> yes, so basically I set up a testnet with LXC containers
20:05:32 <zlatinb> so far it has discovered one major bug around bloom filter usage and one minor ssu bug
20:05:58 <zlatinb> been doing fine-tuning of different constants lately, but will put it to work to verify joggers patches/ideas
20:06:06 <zlatinb> eot
20:06:23 <zzz> that's really great, thanks
20:07:04 <zzz> if we can get some minimal latency added in that would be even better, but it's been fun to find and fix some bottlenecks
20:07:15 <zzz> anything else on 1) ?
20:07:30 <zzz> woops, anything else on 2) ?
20:08:27 <zzz> 3) ls2 status
20:08:38 <zzz> lots of progress in the last month
20:09:05 <zzz> we've agreed to a small proposal, 147, to prevent test networks from cross-contaminating with the main network
20:09:12 <zzz> that code will be in .42
20:09:45 <zzz> chisana has two proposals out, 152 and 153, to make tunnel building and tunnel encryption (respectively) more secure by using more modern encryption
20:10:14 <zzz> we've talked about them a little, but haven't formally reviewed them yet
20:10:47 <zzz> proposal 123 (LS2) continues to get some minor tweaks as we finish implementation and testing in the live network, but everything seems to be working well
20:11:26 <zzz> the big one is proposal 144, new encryption. We're making slow but steady progress. We've been at it for maybe 9 months now?
20:11:58 <zzz> there are still some major techincal issues to resolve before we can start test implementations
20:12:20 <zzz> the biggest problem right now is finding enough of people's time to work things through
20:12:46 <zzz> any questions on 3) ls2 and other proposals ?
20:13:47 <zzz> ok, on to 4) I2P Browser labs project status
20:13:54 <zzz> mikalv, what's the latest?
20:14:16 <mikalv> we're moving towards a integration with the i2p router itself, jlinked
20:14:38 <mikalv> on the i2pbutton side of this, we're more or less done, a few things left to fix
20:15:15 <mikalv> on the build scripts, we have to write it, since the devs has used a mocked extract of i2p jlinked where the browser starts it, for testing
20:15:48 <zzz> what's the current beta version, and when will we see the next beta version?
20:15:52 <mikalv> beyond that we try to have at least two meetings a week to make it a real product and with clear goals
20:16:24 <mikalv> the current is still beta4, and I'm hoping to get beta5 out by the end of this week - if so, with the router embedded
20:17:27 <zzz> I understand you've started a mailing list for it? would you like to announce it here or is it not ready yet?
20:18:09 <zzz> sadie, zlatinb, anything you want to add about the browser
20:18:20 <zzz> ?
20:19:36 <zzz> anybody have any questions on 4) the browser?
20:20:21 <zzz> anything else on 4) ?
20:21:10 <zzz> 5) scrum - take it away zlatinb
20:22:02 <zlatinb> lets do the scrum in parallel; in a few words - 1) what have you been working since last scrum 2) what you plan to work on next month 3) do you have any blockers or do you need help. Say “EOT” when done
20:22:34 <zlatinb> me: 1) building a testnet, chasing bottlenecks 2) more testnet, will also take a look at joggers tickets 3) none really EOT
20:23:34 <zzz> 1) 41 release, config splitting code, bug fixes, proposals, planning for new encryption types, ls2 fixes
20:24:10 <zzz> 2) 42 release, bug fixes, proposals (especially research on new encryption issues), DEFCON
20:24:16 <zzz> 3) no blockers; EOT
20:25:18 <mikalv> I've been working mainly on the browser (including i2pbutton which now launches a router if found), I've also done huge improvements in my end for the outproxy, I've also started prototyping a solution for private outproxies which has so good speed I can actually use it for clearnet browsing on daily basis
20:25:53 <mikalv> and I've also put up mailinglists yes, which over I2P is found at https://lists.i2p/postorius/lists/ but also available from clearnet at https://lists.i2p.email/postorius/lists/
20:26:20 <mikalv> anyone with constructive ideas, contribution, discussions and such are of course welcome
20:26:57 <mikalv> beyond that I've done some research into how we can accept creditcard donations, and how we also can sell shirs and such at the same time
20:27:10 <mikalv> EOT
20:27:12 <mikalv> noblock
20:28:14 <zzz> guess that's it? zlatinb we'll leave it to you to flog the no-shows?
20:28:17 <zlatinb> anyone else? if not scrum ends in 1 minute :)
20:28:27 <zlatinb> ok
20:28:33 <zlatinb> ScrumTimeoutException
20:28:41 <mikalv> lol
20:28:42 <zzz> while we're in the 'grace period' - DEFCON! idk and I will be there this weekend!
20:29:04 <zzz> Monero Village Friday afternoon, and Crypto/Privacy Village Saturday afternoon
20:29:22 <zzz> workshop, q&a, and stickers both days. come say hello
20:29:57 <zzz> re: outproxies, I'm going to put that on the agenda for next month, for sadie to give us a readout on what we're trying to do
20:30:06 <zzz> anything else for the meeting?
20:30:52 <zzz> oh, and Sadie will be presenting a paper at FOCI in San Jose next week! be sure to find her if you're there
20:30:59 <mikalv> nah, but I expect we got more for the browser/outproxy cases by next meeting
20:31:39 <zzz> yeah, we don't have a good plan yet for either browser or outproxy. We have ideas and proofs of concept, but no plan
20:31:53 <zzz> so will be good to see that come together
20:32:02 * zzz warms up the baffer
20:32:44 <zzz> last baf of the summer, see you in september...
20:32:55 * zzz ****bafs**** the meeting closed

View File

@@ -0,0 +1,11 @@
I2P dev meeting, Aug. 6, 2019 @ 20:00 UTC
=========================================
Quick recap
-----------
* **Present:**
mikalv,
zlatinb,
zzz

View File

@@ -14,23 +14,158 @@ Older versions:
<a href="{{ site_url('docs/api/samv2') }}">SAM V2</a>,
</p>
<h2>Version 3 Language Libraries</h2>
<ul>
<li>C - <a href="https://github.com/i2p/libsam3">libsam3</a></li>
<li>C++ - <a href="https://github.com/i2p/i2psam">i2psam</a></li>
<li>Go - <a href="https://bitbucket.org/kallevedin/sam3">sam3</a>,
<a href="https://github.com/cryptix/goSam">goSam</a> (<a href="http://git.repo.i2p/w/goSam.git">in I2P</a>)</li>
<li>Haskell - <a href="https://github.com/solatis/haskell-network-anonymous-i2p">haskell-network-anonymous-i2p</a></li>
<li>.NET - <a href="https://github.com/SamuelFisher/i2pdotnet">i2pdotnet</a></li>
<li>Nodejs - <a href="https://github.com/redhog/node-i2p">node-i2p</a></li>
<li>Java - <a href="https://github.com/eyedeekay/Jsam">Jsam</a></li>
<li>Python - <a href="https://github.com/l-n-s/i2plib">i2plib</a>,
<a href="https://github.com/majestrate/i2p.socket">i2p.socket</a>,
<a href="https://github.com/MuxZeroNet/leaflet">leaflet</a>,
<a href="https://github.com/str4d/txi2p">txi2p</a></li>
<li>Ruby - <a href="https://github.com/dryruby/i2p.rb">i2p.rb</a></li>
<li>Rust - <a href="https://github.com/stallmanifold/rust-i2p">rust-i2p</a></li>
</ul>
<h2>Known SAM libraries</h2>
<table>
<colgroup>
<col style="width: 8%" />
<col style="width: 8%" />
<col style="width: 5%" />
<col style="width: 4%" />
<col style="width: 3%" />
<col style="width: 2%" />
<col style="width: 65%" />
</colgroup>
<thead>
<tr class="header">
<th>{% trans %}Library Name{% endtrans %}</th>
<th>{% trans %}Language{% endtrans %}</th>
<th>{% trans %}Version{% endtrans %}</th>
<th>{% trans %}STREAM{% endtrans %}</th>
<th>{% trans %}DGRAM{% endtrans %}</th>
<th>{% trans %}RAW{% endtrans %}</th>
<th>{% trans %}Site{% endtrans %}</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>i2psam</td>
<td>C++, C {% trans %}wrapper{% endtrans %}</td>
<td>3.1</td>
<td>yes</td>
<td>yes</td>
<td>no</td>
<td><a href="https://github.com/i2p/i2psam">github.com/i2p/i2psam</a></td>
</tr>
<tr class="even">
<td>gosam</td>
<td>Go</td>
<td>3.2</td>
<td>yes</td>
<td>no</td>
<td>no</td>
<td><a href="https://github.com/eyedeekay/goSam">github.com/eyedeekay/goSam</a></td>
</tr>
<tr class="odd">
<td>sam3</td>
<td>Go</td>
<td>3.2</td>
<td>yes</td>
<td>yes</td>
<td>yes</td>
<td><a href="https://bitbucket.org/eyedeekay/sam3">bitbucket.org/eyedeekay/sam3</a></td>
</tr>
<tr class="even">
<td>txi2p</td>
<td>Python</td>
<td>3.1</td>
<td>yes</td>
<td>no</td>
<td>no</td>
<td><a href="https://github.com/str4d/txi2p">github.com/str4d/txi2p</a></td>
</tr>
<tr class="odd">
<td>i2p.socket</td>
<td>Python</td>
<td>3.2</td>
<td>yes</td>
<td>yes</td>
<td>yes</td>
<td><a href="https://github.com/majestrate/i2p.socket">github.com/majestrate/i2p.socket</a></td>
</tr>
<tr class="even">
<td>i2plib</td>
<td>Python</td>
<td>3.1</td>
<td>yes</td>
<td>yes</td>
<td>yes</td>
<td><a href="https://github.com/l-n-s/i2plib">github.com/l-n-s/i2plib</a></td>
</tr>
<tr class="odd">
<td>i2p-rs</td>
<td>Rust</td>
<td>3.1</td>
<td>yes</td>
<td>yes</td>
<td>yes</td>
<td><a href="https://github.com/i2p/i2p-rs">github.com/i2p/i2p-rs</a></td>
</tr>
<tr class="even">
<td>libsam3</td>
<td>C</td>
<td>3.1</td>
<td>yes</td>
<td>yes</td>
<td>yes</td>
<td><a href="https://github.com/i2p/libsam3">github.com/i2p/libsam3</a></td>
</tr>
<tr class="odd">
<td>mooni2p</td>
<td>Lua</td>
<td>3.1</td>
<td>yes</td>
<td>yes</td>
<td>yes</td>
<td><a href="https://notabug.org/l-n-s/mooni2p">notabug.org/l-n-s/mooni2p</a></td>
</tr>
<tr class="even">
<td>haskell-a-l-i</td>
<td>Haskell</td>
<td>3.1</td>
<td>yes</td>
<td>yes</td>
<td>yes</td>
<td><a href="https://github.com/solatis/haskell-network-anonymous-i2p">github.com/solatis/haskell-network-anonymous-i2p</a></td>
</tr>
<tr class="odd">
<td>node-i2p</td>
<td>Javascript</td>
<td>3.0</td>
<td>yes</td>
<td>unk</td>
<td>unk</td>
<td><a href="https://github.com/redhog/node-i2p">github.com/redhog/node-i2p</a></td>
</tr>
<tr class="even">
<td>Jsam</td>
<td>Java</td>
<td>3.1</td>
<td>yes</td>
<td>no</td>
<td>no</td>
<td><a href="https://github.com/eyedeekay/Jsam">github.com/eyedeekay/Jsam</a></td>
</tr>
<tr class="odd">
<td>i2pdotnet</td>
<td>.Net</td>
<td>3.0</td>
<td>yes</td>
<td>unk</td>
<td>unk</td>
<td><a href="https://github.com/SamuelFisher/i2pdotnet">github.com/SamuelFisher/i2pdotnet</a></td>
</tr>
<tr class="even">
<td>i2p.rb</td>
<td>Ruby</td>
<td>3.0</td>
<td>yes</td>
<td>no</td>
<td>no</td>
<td><a href="https://github.com/dryruby/i2p.rb">github.com/dryruby/i2p.rb</a></td>
</tr>
</tbody>
</table>
<h2>Version 3 Changes</h2>
<h3>Version 3.0 Changes</h3>
@@ -52,7 +187,9 @@ can forward back I2P datagrams to the client's datagram server.
<h3>Version 3.1 Changes</h3>
<p>
Version 3.1 was introduced in I2P release 0.9.14.
Version 3.1 was introduced in I2P release 0.9.14. SAM 3.1 is the recommended
minimum SAM implementation because of its support for better signature types
than SAM 3.0.
<ul>
<li>DEST GENERATE and SESSION CREATE now support a SIGNATURE_TYPE parameter.
<li>The MIN and MAX parameters in HELLO VERSION are now optional.

View File

@@ -1,7 +1,7 @@
{% extends "global/layout.html" %}
{% block title %}{% trans %}The Network Database{% endtrans %}{% endblock %}
{% block lastupdated %}{% trans %}January 2019{% endtrans %}{% endblock %}
{% block accuratefor %}0.9.38{% endblock %}
{% block lastupdated %}{% trans %}August 2019{% endtrans %}{% endblock %}
{% block accuratefor %}0.9.42{% endblock %}
{% block content %}
<h2>{% trans %}Overview{% endtrans %}</h2>
@@ -88,6 +88,17 @@ Above the minimum threshold, the advertised bandwidth is not used or trusted any
in the router, except for display in the user interface and for debugging and network analysis.
{%- endtrans %}</p>
<p>Valid NetID numbers:</p>
<table><tr><th>Usage<th>NetID Number
<tr><td>Reserved<td>0
<tr><td>Reserved<td>1
<tr><td>Current Network (default)<td>2
<tr><td>Reserved Future Networks<td>3 - 15
<tr><td>Forks and Test Networks<td>16 - 254
<tr><td>Reserved<td>255
</table>
<h3>{% trans %}Additional Options{% endtrans %}</h3>
<p>{% trans stats=i2pconv('stats.i2p') -%}

View File

@@ -26,20 +26,23 @@ the "Donate" edition. I2P funding is handled by meeh.{% endtrans %}<br>
<br>
{% trans %}The following addresses are valid as of June 10th, 2019. Please note
that any other addresses not listed here are no longer valid. Please note that
addresses may update and more coins may be added.{% endtrans %}
addresses may update and more coins may be added. {% endtrans %}
<br><br>
{% trans %} Double-Clicking on the cryptocurrency address will copy it onto your
clipboard.{% endtrans %}
<br></p>
<b>{% trans %}BTC Address{% endtrans %}: 3AtDiRUiyDHTSALRxsEZ7yqmB7piwaowaY</b><br>
<img width="250px" src="{{ url_for('static', filename='images/donate/cur-btc-addr.png') }}" /><br>
<b>{% trans %}LTC Address{% endtrans %}: MN55tu4y7UtdPXUk9WvCSfy4nGUW79DZpN</b><br>
<img width="250px" src="{{ url_for('static', filename='images/donate/cur-ltc-addr.png') }}" /><br>
<b>{% trans %}ETH Address{% endtrans %}: 0xfC35D2225bA2739eCC5a1e50676a8DbC03569C27</b><br>
<img width="250px" src="{{ url_for('static', filename='images/donate/cur-eth-addr.png') }}" /><br>
<b>{% trans %}ANC Address{% endtrans %}: ANi2pB8RTeuWFf9wki6Ffiv9RJqioQydrH</b><br>
<img width="250px" src="{{ url_for('static', filename='images/donate/cur-anc-addr.png') }}" /><br>
<b>{% trans %}XMR Address{% endtrans %}: 447kucUDzM21jDxdmx7h2jFT4UT4PprD8EMjDk4Bc471gRGkbeZSfSPHcB7JtiumR7gNRJgKqf1dHa2T49nQ7jsfSZSfoLA</b><br>
<img width="250px" src="{{ url_for('static', filename='images/donate/cur-xmr-addr.png') }}" /><br>
<img class="qrcode" width="250px" src="{{ url_for('static', filename='images/donate/cur-btc-addr.png') }}" />
<b class="address">{% trans %}BTC Address{% endtrans %}:</b> <textarea ondblclick="copy(this)" class="coinaddr" rows="1" readonly>3AtDiRUiyDHTSALRxsEZ7yqmB7piwaowaY</textarea><br>
<img class="qrcode" width="250px" src="{{ url_for('static', filename='images/donate/cur-ltc-addr.png') }}" />
<b class="address">{% trans %}LTC Address{% endtrans %}:</b> <textarea ondblclick="copy(this)" class="coinaddr" rows="1" readonly>MN55tu4y7UtdPXUk9WvCSfy4nGUW79DZpN</textarea><br>
<img class="qrcode" width="250px" src="{{ url_for('static', filename='images/donate/cur-eth-addr.png') }}" />
<b class="address">{% trans %}ETH Address{% endtrans %}:</b> <textarea ondblclick="copy(this)" class="coinaddr" rows="1" readonly>0xfC35D2225bA2739eCC5a1e50676a8DbC03569C27</textarea><br>
<img class="qrcode" width="250px" src="{{ url_for('static', filename='images/donate/cur-anc-addr.png') }}" />
<b class="address">{% trans %}ANC Address{% endtrans %}:</b> <textarea ondblclick="copy(this)" class="coinaddr" rows="1" readonly>ANi2pB8RTeuWFf9wki6Ffiv9RJqioQydrH</textarea><br>
<img class="qrcode" width="250px" src="{{ url_for('static', filename='images/donate/cur-xmr-addr.png') }}" />
<b class="address">{% trans %}XMR Address{% endtrans %}:</b> <textarea ondblclick="copy(this)" class="coinaddr" rows="1" readonly>447kucUDzM21jDxdmx7h2jFT4UT4PprD8EMjDk4Bc471gRGkbeZSfSPHcB7JtiumR7gNRJgKqf1dHa2T49nQ7jsfSZSfoLA</textarea><br>
<p>{% trans %}We now also accept paypal donations!{% endtrans %}</p>
<p><b>{% trans %}We now also accept paypal donations!{% endtrans %}</b></p>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick" />
<input type="hidden" name="hosted_button_id" value="WJA7BJTH89JKN" />
@@ -47,6 +50,30 @@ addresses may update and more coins may be added.{% endtrans %}
<img alt="" border="0" src="https://www.paypal.com/en_NO/i/scr/pixel.gif" width="1" height="1" />
</form>
<div class="emailforms">
<h2>{% trans %}Let us know about your donation{% endtrans %}</h2>
<p>{% trans %}If you wish, you can inform us of your donation using the form just below.
This is not a required step for your donation to succeed, but if you want to
make sure we know you're out there, get ahold of us here.{% endtrans %}
</p>
<script type="text/javascript">
function copy(that){
var inp = document.createElement('textarea');
document.body.appendChild(inp)
inp.value = that.textContent
inp.select();
document.execCommand('copy', false);
inp.remove();
}
</script>
<form action="mailto:someone@example.com" method="post" enctype="text/plain">
<span class="emaillabel">{% trans %}Preferred Name: {% endtrans %}</span><input class="emailform" type="text" name="firstname"><br>
<span class="emaillabel">{% trans %}E-mail: {% endtrans %}</span><input class="emailform" type="text" name="mail"><br>
<span class="emaillabel">{% trans %}Message: {% endtrans %}</span><input class="emailform messagebox" type="text" name="comment"><br><br>
<input class="emailbutton" type="submit" value="Send">
<input class="emailbutton" type="reset" value="Reset">
</form>
</div>
<h2>{% trans %}Tax Status{% endtrans %}</h2>
<p>{% trans -%}

View File

@@ -3,8 +3,8 @@ NTCP 2
======
.. meta::
:category: Transports
:lastupdated: 2019-04-08
:accuratefor: 0.9.36
:lastupdated: August 2019
:accuratefor: 0.9.42
.. contents::
@@ -511,12 +511,13 @@ Note: All fields are big-endian.
{% highlight lang='dataspec' %}
+----+----+----+----+----+----+----+----+
|Rsvd| ver| padLen | m3p2len | Rsvd(0) |
| id | ver| padLen | m3p2len | Rsvd(0) |
+----+----+----+----+----+----+----+----+
| tsA | Reserved (0) |
+----+----+----+----+----+----+----+----+
Reserved :: 7 bytes total, set to 0 for compatibility with future options
id :: 1 byte, the network ID (currently 2, except for test networks)
As of 0.9.42. See proposal 147.
ver :: 1 byte, protocol version (currently 2)
@@ -527,6 +528,8 @@ Note: All fields are big-endian.
m3p2Len :: 2 bytes, length of the the second AEAD frame in SessionConfirmed
(message 3 part 2) See notes below
Rsvd :: 2 bytes, set to 0 for compatibility with future options
tsA :: 4 bytes, Unix timestamp, unsigned seconds.
Wraps around in 2106
@@ -616,9 +619,12 @@ Notes
message 1 and reading in the padding. There should be no extra data from Alice,
as Bob has not responded with message 2 yet.
Issues
``````
- Is the fixed-size option block big enough?
- The network ID field is used to quickly identify cross-network connections.
If this field is nonzero, and does not match Bob's network ID,
Bob should disconnect and block future connections.
Any connections from test networks should have a different ID and will fail the test.
As of 0.9.42. See proposal 147 for more information.

View File

@@ -6,7 +6,7 @@ NTCP 2
:editor: manas, str4d, zzz
:created: 2014-02-13
:thread: http://zzz.i2p/topics/1577
:lastupdated: 2019-04-08
:lastupdated: 2019-08-13
:status: Closed
:supercedes: 106
:target: 0.9.36
@@ -848,12 +848,13 @@ Note: All fields are big-endian.
{% highlight lang='dataspec' %}
+----+----+----+----+----+----+----+----+
|Rsvd| ver| padLen | m3p2len | Rsvd(0) |
| id | ver| padLen | m3p2len | Rsvd(0) |
+----+----+----+----+----+----+----+----+
| tsA | Reserved (0) |
+----+----+----+----+----+----+----+----+
Reserved :: 7 bytes total, set to 0 for compatibility with future options
id :: 1 byte, the network ID (currently 2, except for test networks)
As of 0.9.42. See proposal 147.
ver :: 1 byte, protocol version (currently 2)
@@ -864,6 +865,8 @@ Note: All fields are big-endian.
m3p2Len :: 2 bytes, length of the the second AEAD frame in SessionConfirmed
(message 3 part 2) See notes below
Rsvd :: 2 bytes, set to 0 for compatibility with future options
tsA :: 4 bytes, Unix timestamp, unsigned seconds.
Wraps around in 2106
@@ -953,9 +956,10 @@ Notes
message 1 and reading in the padding. There should be no extra data from Alice,
as Bob has not responded with message 2 yet.
Issues
``````
- Is the fixed-size option block big enough?
- The network ID field is used to quickly identify cross-network connections.
If this field is nonzero, and does not match Bob's network ID,
Bob should disconnect and block future connections.
As of 0.9.42. See proposal 147 for more information.

View File

@@ -5,8 +5,10 @@ Transport Network ID Check
:author: zzz
:created: 2019-02-28
:thread: http://zzz.i2p/topics/2687
:lastupdated: 2019-08-05
:status: Open
:lastupdated: 2019-08-13
:status: Closed
:target: 0.9.42
:implementedin: 0.9.42
.. contents::
@@ -86,7 +88,7 @@ Add the following specification for valid network id values:
================================== ==============
Payload Block Type NetID Number
Usage NetID Number
================================== ==============
Reserved 0
Reserved 1
@@ -137,9 +139,9 @@ New:
HMAC-MD5(encryptedPayload + IV + (payloadLength ^ protocolVersion ^ ((netid - 2) << 8)), macKey)
'+' means append, '^' means exclusive-or, '<<' means left shift.
payloadLength is a 2 byte unsigned integer
protocolVersion is one byte 0x00
netid is a 1 byte unsigned integer
payloadLength is a two byte unsigned integer, big endian
protocolVersion is two bytes 0x0000, big endian
netid is a two byte unsigned integer, big endian, legal values are 2-254
{% endhighlight %}

View File

@@ -3,8 +3,8 @@ SSU Protocol Specification
==========================
.. meta::
:category: Transports
:lastupdated: July 2019
:accuratefor: 0.9.41
:lastupdated: August 2019
:accuratefor: 0.9.42
.. contents::
@@ -36,14 +36,14 @@ encrypted with the appropriate key. The MAC used is HMAC-MD5, truncated to 16
bytes, while the key is a full 32 byte AES256 key. The specific construct of
the MAC is the first 16 bytes from::
HMAC-MD5(encryptedPayload + IV + (payloadLength ^ protocolVersion), macKey)
HMAC-MD5(encryptedPayload + IV + (payloadLength ^ protocolVersion ^ ((netid - 2) << 8)), macKey)
where '+' means append and '^' means exclusive-or.
The IV is generated randomly for each packet. The encryptedPayload is the
encrypted version of the message starting with the flag byte
(encrypt-then-MAC). The payloadLength used in the MAC is a 2 byte unsigned
integer. Note that protocolVersion is 0, so the exclusive-or is a no-op. The
integer, big endian. Note that protocolVersion is 0, so the exclusive-or is a no-op. The
macKey is either the introduction key or is constructed from the exchanged DH
key (see details below), as specified for each message below.
@@ -54,10 +54,19 @@ The payload itself (that is, the message starting with the flag byte) is
AES256/CBC encrypted with the IV and the sessionKey, with replay prevention
addressed within its body, explained below.
The protocolVersion is a 2 byte unsigned integer and is currently set to 0.
The protocolVersion is a 2 byte unsigned integer, big endian, and is currently set to 0.
Peers using a different protocol version will not be able to communicate with
this peer, though earlier versions not using this flag are.
The exclusive OR of ((netid - 2) << 8) is used to quickly identify cross-network connections.
The netid is a 2 byte unsigned integer, big endian, and is currently set to 2.
As of 0.9.42. See proposal 147 for more information.
As the current network ID is 2, this is a no-op for the current network and is backward compatible.
Any connections from test networks should have a different ID and will fail the HMAC.
HMAC Specification
------------------

View File

@@ -2,8 +2,8 @@
Software Update Specification
=============================
.. meta::
:lastupdated: March 2017
:accuratefor: 0.9.29
:lastupdated: August 2019
:accuratefor: 0.9.42
.. contents::
@@ -338,6 +338,10 @@ Goals
Specification
`````````````
1. The file must be named "i2pseeds.su3".
As of 0.9.42, the requestor should append a query string "?netid=2" to the request URL,
assuming the current network ID of 2.
This may be used to prevent cross-network connections. Test networks should set
a different network ID. See proposal 147 for details.
2. The file must be in the same directory as the router infos on the web server.

View File

@@ -753,3 +753,78 @@ pre.literal-block {
width: 128px;
}
/*special formatting for tables and textareas inside the content*/
div#content table {
table-layout: auto;
width: 90%;
border: 1px solid;
font-size: 0.70rem;
}
div#content td {
border: 1px solid;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
div#content .coinaddr {
margin-top: .1rem;
font-size: 1rem;
font-weight: bold;
white-space: nowrap;
width: 68%;
height: 1.12rem;
overflow-x: hidden;
resize: horizontal;
margin-top: 2rem;
border: none;
}
div#content .qrcode {
transition: transform .3s;
width: 50px;
height: 50px;
}
div#content .qrcode:hover {
transform: scale(5) translateX(20px);
}
div#content .emaillabel {
width: 25%;
display: inline-block;
font-weight: bold;
margin-top: .2rem;
margin-bottom: .2rem;
}
/*delete this section when we have an e-mail address to use on the donations page*/
div#content .emailforms {
display: none;
}
div#content .emailform {
width: 70%;
display: inline-block;
}
div#content .emailbutton {
font-size: 1.s1rem;
margin: 1px;
padding: 1px;
font-weight: bold;
height: 70px;
width: 47%;
background-color: #60ab60;
border: none;
color: white;
text-align: center;
text-decoration: none;
display: inline-block;
}
div#content .messagebox {
height: 100px;
}