- 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:
zzz
2014-02-08 19:29:16 +00:00
parent c1f0d38916
commit 4561e050b5
5 changed files with 171 additions and 46 deletions

View 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 %}

View File

@ -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

View File

@ -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>

View File

@ -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>

View File

@ -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>