forked from I2P_Developers/i2p.www
- Syndie 1.105b blog post
- Add psi to team for backup news - Add Android requirements and warning to download page - Android 0.9.10 - Specs: More delivery instruction fixups For consistency, make all the definition sections use <pre> not {% highlight %}
This commit is contained in:
106
i2p2www/blog/2014/01/21/Syndie-1.105b-Release.rst
Normal file
106
i2p2www/blog/2014/01/21/Syndie-1.105b-Release.rst
Normal file
@ -0,0 +1,106 @@
|
||||
{% trans -%}
|
||||
==============
|
||||
Syndie 1.105b Release
|
||||
==============
|
||||
{%- endtrans %}
|
||||
.. meta::
|
||||
:date: 2014-01-21
|
||||
:category: release
|
||||
:excerpt: {% trans %}Update to HSQLDB 2.3.1{% endtrans %}
|
||||
|
||||
{% trans -%}
|
||||
This is the first stable release since February 2013.
|
||||
It is essentially the same as 1.104b-7-rc, with some translation updates.
|
||||
{%- endtrans %}
|
||||
|
||||
{% trans -%}
|
||||
All binaries and source packages are at `syndie.de`_ and `syndie.i2p`_.
|
||||
Plugins are available at `plugins.i2p`_ and `stats.i2p`_.
|
||||
{%- endtrans %}
|
||||
|
||||
{% trans -%}
|
||||
For those of you upgrading from 1.103b, you will find syndie startup and shutdown much faster due to the new version of HSQLDB.
|
||||
{%- endtrans %}
|
||||
|
||||
{% trans -%}
|
||||
If you have a large database or an identity you wish to preserve,
|
||||
you may wish to back up your entire ~/.syndie directory before you start.
|
||||
The upgrade process does make its own backup, however you may find it easier to use your own backup if the upgrade fails.
|
||||
{%- endtrans %}
|
||||
|
||||
{% trans -%}
|
||||
Upgrades from 1.103b may fail for some people due to database corruption due to bugs in the old HSQLDB.
|
||||
Unfortunately, we don't know how to fix it.
|
||||
Your alternatives are to start over with a clean database, or stay with 1.103b forever.
|
||||
Sorry about that.
|
||||
{%- endtrans %}
|
||||
|
||||
.. _`stats.i2p`: http://stats.i2p/i2p/plugins/
|
||||
.. _`plugins.i2p`: http://plugins.i2p/plugins/syndie/
|
||||
.. _`syndie.i2p`: http://www.syndie.i2p/download.html
|
||||
.. _`syndie.de`: https://syndie.de/download
|
||||
|
||||
{% trans -%}
|
||||
As usual, we recommend that you update to this release.
|
||||
The best way to maintain security and help the network is to run the latest release.
|
||||
{%- endtrans %}
|
||||
|
||||
**{% trans %}RELEASE DETAILS{% endtrans %}**
|
||||
|
||||
|
||||
**{% trans %}Bug Fixes{% endtrans %}**
|
||||
|
||||
- Fix NPE in SyndieTreeListener
|
||||
- Fix, or maybe just move, NPE in addURI/getURI
|
||||
|
||||
**{% trans %}GUI Improvements and Fixes{% endtrans %}**
|
||||
|
||||
- Don't open message view tab for unreadable messages or stub messages
|
||||
- Don't fail on duplicate cancel requests
|
||||
- Fix BrowseForumTab text on forum with blank name
|
||||
- For consistency, always put cancel button to the left of OK/Save
|
||||
- Move message date to date column in syndicator tab
|
||||
- Better formatting of file sizes in Syndicator tab
|
||||
- Clean up internal error popup
|
||||
- Catch dispose errors when changing translation or theme
|
||||
- Add menu item to delete PBE messages and forums
|
||||
- Add keyboard shortcuts in message view tab
|
||||
- Fix dup archive in Syndicator Tab after rename
|
||||
- Don't display PBE messages after deletion
|
||||
- Update to SWT 3.8.2 20130131
|
||||
|
||||
**{% trans %} Syndication{% endtrans %}**
|
||||
|
||||
- Improve import failure propagation and display
|
||||
- More cleanup of Importer and enhanced ImportResults by passing missing key and PBE indications in result code
|
||||
- Simplification of SyncArchive.IncomingAction using Results
|
||||
- Handle and display "stub" cancel messages correctly
|
||||
- Early check for banned target in ImportPost
|
||||
- Reduce default pull policy to 14 days
|
||||
- Only pull indexes needed for pulled messages
|
||||
- Fetch messages newest-first
|
||||
|
||||
**{% trans %}Database{% endtrans %}**
|
||||
|
||||
- Update to DB version 25
|
||||
- Add LOBs for attachments and pages
|
||||
- Increase length limits on cancelledURI, headerValue, and others
|
||||
- Implement offline database backup
|
||||
- Backup database before upgrading to hsqldb 2.x
|
||||
- Add code to migrate large things to LOBs
|
||||
- Enable migration of large attachments and pages to LOBs
|
||||
- Implement retrieval of pages and attachments from LOBs
|
||||
- Implement getAttachmentAsStream for real (unused yet)
|
||||
- Implement storage to LOBs in ImportPost
|
||||
- Sleep a while before shutdown compact
|
||||
- Shutdown compact immediately after upgrade, then reconnect, as recommended by hsqldb
|
||||
- Use attachment size from messageAttachment table, not actual size from messageAttachmentData table
|
||||
|
||||
**{% trans %}Other{% endtrans %}**
|
||||
|
||||
- Use DataHelper.loadProps() to deserialize properties UTF-8-safely
|
||||
- Add script for the hsqldb database manager tool
|
||||
- More code refactoring
|
||||
- {% trans %}New translations{% endtrans %}: Polish, Portuguese, Romainian
|
||||
- {% trans %}Translation updates{% endtrans %}
|
||||
|
@ -2,7 +2,7 @@
|
||||
{% block title %}{{ _('Download') }}{% endblock %}
|
||||
{% set i2pinstall_windows_sig = '95e7fb6b62efdc9d65b818360795380628ed8ceb396d5ccf5f263ea4d2bc8d79' %}
|
||||
{% set i2pinstall_jar_sig = '171ff170a4d97dd9ef0e352471448e0254cfac5c9e91bb07377b41790aa9cd92' %}
|
||||
{% set i2p_android_sig = '61a2e1c602680b852ae6e0a391cf6a35860e273437a2786ea00fa731a7d3d427' %}
|
||||
{% set i2p_android_sig = 'e74f8d4d541fb89586f9adcfe9d41ac28e8c6aae2c29798cacfe33f9b5752dfc' %}
|
||||
{% set i2psource_sig = '20bcd1a62101b15b423ae6dd81a76b1806d67a28a5bf0f341803a7a61178d494' %}
|
||||
{% set i2pupdate_sig = '4e82dce86efccc86759ee010da058af23d2cbecbfccf5ab3555e9ccb4ccd912e' %}
|
||||
{% block content %}
|
||||
@ -120,7 +120,7 @@ or type <tt>java -version</tt> at your command prompt.
|
||||
</div>
|
||||
<div class="details">
|
||||
<div class="file">
|
||||
<a href="http://{{ i2pconv('stats.i2p') }}/i2p.apk">i2p-android-0.9.9-0_b0-API8.apk</a>
|
||||
<a href="http://{{ i2pconv('stats.i2p') }}/i2p.apk">i2p-android-0.9.10-0_b1-API8.apk</a>
|
||||
<div class="sig">
|
||||
(SHA256 <code>{{ i2p_android_sig }}</code>
|
||||
)
|
||||
@ -132,6 +132,15 @@ or type <tt>java -version</tt> at your command prompt.
|
||||
<a href="{{ str4durl }}">str4d's eepsite</a>.
|
||||
{%- endtrans %}
|
||||
<div class="warning">
|
||||
{% trans -%}
|
||||
The I2P Android app is in development and does NOT currently provide strong anonymity.
|
||||
{%- endtrans %}
|
||||
{% trans -%}
|
||||
Requires Android 2.2 (Froyo) or higher.
|
||||
{%- endtrans %}
|
||||
{% trans -%}
|
||||
512 MB RAM minimum; 1 GB recommended.
|
||||
{%- endtrans %}
|
||||
{% trans -%}
|
||||
The release and dev versions of the I2P APK are not compatible, as they
|
||||
are signed by zzz and str4d respectively. Uninstall one before installing
|
||||
|
@ -10,7 +10,7 @@ network.
|
||||
|
||||
<table border="0">
|
||||
<tr>
|
||||
<td valign="top" rowspan="20"><b>{{ _('Admin') }}</b></td>
|
||||
<td valign="top" rowspan="21"><b>{{ _('Admin') }}</b></td>
|
||||
<td valign="top"><b>{{ _('Project Manager') }}</b></td>
|
||||
<td valign="top">zzz</td>
|
||||
<td valign="top"><i>{{ _('point of contact of last resort') }}</i></td>
|
||||
@ -105,6 +105,11 @@ network.
|
||||
<td valign="top">eche|on</td>
|
||||
<td valign="top"><i>{{ _('manage router console news feed') }}</i></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top"><b>{{ _('Backup News Admin') }}</b></td>
|
||||
<td valign="top">psi</td>
|
||||
<td valign="top"><i>{{ _('manage the backup news feed') }}</i></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top"><b>{{ _('Director of passion') }}</b></td>
|
||||
<td valign="top" class="blue">[{{ _('vacant') }}]</td>
|
||||
|
@ -47,7 +47,7 @@ Short (SSU, 5 bytes):
|
||||
{% endhighlight %}
|
||||
|
||||
<h4>Definition</h4>
|
||||
{% highlight lang='dataspec' %}
|
||||
<pre>
|
||||
type :: `Integer`
|
||||
length -> 1 byte
|
||||
|
||||
@ -84,7 +84,8 @@ data :: Data
|
||||
length -> $size bytes
|
||||
|
||||
purpose -> actual message contents
|
||||
{% endhighlight %}
|
||||
</pre>
|
||||
|
||||
<h4>Notes</h4>
|
||||
<ul><li>
|
||||
When transmitted over <a href="{{ site_url('docs/transport/ssu') }}">SSU</a>,
|
||||
@ -198,7 +199,7 @@ ElGamal and AES encrypted:
|
||||
{% endhighlight %}
|
||||
|
||||
<h4>Definition</h4>
|
||||
{% highlight lang='dataspec' %}
|
||||
<pre>
|
||||
unencrypted:
|
||||
|
||||
receive_tunnel :: `TunnelId`
|
||||
@ -259,7 +260,7 @@ encrypted_data :: ElGamal and AES encrypted data
|
||||
|
||||
total length: 528
|
||||
|
||||
{% endhighlight %}
|
||||
</pre>
|
||||
|
||||
<h4>Notes</h4>
|
||||
<ul><li>
|
||||
@ -293,7 +294,7 @@ unencrypted:
|
||||
+----+----+----+----+----+----+----+----+
|
||||
{% endhighlight %}
|
||||
<h4>Definition</h4>
|
||||
{% highlight lang='dataspec' %}
|
||||
<pre>
|
||||
unencrypted:
|
||||
bytes 0-31 : SHA-256 Hash of bytes 32-527
|
||||
bytes 32-526 : random data
|
||||
@ -304,7 +305,7 @@ bytes 0-527: AES-encrypted record(note: same size as BuildRequestRecord)
|
||||
|
||||
total length: 528
|
||||
|
||||
{% endhighlight %}
|
||||
</pre>
|
||||
|
||||
<h4>Notes</h4>
|
||||
<ul><li>
|
||||
@ -337,8 +338,8 @@ unencrypted:
|
||||
<h4>Definition</h4>
|
||||
<pre>
|
||||
unencrypted:
|
||||
Delivery Instructions :: <a href="{{ site_url('docs/spec/tunnel-message') }}#delivery">as defined here</a>
|
||||
Length varies but is typically 39, 43, or 47 bytes
|
||||
Delivery Instructions :: as defined below
|
||||
Length varies but is typically 1, 33, or 37 bytes
|
||||
|
||||
I2NP Message :: Any I2NP Message
|
||||
|
||||
@ -377,13 +378,14 @@ Certificate :: Always NULL in the current implementation (3 bytes total, all zer
|
||||
<h3 id="struct_DeliveryInstructions">Garlic Clove Delivery Instructions</h3>
|
||||
|
||||
<p>
|
||||
This specification is for Delivery Instructions inside Garlic Cloves only.
|
||||
Note that "Delivery Instructions" are also used inside
|
||||
Tunnel Messages,
|
||||
where the format is significantly different.
|
||||
See the
|
||||
<a href="{{ site_url('docs/spec/tunnel-message') }}#delivery">Tunnel Message documentation</a>
|
||||
for more details.
|
||||
Do NOT use the following specification for Tunnel Message Clove Delivery Instructions!
|
||||
for details.
|
||||
Do NOT use the following specification for Tunnel Message Delivery Instructions!
|
||||
|
||||
|
||||
{% highlight lang='dataspec' %}
|
||||
@ -587,7 +589,8 @@ reply gateway:
|
||||
This is the router hash of the inbound gateway of the tunnel the response should be sent to
|
||||
|
||||
data:
|
||||
If type == 0, data is a 2-byte integer specifying the number of bytes that follow, followed by a gzip-compressed `RouterInfo`.
|
||||
If type == 0, data is a 2-byte integer specifying the number of bytes that follow,
|
||||
followed by a gzip-compressed `RouterInfo`.
|
||||
If type == 1, data is an uncompressed `LeaseSet`.
|
||||
</pre>
|
||||
|
||||
@ -660,7 +663,7 @@ The key is the "real" hash of the RouterIdentity or Destination, NOT the routing
|
||||
{% endhighlight %}
|
||||
|
||||
<h4>Definition</h4>
|
||||
{% highlight lang='dataspec' %}
|
||||
<pre>
|
||||
key ::
|
||||
32 bytes
|
||||
SHA256 hash of the object to lookup
|
||||
@ -717,7 +720,7 @@ reply_tags ::
|
||||
one or more 32 byte `SessionTags` (typically one)
|
||||
only included if encryptionFlag == 1, only as of release 0.9.7
|
||||
|
||||
{% endhighlight %}
|
||||
</pre>
|
||||
|
||||
<h4>Notes</h4>
|
||||
<ul><li>
|
||||
@ -781,7 +784,7 @@ The lookup key and exclude keys are the "real" hashes, NOT routing keys.
|
||||
{% endhighlight %}
|
||||
|
||||
<h4>Definition</h4>
|
||||
{% highlight lang='dataspec' %}
|
||||
<pre>
|
||||
key ::
|
||||
32 bytes
|
||||
SHA256 of the object being searched
|
||||
@ -797,7 +800,7 @@ peer_hash ($num entries) ::
|
||||
from ::
|
||||
32 bytes
|
||||
SHA256 of the `RouterInfo` of the router this reply was sent from
|
||||
{% endhighlight %}
|
||||
</pre>
|
||||
|
||||
<h4>Notes</h4>
|
||||
<ul><li>
|
||||
@ -831,7 +834,7 @@ The lookup key, peer hashes, and from hash are "real" hashes, NOT routing keys.
|
||||
{% endhighlight %}
|
||||
|
||||
<h4>Definition</h4>
|
||||
{% highlight lang='dataspec' %}
|
||||
<pre>
|
||||
msg_id ::
|
||||
4 bytes
|
||||
unique ID of the message we deliver the DeliveryStatus for (see common I2NP header for details)
|
||||
@ -839,7 +842,7 @@ msg_id ::
|
||||
time_stamp :: Date
|
||||
8 bytes
|
||||
time the message was successfully created or delivered
|
||||
{% endhighlight %}
|
||||
</pre>
|
||||
|
||||
<h4>Notes</h4>
|
||||
<ul><li>
|
||||
@ -894,7 +897,7 @@ unencrypted data:
|
||||
{% endhighlight %}
|
||||
|
||||
<h4>Definition</h4>
|
||||
{% highlight lang='dataspec' %}
|
||||
<pre>
|
||||
Encrypted:
|
||||
|
||||
length ::
|
||||
@ -919,7 +922,7 @@ Message_ID :: 4 byte `Integer`
|
||||
|
||||
Expiration :: `Date` (8 bytes)
|
||||
|
||||
{% endhighlight %}
|
||||
</pre>
|
||||
|
||||
<h4>Notes</h4>
|
||||
<ul>
|
||||
@ -969,7 +972,7 @@ Expiration :: `Date` (8 bytes)
|
||||
{% endhighlight %}
|
||||
|
||||
<h4>Definition</h4>
|
||||
{% highlight lang='dataspec' %}
|
||||
<pre>
|
||||
tunnelId ::
|
||||
4 byte `TunnelID`
|
||||
identifies the tunnel this message is directed at
|
||||
@ -977,7 +980,7 @@ tunnelId ::
|
||||
data ::
|
||||
1024 bytes
|
||||
payload data.. fixed to 1024 bytes
|
||||
{% endhighlight %}
|
||||
</pre>
|
||||
|
||||
<h4>Notes</h4>
|
||||
<ul>
|
||||
@ -1001,7 +1004,7 @@ data ::
|
||||
{% endhighlight %}
|
||||
|
||||
<h4>Definition</h4>
|
||||
{% highlight lang='dataspec' %}
|
||||
<pre>
|
||||
tunnelId ::
|
||||
4 byte `TunnelID`
|
||||
identifies the tunnel this message is directed at
|
||||
@ -1013,7 +1016,7 @@ length ::
|
||||
data ::
|
||||
$length bytes
|
||||
actual payload of this message
|
||||
{% endhighlight %}
|
||||
</pre>
|
||||
|
||||
<h4>Notes</h4>
|
||||
<ul>
|
||||
@ -1038,7 +1041,7 @@ data ::
|
||||
{% endhighlight %}
|
||||
|
||||
<h4>Definition</h4>
|
||||
{% highlight lang='dataspec' %}
|
||||
<pre>
|
||||
length ::
|
||||
4 bytes
|
||||
length of the payload
|
||||
@ -1046,7 +1049,7 @@ length ::
|
||||
data ::
|
||||
$length bytes
|
||||
actual payload of this message
|
||||
{% endhighlight %}
|
||||
</pre>
|
||||
|
||||
<h3 id="msg_TunnelBuild">TunnelBuild</h3>
|
||||
{% highlight lang='dataspec' %}
|
||||
@ -1066,11 +1069,11 @@ data ::
|
||||
{% endhighlight %}
|
||||
|
||||
<h4>Definition</h4>
|
||||
{% highlight lang='dataspec' %}
|
||||
<pre>
|
||||
Just 8 `BuildRequestRecords` attached together
|
||||
record size: 528 bytes
|
||||
total size: 8*528 = 4224 bytes
|
||||
{% endhighlight %}
|
||||
</pre>
|
||||
|
||||
<h4>Notes</h4>
|
||||
<ul>
|
||||
@ -1102,7 +1105,7 @@ same format as `TunnelBuild` message, with `BuildResponseRecords`
|
||||
{% endhighlight %}
|
||||
|
||||
<h4>Definition</h4>
|
||||
{% highlight lang='dataspec' %}
|
||||
<pre>
|
||||
Same format as TunnelBuildMessage, except for the addition of an "num" field in front and $num number of Build Request Records instead of 8
|
||||
|
||||
num ::
|
||||
@ -1111,7 +1114,7 @@ num ::
|
||||
|
||||
record size: 528 bytes
|
||||
total size: 1 + $num*528
|
||||
{% endhighlight %}
|
||||
</pre>
|
||||
|
||||
<h4>Notes</h4>
|
||||
<ul>
|
||||
|
@ -79,7 +79,7 @@ These are the contents of a tunnel data message when decrypted.
|
||||
+ +----+----+----+----+
|
||||
| | Checksum |
|
||||
+----+----+----+----+----+----+----+----+
|
||||
| nonzero padding.. |
|
||||
| nonzero padding... |
|
||||
~ ~
|
||||
| |
|
||||
+ +----+
|
||||
@ -164,18 +164,19 @@ is either not fragmented or this is the first fragment in the message. If it is
|
||||
set, this is a follow on fragment.</p>
|
||||
|
||||
<p>
|
||||
This specification is for Delivery Instructions inside Tunnel Messages only.
|
||||
Note that "Delivery Instructions" are also used inside
|
||||
<a href="{{ site_url('docs/spec/i2np') }}#struct_GarlicClove">Garlic Cloves</a>,
|
||||
where the format is significantly different.
|
||||
See the
|
||||
<a href="{{ site_url('docs/spec/i2np') }}#struct_GarlicClove">Garlic Clove documentation</a>
|
||||
for more details.
|
||||
<a href="{{ site_url('docs/spec/i2np') }}#struct_DeliveryInstructions">I2NP documentation</a>
|
||||
for details.
|
||||
Do NOT use the following specification for Garlic Clove Delivery Instructions!
|
||||
|
||||
|
||||
<h3>First Fragment Delivery Instructions</h3>
|
||||
<p>If the MSB of the first byte is 0, this is an initial I2NP message fragment,
|
||||
or a complete I2NP message, and the instructions are:</p>
|
||||
or a complete (unfragmented) I2NP message, and the instructions are:</p>
|
||||
{% highlight lang='dataspec' %}
|
||||
+----+----+----+----+----+----+----+----+
|
||||
|flag| Tunnel ID (opt) | |
|
||||
@ -186,9 +187,9 @@ or a complete I2NP message, and the instructions are:</p>
|
||||
+ +
|
||||
| |
|
||||
+ +--------------+
|
||||
| |dly | Msg... |
|
||||
| |dly | Message
|
||||
+----+----+----+----+----+----+----+----+
|
||||
|..ID(opt)| ext opts... (opt) | size |
|
||||
ID (opt) |extended opts (opt)| size |
|
||||
+----+----+----+----+----+----+----+----+
|
||||
{% endhighlight %}
|
||||
|
||||
@ -197,9 +198,9 @@ or a complete I2NP message, and the instructions are:</p>
|
||||
flag:
|
||||
1 byte
|
||||
Bit order: 76543210
|
||||
bit 7: 0 to specify an initial fragment
|
||||
bit 7: 0 to specify an initial fragment or an unfragmented message
|
||||
bits 6-5: delivery type
|
||||
0x0 = LOCAL, 0x01 = TUNNEL, 0x02 = ROUTER, 0x03 = unused
|
||||
0x0 = LOCAL, 0x01 = TUNNEL, 0x02 = ROUTER, 0x03 = unused, invalid
|
||||
Note: LOCAL is used for inbound tunnels only, unimplemented for outbound tunnels
|
||||
bit 4: delay included? Unimplemented, always 0
|
||||
If 1, a delay byte is included
|
||||
@ -231,6 +232,7 @@ Delay:
|
||||
Message ID:
|
||||
4 bytes
|
||||
Optional, present if this message is the first of 2 or more fragments
|
||||
(i.e. if the fragmented bit is 1)
|
||||
An ID that uniquely identifies all fragments as belonging to a single message
|
||||
(the current implementation uses the <a href="{{ site_url('docs/spec/i2np') }}#struct_header">I2NP Message ID</a>)
|
||||
|
||||
@ -261,13 +263,14 @@ Total length: Typical length is:
|
||||
{% endhighlight %}
|
||||
|
||||
<h4>Definition</h4>
|
||||
{% highlight lang='dataspec' %}
|
||||
<pre>
|
||||
frag ::
|
||||
1 byte
|
||||
Bit order: 76543210
|
||||
binary 1nnnnnnd
|
||||
the first bit is 1 to indicate this is a follow-on fragment
|
||||
nnnnnn is the 6 bit fragment number from 1 to 63
|
||||
d is 1 to indicate the last fragment, 0 otherwise
|
||||
bit 7: 1 to indicate this is a follow-on fragment
|
||||
bits 6-1: nnnnnn is the 6 bit fragment number from 1 to 63
|
||||
bit 0: d is 1 to indicate the last fragment, 0 otherwise
|
||||
|
||||
Message ID ::
|
||||
4 bytes
|
||||
@ -281,8 +284,7 @@ size ::
|
||||
valid values: 1 to 996
|
||||
|
||||
total length: 7 bytes
|
||||
|
||||
{% endhighlight %}
|
||||
</pre>
|
||||
|
||||
<h3><a href="http://docs.i2p-projekt.de/javadoc/net/i2p/data/i2np/DeliveryInstructions.html">Delivery Instructions Javadoc</a></h3>
|
||||
|
||||
|
Reference in New Issue
Block a user