Compare commits
1 Commits
debian-var
...
dns-applic
Author | SHA1 | Date | |
---|---|---|---|
9ca8429af7 |
1
.gitignore
vendored
1
.gitignore
vendored
@ -5,4 +5,3 @@
|
||||
env/
|
||||
i2p2www/translations/*/LC_MESSAGES/*.mo
|
||||
*~
|
||||
.vscode
|
||||
|
@ -22,9 +22,8 @@ except ImportError:
|
||||
###########
|
||||
# Constants
|
||||
|
||||
CURRENT_I2P_VERSION = '1.8.0'
|
||||
CURRENT_I2P_FIREFOX_PROFILE_VERSION = '1.8.0'
|
||||
CURRENT_I2P_OSX_VERSION = '1.8.0'
|
||||
CURRENT_I2P_VERSION = '1.5.0'
|
||||
CURRENT_I2P_FIREFOX_PROFILE_VERSION = '1.05.0'
|
||||
|
||||
CANONICAL_DOMAIN = 'geti2p.net'
|
||||
|
||||
|
@ -139,12 +139,13 @@ tunnels.conf
|
||||
|
||||
[SSH-SERVER]
|
||||
type = server
|
||||
host = 127.0.0.1
|
||||
port = 22
|
||||
inbound.length = 1
|
||||
outbound.length = 1
|
||||
inbound.quantity = 5
|
||||
outbound.quantity = 5
|
||||
inbound.backupQuantity = 2
|
||||
outbound.backupQuantity = 2
|
||||
i2cp.reduceOnIdle = true
|
||||
keys = ssh-in.dat
|
||||
|
||||
@ -293,8 +294,10 @@ adjust it for your performance/anonymity needs.
|
||||
outbound.length = 1
|
||||
inbound.quantity = 5
|
||||
outbound.quantity = 5
|
||||
inbound.backupQuantity = 2
|
||||
outbound.backupQuantity = 2
|
||||
i2cp.dontPublishLeaseSet = true
|
||||
destination = thisshouldbethebase32ofthesshservertunnelabovebefore.b32.i2p
|
||||
destination = bubfjkl2l46pevgnh7yicm2e7rkld4jrgpmruw2ueqn5fa4ag6eq.b32.I2P
|
||||
keys = ssh-in.dat
|
||||
|
||||
{% trans -%}Restart the I2P router on the client{%- endtrans %}
|
||||
|
@ -1,5 +1,5 @@
|
||||
===========================================================
|
||||
{% trans -%}20 Years of Privacy: A Brief History of I2P{%- endtrans %}
|
||||
{% trans -%}20 Years of Privacy: A brief History of I2P{%- endtrans %}
|
||||
===========================================================
|
||||
|
||||
.. meta::
|
||||
|
105
i2p2www/blog/2021/09/18/i2p-bitcoin.draft.rst.bak
Normal file
105
i2p2www/blog/2021/09/18/i2p-bitcoin.draft.rst.bak
Normal file
@ -0,0 +1,105 @@
|
||||
=============================================================
|
||||
{% trans -%}Bitcoin Core adds support for I2P!{%- endtrans %}
|
||||
=============================================================
|
||||
|
||||
.. meta::
|
||||
:author: idk
|
||||
:date: 2021-09-18
|
||||
:category: general
|
||||
:excerpt: {% trans %}A new use case and a signal of growing acceptance{% endtrans %}
|
||||
|
||||
{% trans -%}
|
||||
An event months in the making, Bitcoin Core has added official support for I2P!
|
||||
Bitcoin-over-I2P nodes can interact fully with the rest of the Bitcoin nodes,
|
||||
using the help of nodes that operate within both I2P and the clearnet, making
|
||||
them first-class participants in the Bitcoin network. It's exciting to see
|
||||
large communities like Bitcoin taking notice of the advantages I2P can bring
|
||||
to them providing privacy and reachability to people all over the world.
|
||||
{%- endtrans %}
|
||||
|
||||
{% trans -%}
|
||||
How it Works
|
||||
{%- endtrans %}
|
||||
------------
|
||||
|
||||
{% trans -%}
|
||||
I2P support is automatic, via the SAM API. This is also exciting news, because
|
||||
it highlights some of the things I2P is singularly good at, like empowering
|
||||
application developers to build I2P connections programmatically and
|
||||
conveniently. Bitcoin-over-I2P users can use I2P with no manual configuration by
|
||||
enabling the SAM API and running Bitcoin with I2P enabled.
|
||||
{%- endtrans %}
|
||||
|
||||
{% trans -%}
|
||||
Configuring your I2P Router
|
||||
{%- endtrans %}
|
||||
---------------------------
|
||||
|
||||
{% trans -%}
|
||||
In order to set up an I2P Router to provide anonymous connectivity to bitcoin,
|
||||
the SAM API needs to be enabled. In Java I2P, you should go to `http://127.0.0.1:7657/configclients
|
||||
<http://127.0.0.1:7657/configclients>`_. and start the SAM Application Bridge
|
||||
with the "Start" button. You may also want to enable the SAM Application Bridge
|
||||
by default by checking the "Run at Startup" box and clicking "Save Client
|
||||
Configuration."
|
||||
{%- endtrans %}
|
||||
|
||||
{% trans -%}
|
||||
On i2pd, the SAM API is normally enabled by default, but if it isn't, you should
|
||||
set::
|
||||
|
||||
sam.enabled=true
|
||||
|
||||
in your i2pd.conf file.
|
||||
{%- endtrans %}
|
||||
|
||||
{% trans -%}
|
||||
Configuring your Bitcoin Node for Anonymity and Connectivity
|
||||
{%- endtrans %}
|
||||
------------------------------------------------------------
|
||||
|
||||
{% trans -%}
|
||||
Getting Bitcoin itself launched in an anonyous mode still requires editing some
|
||||
configuration files in the Bitcoin Data Directory, which is %APPDATA%\Bitcoin on
|
||||
Windows, ~/.bitcoin on Linux, and ~/Library/Application Support/Bitcoin/ on Mac
|
||||
OSX. It also requires at least version 22.0.0 for I2P support to be present.
|
||||
After following the following instructions, you should have a private Bitcoin
|
||||
node which uses I2P for I2P connections, and Tor for .onion and clearnet
|
||||
connections, so that all your connections are anonymized. For convenience,
|
||||
Windows users should open their Bitcoin Data Directory by opening the start menu
|
||||
and searching for "Run." Inside the run prompt, type "%APPDATA%\Bitcoin" and
|
||||
press enter.
|
||||
{%- endtrans %}
|
||||
|
||||
{% trans -%}
|
||||
In that directory create a file called "i2p.conf." On Windows, you should make
|
||||
sure that you've add quotes around the file when you save it, in order to
|
||||
prevent Windows from adding a default file extension to the file. The file
|
||||
should contain the following I2P-Related Bitcoin configuration options::
|
||||
|
||||
i2psam=127.0.0.1:7656
|
||||
i2pacceptincoming=true
|
||||
onlynet=i2p
|
||||
|
||||
Next, you should create another file called "tor.conf." The file should contain
|
||||
the following Tor related configuration options::
|
||||
|
||||
proxy=127.0.0.1:9050
|
||||
onion=127.0.0.1:9050
|
||||
onlynet=tor
|
||||
|
||||
Finally, you'll need to "Include" these configuration options in your Bitcoin
|
||||
configuration file, called "bitcoin.conf" in the Data Directory. Add these two
|
||||
lines to your bitcoin.conf file::
|
||||
|
||||
includeconf=i2p.conf
|
||||
includeconf=tor.conf
|
||||
|
||||
Now your Bitcoin node is configured to only use anonymous connections. In order
|
||||
to enable direct connections to remote nodes, remove the lines beginning in::
|
||||
|
||||
onlynet=
|
||||
|
||||
You can do this if you do not require your Bitcoin node to be anonymous, and
|
||||
it helps anonymous users connect to the rest of the Bitcoin network.
|
||||
{%- endtrans %}
|
@ -1,61 +0,0 @@
|
||||
=============================================================
|
||||
{% trans -%}I2P Jpackages get their First Update{%- endtrans %}
|
||||
=============================================================
|
||||
|
||||
.. meta::
|
||||
:author: idk
|
||||
:date: 2021-11-02
|
||||
:category: general
|
||||
:excerpt: {% trans %}New, easier-to-install packages reach a new milestone{% endtrans %}
|
||||
|
||||
{% trans -%}
|
||||
A few months ago we released new packages which we hoped would help with onboarding new
|
||||
people to the I2P network by making the installation and configuration of I2P easier for
|
||||
more people. We removed dozens of steps from the installation process by switching from
|
||||
an external JVM to a Jpackage, built standard packages for target operating systems, and
|
||||
signed them in a way the operating system would recognize to keep the user secure. Since
|
||||
then, the jpackage routers have reached a new milestone, they are about to recieve their
|
||||
first incremental updates. These updates will replace the JDK 16 jpackage with an updated
|
||||
JDK 17 jpackage and provide fixes for some small bugs which we caught after the release.
|
||||
{%- endtrans %}
|
||||
|
||||
{% trans -%}
|
||||
Updates common to Mac OS and Windows
|
||||
{%- endtrans %}
|
||||
------------------------------------
|
||||
|
||||
{% trans -%}
|
||||
All jpackaged I2P installers recieve the following updates:
|
||||
|
||||
* Update the jpackaged I2P router to 1.5.1 which is built with JDK 17
|
||||
|
||||
Please update as soon as possible.
|
||||
{%- endtrans %}
|
||||
|
||||
{% trans -%}
|
||||
I2P Windows Jpackage Updates
|
||||
{%- endtrans %}
|
||||
----------------------------
|
||||
|
||||
{% trans -%}
|
||||
Windows only packages recieve the following updates:
|
||||
|
||||
* Updates I2P in Private Browsing, NoScript browser extensions
|
||||
* Begins to phase out HTTPS everywhere on new Firefox releases
|
||||
* Updates launcher script to `fix post NSIS launch issue on some architectures <https://i2pgit.org/i2p-hackers/i2p.firefox/-/issues/9>`_
|
||||
|
||||
For a full list of changes see the `changelog.txt in i2p.firefox <https://i2pgit.org/i2p-hackers/i2p.firefox/>`_
|
||||
{%- endtrans %}
|
||||
|
||||
{% trans -%}
|
||||
I2P Mac OS Jpackage Updates
|
||||
{%- endtrans %}
|
||||
---------------------------
|
||||
|
||||
{% trans -%}
|
||||
Mac OS only packages recieve the following updates:
|
||||
|
||||
* No Mac-Specific changes. Mac OS is updated to build with JDK 17.
|
||||
|
||||
For a summary of development see the `checkins in i2p-jpackage-mac <https://i2pgit.org/i2p-hackers/i2p-jpackage-mac>`_
|
||||
{%- endtrans %}
|
@ -1,83 +0,0 @@
|
||||
===========================================
|
||||
{% trans -%}1.6.1 Release{%- endtrans %}
|
||||
===========================================
|
||||
|
||||
.. meta::
|
||||
:author: zzz
|
||||
:date: 2021-11-29
|
||||
:category: release
|
||||
:excerpt: {% trans %}1.6.1 enables new tunnel build messages{% endtrans %}
|
||||
|
||||
{% trans -%}
|
||||
Update details
|
||||
{%- endtrans %}
|
||||
============================================
|
||||
|
||||
{% trans -%}
|
||||
Note: 1.6.1 is the current release. 1.6.0 was tagged but not released.
|
||||
{%- endtrans %}
|
||||
|
||||
{% trans -%}
|
||||
This release completes the rollout of two major protocol updates developed in 2021.
|
||||
The transition to X25519 encryption for routers is accelerated, and we expect almost all routers to be rekeyed by the end of the year.
|
||||
Short tunnel build messages are enabled for a significant bandwidth reduction.
|
||||
{%- endtrans %}
|
||||
|
||||
{% trans -%}
|
||||
We added a theme selection panel to the new install wizard.
|
||||
We've improved SSU performance and fixed an issue with SSU peer test messages.
|
||||
The tunnel build Bloom filter was adjusted to reduce memory usage.
|
||||
We have enhanced support for non-Java plugins.
|
||||
{%- endtrans %}
|
||||
|
||||
{% trans -%}
|
||||
In other news, we are making excellent progress on the design of our new UDP transport SSU2 and expect to start implementation early next year.
|
||||
{%- endtrans %}
|
||||
|
||||
{% 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 %}Changes{% endtrans %}**
|
||||
|
||||
- {% trans %}Console: Add theme selection to new-install wizard{% endtrans %}
|
||||
- Jetty 9.3.30.v20211001
|
||||
- {% trans %}Router: Increase probability of rekey to X25519{% endtrans %}
|
||||
- {% trans %}SSU: Performance improvements{% endtrans %}
|
||||
- {% trans %}SSU: Improve security of peer test{% endtrans %}
|
||||
- Tomcat 9.0.54
|
||||
- {% trans %}Tunnels: Enable sending new short build messages{% endtrans %}
|
||||
|
||||
|
||||
**{% trans %}Bug Fixes{% endtrans %}**
|
||||
|
||||
- {% trans %}i2ptunnel: Fix encryption type selection logic{% endtrans %}
|
||||
|
||||
|
||||
**{% trans %}Other{% endtrans %}**
|
||||
|
||||
- {% trans %}Improve support for non-Java plugins{% endtrans %}
|
||||
- {% trans %}Router: Reduce tunnel build Bloom filter memory usage{% endtrans %}
|
||||
- {% trans %}Updates: More changes to support bundled updaters{% endtrans %}
|
||||
- {% trans %}Translation updates{% endtrans %}
|
||||
|
||||
|
||||
|
||||
`{% trans %}Full list of fixed bugs{% endtrans %}`__
|
||||
|
||||
__ http://{{ i2pconv('git.idk.i2p') }}/i2p-hackers/i2p.i2p/-/issues?scope=all&state=closed&milestone_title=1.6.0
|
||||
|
||||
|
||||
**{% trans %}SHA256 Checksums:{% endtrans %}**
|
||||
|
||||
::
|
||||
|
||||
c5d5757d0cc1f4ce0cf2a663c35ca173d0cfe4ef0f38ac50b1be116787b03c87 i2pinstall_1.6.1_windows.exe
|
||||
2ae90f28d51b84796079430bde53589e1c2117125d5fb7bb5c036c4e1ad1eb80 i2pinstall_1.6.1.jar
|
||||
719606c4cb510de4fe74f24bbfa53911a70531821fc1ee79a29e3d96eaa16733 i2psource_1.6.1.tar.bz2
|
||||
90ac2eb6a0207a7614568129e4f8927b9e3765a533033600b9a1f5a53779134d i2pupdate_1.6.1.zip
|
||||
5fe7982cc1499872864a022507d0850627448d62ef65e0a7b5c172144a04368d i2pupdate.su3
|
@ -1,35 +0,0 @@
|
||||
==============================================
|
||||
{% trans -%}I2P is not affected by the log4j vulnerability{%- endtrans %}
|
||||
==============================================
|
||||
|
||||
.. meta::
|
||||
:author: idk, zzz
|
||||
:date: 2021-12-11
|
||||
:category: security
|
||||
:excerpt: {% trans %}I2P doesn't use log4j and is therefore unaffected by CVE-2021-44228{% endtrans %}
|
||||
|
||||
{% trans -%}
|
||||
I2P is not affected by the log4j 0-Day vulnerability which was published
|
||||
yesterday, CVE-2021-44228. I2P doesn't use log4j for logging, however we also
|
||||
needed to review our dependencies for log4j usage, especially jetty. This
|
||||
review has not revealed any vulnerabilities.
|
||||
{%- endtrans %}
|
||||
|
||||
{% trans -%}
|
||||
It was also important to check all of our plugins. Plugins may bring in their
|
||||
own logging systems, including log4j. We found that most plugins also do not use
|
||||
log4j, and those that do did not use a vulnerable version of log4j.
|
||||
{%- endtrans %}
|
||||
|
||||
{% trans -%}
|
||||
We haven't found any dependency, plugin or app that's vulnerable.
|
||||
{%- endtrans %}
|
||||
|
||||
{% trans -%}
|
||||
We bundle a log4j.properties file with jetty for plugins that introduce log4j. This
|
||||
file only has an effect on plugins which use log4j logging internally. We have
|
||||
checked in the recommended mitigation to the log4j.properties file. Plugins which
|
||||
enable log4j will run with the vulnerable feature disabled. As we cannot find any
|
||||
usage of log4j 2.x anywhere, we have no plans to do an emergency release at this
|
||||
time.
|
||||
{%- endtrans %}
|
@ -1,173 +0,0 @@
|
||||
===============================================
|
||||
{% trans -%}Year in Review: 2021{%- endtrans %}
|
||||
===============================================
|
||||
|
||||
.. meta::
|
||||
:author: Sadie
|
||||
:date: 2021-12-29
|
||||
:category: general
|
||||
:excerpt: {% trans %}I2P Turns 20, Faster Crypto and A Growing Network{% endtrans %}
|
||||
|
||||
{% trans -%}
|
||||
Update details
|
||||
{%- endtrans %}
|
||||
============================================
|
||||
|
||||
{% trans -%}Development Highlights{%- endtrans %}
|
||||
#################################################
|
||||
|
||||
{% trans -%}
|
||||
The 0.9.49 release began the migration to the new, faster ECIES-X25519
|
||||
encryption for routers. It took many years of work on the specifications and
|
||||
protocols for new encryption, and this release, new installs and a very small
|
||||
percentage of existing installs (randomly selected at restart) began using the
|
||||
new encryption. This is the first time that the default encryption type has
|
||||
ever been changed, so the full migration would take place over several
|
||||
releases in order to minimize any issues.
|
||||
{%- endtrans %}
|
||||
|
||||
{% trans -%}Full release notes{%- endtrans %}: https://geti2p.net/en/blog/post/2021/02/17/0.9.49-Release
|
||||
|
||||
{% trans -%}
|
||||
0.9.50 enabled DNS over HTTPS for reseeding to protect users from passive DNS
|
||||
snooping. Additionally, work was done to protect the network from possible
|
||||
malicious and buggy routers, and numerous fixes and improvements for IPv6
|
||||
addresses, including new UPnP support were completed.
|
||||
{%- endtrans %}
|
||||
|
||||
{% trans -%}Full release notes{%- endtrans %}: https://geti2p.net/en/blog/post/2021/05/17/0.9.50-Release
|
||||
|
||||
{% trans -%}
|
||||
In recognition of almost 20 years of work to provide anonymity and security,
|
||||
the team decided to go straight from 0.9.50 to 1.5.0. The 1.5.0 release
|
||||
finished support for new build messages (proposal 157), and finished
|
||||
implementation of smaller tunnel build messages to reduce bandwidth. The
|
||||
transition of the network’s routers to X25519 encryption continued.
|
||||
{%- endtrans %}
|
||||
|
||||
|
||||
{% trans -%}Full release notes{%- endtrans %}: https://geti2p.net/en/blog/post/2021/08/23/1.5.0-Release
|
||||
|
||||
{% trans -%}
|
||||
The rollout of two major protocol updates reached completed in 1.6.1. Almost
|
||||
all routers will be rekeyed by the end of the year. Also, short tunnel build
|
||||
messages were enabled for a significant bandwidth reduction. Progress on the
|
||||
design of the new UDP transport SSU2 began, and is expected to start
|
||||
implementation early next year.
|
||||
{%- endtrans %}
|
||||
|
||||
|
||||
{% trans -%}Full release notes{%- endtrans %}: https://geti2p.net/en/blog/post/2021/11/29/1.6.0-Release
|
||||
|
||||
{% trans -%}Easier Installs: JPackage{%- endtrans %}
|
||||
****************************************************
|
||||
|
||||
{% trans -%}
|
||||
With upwards of 30 steps required to install both the I2P software and Java,
|
||||
the process for new user onboarding has not been historically easy. Unfamiliar
|
||||
and unintuitive, it was a process that has created issues for usability for
|
||||
many years.
|
||||
{%- endtrans %}
|
||||
|
||||
{% trans -%}
|
||||
However, in recent Java versions, a new option emerged that had the potential
|
||||
to solve this issue for the Java software. The tool is called “Jpackage” and
|
||||
would allow for the creation of a Jpackage powered I2P Router.
|
||||
{%- endtrans %}
|
||||
|
||||
{% trans -%}
|
||||
We removed dozens of steps from the installation process by switching from an
|
||||
external JVM to a Jpackage, built standard packages for target operating systems,
|
||||
and signed them in a way the operating system would recognize to keep the user
|
||||
secure. Since then, the jpackage routers have reached a new milestone, they have
|
||||
recieved their first incremental updates. These updates will replace the JDK 16
|
||||
jpackage with an updated JDK 17 jpackage and provide fixes for some small bugs
|
||||
which we caught after the release.
|
||||
{%- endtrans %}
|
||||
|
||||
{% trans -%}Improving I2P Adoption and Onboarding using Jpackage, I2P-Zero{%- endtrans %}: https://geti2p.net/en/blog/post/2021/09/15/i2p-jpackages
|
||||
{% trans -%}JPackages Get their First Update{%- endtrans %}: https://geti2p.net/en/blog/post/2021/11/2/i2p-jpackage-1.5.1
|
||||
|
||||
{% trans -%}Bitcoin Core added Support for I2P{%- endtrans %}
|
||||
*************************************************************
|
||||
|
||||
{% trans -%}
|
||||
Bitcoin-over-I2P nodes can now fully interact with the rest of the Bitcoin nodes,
|
||||
using the help of nodes that operate within both I2P and the clearnet.
|
||||
{%- endtrans %}
|
||||
|
||||
{% trans -%}Read the full blog post{%- endtrans %}: https://geti2p.net/en/blog/post/2021/09/18/i2p-bitcoin
|
||||
|
||||
{% trans -%}I2P Usability Lab{%- endtrans %}
|
||||
********************************************
|
||||
|
||||
{% trans -%}
|
||||
This year, the I2P Usability Lab was created. The focus will be on user research,
|
||||
product development and tooling to support adoption. Additionally, better focus on
|
||||
localization efforts, protocol bridge building within the privacy community and
|
||||
sustainability considerations will be part of the ongoing effort to bring I2P to
|
||||
more people.
|
||||
{%- endtrans %}
|
||||
|
||||
{% trans -%}New User Onboarding Research{%- endtrans %}
|
||||
*******************************************************
|
||||
|
||||
{% trans -%}
|
||||
In 2020 the I2P UX team worked with Simply Secure on a usability sprint to assess
|
||||
user interaction with the I2P website. Many changes were applied, however, feedback
|
||||
has indicated that there are still issues with some aspects of new user onboarding.
|
||||
{%- endtrans %}
|
||||
|
||||
{% trans -%}
|
||||
We have expanded our team thanks to the BASICS project (Building Analytical and
|
||||
Support Infrastructure for Critical Security tools), and not only revisiting the
|
||||
new user onboarding, but we are also expanding the scope to include onboarding for
|
||||
developers and researchers. The goal will be to present an improved information
|
||||
architecture.
|
||||
{%- endtrans %}
|
||||
|
||||
{% trans -%}
|
||||
This year we focused on the massive overhaul of the new user onboarding for the
|
||||
download and browser configuration workflow and language. New wireframes for the
|
||||
I2P website have been created, and new information architecture put in place. This
|
||||
has been done in order to better support new users, maintainers, application
|
||||
developers, I2P core contributors, and researchers. This work will continue into
|
||||
2022 as documentation is refined and the site changes are implemented.
|
||||
{%- endtrans %}
|
||||
|
||||
{% trans -%}Read the full UX review here:{%- endtrans %} https://i2p.medium.com/i2p-ux-research-d2567aefd275
|
||||
|
||||
{% trans -%}Forum on internet Freedom in Africa 2021{%- endtrans %}
|
||||
*******************************************************************
|
||||
|
||||
{% trans -%}
|
||||
Working with our partners in Africa, the Invisible Internet Project was invited
|
||||
to participate in both a panel discussion, as well as work with a group of
|
||||
journalists to explore what privacy and security mean to them. The goal for the
|
||||
outcome from this opportunity was to understand what establishes trust, the
|
||||
concept of privacy and what it means, and egin to evaluate I2P and its tooling
|
||||
through this lens.
|
||||
{%- endtrans %}
|
||||
|
||||
{% trans -%}
|
||||
We saw that adoption results from efficiency, ease of use, and empowerment. All
|
||||
of these things result in a person not just wanting to use a privacy option, but to
|
||||
feel like they are actually taking control of their privacy. This is one of the
|
||||
most important aspects we have encountered during the past year when talking with
|
||||
new users: the emotional aspect of interacting with technology. Telling a person
|
||||
that something can technically provide a solution is one part of adoption. Providing
|
||||
a person with something that they can use with confidence is the other.
|
||||
Meeting people where they are and asking about who they are ensures that we are
|
||||
creating for real needs and for the most people possible.
|
||||
{%- endtrans %}
|
||||
|
||||
{% trans -%}Read the entire blog post here{%- endtrans %}: https://i2p.medium.com/i2p-usability-lab-b2098bf27d4d
|
||||
|
||||
{% trans -%}
|
||||
Thank you to everyone who contributes to building the Invisible Internet!
|
||||
{%- endtrans %}
|
||||
|
||||
{% trans -%}
|
||||
This post originally appeared on Sadie's blog. https://i2p.medium.com/4b926a488919
|
||||
Copied with permission.
|
||||
{%- endtrans %}
|
@ -1,111 +0,0 @@
|
||||
===========================================
|
||||
{% trans -%}1.7.0 Release{%- endtrans %}
|
||||
===========================================
|
||||
|
||||
.. meta::
|
||||
:author: zzz
|
||||
:date: 2022-02-21
|
||||
:category: release
|
||||
:excerpt: {% trans %}1.7.0 with reliability and performance improvements{% endtrans %}
|
||||
|
||||
{% trans -%}
|
||||
Update details
|
||||
{%- endtrans %}
|
||||
============================================
|
||||
|
||||
|
||||
{% trans -%}
|
||||
The 1.7.0 release contains several performance and reliability improvements.
|
||||
{%- endtrans %}
|
||||
|
||||
{% trans -%}
|
||||
There are now popup messages in the system tray, for those platforms that support it.
|
||||
i2psnark has a new torrent editor.
|
||||
The NTCP2 transport now uses much less CPU.
|
||||
{%- endtrans %}
|
||||
|
||||
{% trans -%}
|
||||
The long-deprecated BOB interface is removed for new installs.
|
||||
It will continue to work in existing installs, except for Debian packages.
|
||||
Any remaining users of BOB applications should ask the developers to convert to the SAMv3 protocol.
|
||||
{%- endtrans %}
|
||||
|
||||
{% trans -%}
|
||||
We know that since our 1.6.1 release, network reliability has steadily deteriorated.
|
||||
We were aware of the problem soon after the release, but it took us almost two months to find the cause.
|
||||
We eventually identified it as a bug in i2pd 2.40.0,
|
||||
and the fix will be in their 2.41.0 release coming out about the same time as this release.
|
||||
Along the way, we've made several changes on the Java I2P side to improve the
|
||||
robustness of network database lookups and stores, and avoid poorly-performing peers in tunnel peer selection.
|
||||
This should help the network be more robust even in the presence of buggy or malicious routers.
|
||||
Additionally, we're starting a joint program to test pre-release i2pd and Java I2P routers
|
||||
together in an isolated test network, so we can find more problems before the releases, not after.
|
||||
{%- endtrans %}
|
||||
|
||||
{% trans -%}
|
||||
In other news, we continue to make great progress on the design of our new UDP transport "SSU2" (proposal 159)
|
||||
and have started implementation.
|
||||
SSU2 will bring substantial performance and security improvements.
|
||||
It will also allow us to finally replace our last usage of the very slow ElGamal encryption,
|
||||
completing a full cryptography upgrade that started about 9 years ago.
|
||||
We expect to start joint testing with i2pd soon, and roll it out to the network later this year.
|
||||
{%- endtrans %}
|
||||
|
||||
{% 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 %}Changes{% endtrans %}**
|
||||
|
||||
- {% trans %}BOB: Remove{% endtrans %}
|
||||
- {% trans %}i2psnark: New torrent editor{% endtrans %}
|
||||
- {% trans %}i2psnark standalone: Fixes and improvements{% endtrans %}
|
||||
- {% trans %}i2ptunnel: Support IRCv3 message tags{% endtrans %}
|
||||
- {% trans %}NetDB: Lookup/store reliability improvements{% endtrans %}
|
||||
- {% trans %}System tray: Add popup messages{% endtrans %}
|
||||
- {% trans %}Transport: NTCP2 performance improvements{% endtrans %}
|
||||
- {% trans %}Transport: NTCP2 clock skew handling improvements{% endtrans %}
|
||||
- {% trans %}Transport: Use priority in SSU sender queue{% endtrans %}
|
||||
- {% trans %}Tunnels: Remove outbound tunnel when can't connect to first hop{% endtrans %}
|
||||
- {% trans %}Tunnels: Fallback to exploratory for building after repeated build failure{% endtrans %}
|
||||
- {% trans %}Tunnels: Enable tunnel testing by default{% endtrans %}
|
||||
- {% trans %}Tunnels: Use tunnel builds as a tunnel test{% endtrans %}
|
||||
|
||||
|
||||
**{% trans %}Bug Fixes{% endtrans %}**
|
||||
|
||||
- {% trans %}Plugins: Fixes for webapps named different from the plugin{% endtrans %}
|
||||
- {% trans %}Reseed: Fixes for IPv6-only{% endtrans %}
|
||||
- {% trans %}Router: Fix rare deadlock at startup{% endtrans %}
|
||||
- {% trans %}Tunnels: Restore IP restriction tests{% endtrans %}
|
||||
|
||||
|
||||
**{% trans %}Other{% endtrans %}**
|
||||
|
||||
- {% trans %}API version{% endtrans %}: 0.9.53
|
||||
- {% trans %}i2pcontrol: Improved state mapping{% endtrans %}
|
||||
- {% trans %}i2ptunnel: Refactor UDP support{% endtrans %}
|
||||
- {% trans %}Plugins: Fixes for webapps{% endtrans %}
|
||||
- {% trans %}Router: Workarounds for i2pd 2.40.0 SSU bug{% endtrans %}
|
||||
- {% trans %}Translation updates{% endtrans %}
|
||||
|
||||
|
||||
|
||||
`{% trans %}Full list of fixed bugs{% endtrans %}`__
|
||||
|
||||
__ http://{{ i2pconv('git.idk.i2p') }}/i2p-hackers/i2p.i2p/-/issues?scope=all&state=closed&milestone_title=1.7.0
|
||||
|
||||
|
||||
**{% trans %}SHA256 Checksums:{% endtrans %}**
|
||||
|
||||
::
|
||||
|
||||
a2206e2578e88aa08294b68df2c9dad4f9301a94dc3d00bfccfe4517555e226c i2pinstall_1.7.0_windows.exe
|
||||
23b80dd09bf4bb53edfde8e802bf0e428d89062f1232b3cdfeca04fccdbeb685 i2pinstall_1.7.0.jar
|
||||
aa53591e89eacc3491ab472dc4df998780fb6747eea3b97ecb7a9f81ff2c9a5e i2psource_1.7.0.tar.bz2
|
||||
fcfd2e3685de8c0b79b2018638821c64411c66c61ab84d2bf74c149358c96dba i2pupdate_1.7.0.zip
|
||||
d8110d77efb9712d69b622df03b7c9cd7f492b516b71914efb6019d31541e771 i2pupdate.su3
|
@ -1,31 +0,0 @@
|
||||
===========================================
|
||||
{% trans -%}Jpackage Update for Java CVE-2022-21449{%- endtrans %}
|
||||
===========================================
|
||||
|
||||
.. meta::
|
||||
:author: idk
|
||||
:date: 2022-04-21
|
||||
:category: release
|
||||
:excerpt: {% trans %}Jpackage bundles released with fixes for Java CVE-2022-21449{% endtrans %}
|
||||
|
||||
{% trans -%}
|
||||
Update details
|
||||
{%- endtrans %}
|
||||
============================================
|
||||
|
||||
{% trans -%}
|
||||
New I2P Easy-Install bundles have been generated using the latest release of the
|
||||
Java Virtual Machine which contains a fix for CVE-2022-21449
|
||||
"Psychic Signatures." It is recommended that users of the easy-install bundles
|
||||
update as soon as possible. Current OSX users will recieve updates automatically,
|
||||
Windows users should download the installer from our downloads page and run the
|
||||
installer normally.
|
||||
{%- endtrans %}
|
||||
|
||||
{% trans -%}
|
||||
The I2P router on Linux uses the Java Virtual Machine configured by the host
|
||||
system. Users on those platforms should downgrade to a stable Java version below
|
||||
Java 14 in order to mitigate the vulnerability until updates are released by
|
||||
the package maintainers. Other users using an external JVM should update the JVM
|
||||
to a fixed version as soon as possible.
|
||||
{%- endtrans %}
|
@ -1,95 +0,0 @@
|
||||
===========================================
|
||||
{% trans -%}1.8.0 Release{%- endtrans %}
|
||||
===========================================
|
||||
|
||||
.. meta::
|
||||
:author: zzz
|
||||
:date: 2022-05-23
|
||||
:category: release
|
||||
:excerpt: {% trans %}1.8.0 with bug fixes{% endtrans %}
|
||||
|
||||
{% trans -%}
|
||||
Update details
|
||||
{%- endtrans %}
|
||||
============================================
|
||||
|
||||
|
||||
{% trans -%}
|
||||
This release includes bug fixes in i2psnark,
|
||||
the router, I2CP, and UPnP.
|
||||
Router fixes address bugs in soft restart, IPv6, SSU peer testing,
|
||||
network database stores, and tunnel building.
|
||||
Router family handling and Sybil classification have also been
|
||||
significantly improved.
|
||||
{%- endtrans %}
|
||||
|
||||
{% trans -%}
|
||||
Together with i2pd, we are developing our new UDP transport, SSU2.
|
||||
SSU2 will bring substantial performance and security improvements.
|
||||
It will also allow us to finally replace our last usage of the very slow ElGamal encryption,
|
||||
completing the full cryptography upgrade we started about 9 years ago.
|
||||
This release contains a preliminary implementation which is disabled by default.
|
||||
If you wish to participate in testing, please look for current information
|
||||
on zzz.i2p.
|
||||
{%- endtrans %}
|
||||
|
||||
{% 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 %}Changes{% endtrans %}**
|
||||
|
||||
- {% trans %}SSU2: Preliminary implementation{% endtrans %}
|
||||
- Tomcat 9.0.62
|
||||
|
||||
|
||||
**{% trans %}Bug Fixes{% endtrans %}**
|
||||
|
||||
- {% trans %}Crypto: Fix handling of EdDSA certs with official OID{% endtrans %}
|
||||
- {% trans %}I2CP: Fix external connections when session ID is 0{% endtrans %}
|
||||
- {% trans %}I2PSnark: Fix size calculation causing tracker errors{% endtrans %}
|
||||
- {% trans %}I2PSnark standalone: More fixes and improvements{% endtrans %}
|
||||
- {% trans %}Router: Family fixes and improvements{% endtrans %}
|
||||
- {% trans %}Router: Fix database store logic{% endtrans %}
|
||||
- {% trans %}Router: Fix invalid store and rekeying at startup{% endtrans %}
|
||||
- {% trans %}Router: Don't use he.net addresses for GeoIP{% endtrans %}
|
||||
- {% trans %}Router: Soft restart fixes{% endtrans %}
|
||||
- {% trans %}SSU: Peer test fixes{% endtrans %}
|
||||
- {% trans %}SSU: Publish empty IPv6 address when missing introducers{% endtrans %}
|
||||
- {% trans %}SSU: Reduce ack delay to improve performance{% endtrans %}
|
||||
- {% trans %}Transport: Fix UPnP deadlock{% endtrans %}
|
||||
- {% trans %}Tunnels: Don't build client tunnels shorter than minimum length{% endtrans %}
|
||||
- {% trans %}UPnP: IPv6 fixes{% endtrans %}
|
||||
|
||||
|
||||
**{% trans %}Other{% endtrans %}**
|
||||
|
||||
- {% trans %}API version{% endtrans %}: 0.9.54
|
||||
- {% trans %}Console: Setup wizard redesign{% endtrans %}
|
||||
- {% trans %}i2psnark: Load system mime types if available{% endtrans %}
|
||||
- {% trans %}I2PSnark standalone: Add system tray{% endtrans %}
|
||||
- {% trans %}Router: Reduce build reply timeout so we will retry faster{% endtrans %}
|
||||
- {% trans %}Router: Avoid Sybil penalty for trusted large families{% endtrans %}
|
||||
- {% trans %}Source: Remove BOB{% endtrans %}
|
||||
- {% trans %}Translation updates{% endtrans %}
|
||||
|
||||
|
||||
|
||||
`{% trans %}Full list of fixed bugs{% endtrans %}`__
|
||||
|
||||
__ http://{{ i2pconv('git.idk.i2p') }}/i2p-hackers/i2p.i2p/-/issues?scope=all&state=closed&milestone_title=1.8.0
|
||||
|
||||
|
||||
**{% trans %}SHA256 Checksums:{% endtrans %}**
|
||||
|
||||
::
|
||||
|
||||
738b7608d7f2c6433dcde8a1cbd7ea025d281e90b45c8695385004625a4c88d1 i2pinstall_1.8.0_windows.exe
|
||||
ee49cad06fd73e75ed25eaab342f8167e447b901205ee8593a31b5a599d892af i2pinstall_1.8.0.jar
|
||||
525f2ad3267f130b81296b3dd24102fdcf2adf098d54272da4e1be4abd87df04 i2psource_1.8.0.tar.bz2
|
||||
446ac94969163bce514aca6bb408cb72d1b8d9bd65fe22e773ec3bcad142db21 i2pupdate_1.8.0.zip
|
||||
3379fe757eecbf20688ee37685fe52f15ac04fd59e891c6a059a33d519c4ff19 i2pupdate.su3
|
@ -41,7 +41,7 @@ Writing draft posts
|
||||
To write a draft post, create the file with the suffix '.draft.rst'. Post files
|
||||
with this suffix will be visible at their post URL, but will not be shown in
|
||||
the blog index. To publish the draft post, change the filename to remove the
|
||||
'.draft' in the suffix (e.g. git mv foo.draft.rst foo.rst).
|
||||
'.draft' in the suffix (e.g. mtn mv foo.draft.rst foo.rst).
|
||||
|
||||
Creating shortlinks
|
||||
-------------------
|
||||
|
@ -7,26 +7,25 @@ from random import randint
|
||||
|
||||
from i2p2www import CURRENT_I2P_VERSION, MIRRORS_FILE
|
||||
|
||||
DEFAULT_MIRROR = {
|
||||
"net": "clearnet",
|
||||
"protocol": "https",
|
||||
"domain": "files.i2p-projekt.de",
|
||||
"path": "/%(version)s/%(file)s",
|
||||
"org": "i2p-projekt",
|
||||
"org_url": "https://files.i2p-projekt.de",
|
||||
"country": "de",
|
||||
}
|
||||
|
||||
#DEFAULT_MIRROR = {
|
||||
# "net": "clearnet",
|
||||
# "protocol": "https",
|
||||
# "domain": "download.i2p2.de",
|
||||
# "path": "/releases/%(version)s/%(file)s",
|
||||
# "org": "sigterm.no",
|
||||
# "org_url": "https://download.i2p2.de",
|
||||
# "country": "no",
|
||||
# "net": "clearnet",
|
||||
# "protocol": "https",
|
||||
# "domain": "files.i2p-projekt.de",
|
||||
# "path": "/%(version)s/%(file)s",
|
||||
# "org": "i2p-projekt",
|
||||
# "country": "de",
|
||||
#}
|
||||
|
||||
DEFAULT_MIRROR = {
|
||||
"net": "clearnet",
|
||||
"protocol": "https",
|
||||
"domain": "download.i2p2.de",
|
||||
"path": "/releases/%(version)s/%(file)s",
|
||||
"org": "sigterm.no",
|
||||
"org_url": "https://download.i2p2.de",
|
||||
"country": "no",
|
||||
}
|
||||
|
||||
#{
|
||||
# 'net': 'clearnet',
|
||||
# 'protocol': 'https',
|
||||
|
@ -54,7 +54,6 @@ def get_meetings_ids(num=0):
|
||||
# iterate over all files
|
||||
for f in v[2]:
|
||||
# ignore all non-.rst files
|
||||
print("Meeting file found", f)
|
||||
if not f.endswith('.rst'):
|
||||
continue
|
||||
try:
|
||||
|
@ -1,5 +1,5 @@
|
||||
I2P dev meeting, October 5, 2021 @ 20:00 UTC
|
||||
============================================
|
||||
I2P dev meeting, Sept 7, 2021 @ 20:00 UTC
|
||||
=========================================
|
||||
|
||||
Quick recap
|
||||
-----------
|
||||
|
@ -1,74 +0,0 @@
|
||||
(04:00:16 PM) eyedeekay: Hi everybody, welcome to the November 2 Community Meeting
|
||||
(04:00:16 PM) eyedeekay: 1) Hi
|
||||
(04:00:16 PM) eyedeekay: 2) 1.6.0 Development Status / Upcoming Release
|
||||
(04:00:16 PM) eyedeekay: 3) mac/win jpackage beta status, user test reports, in-net 17.0.2 update status, plans for 1.6.0 update ?
|
||||
(04:00:35 PM) zzz: hi
|
||||
(04:00:38 PM) zlatinb: hi
|
||||
(04:00:55 PM) eyedeekay: Hi zzz, zlatinb
|
||||
(04:01:25 PM) eyedeekay: 2) 1.6.0 Development Status / Upcoming Release
|
||||
(04:02:25 PM) eyedeekay: Release thread is here: http://zzz.i2p/topics/3170-1-6-0-release-summary and we still haven't picked a date, I should have replied on that thread, do we want to do that here?
|
||||
(04:02:43 PM) zzz: yes please
|
||||
(04:03:18 PM) zzz: 3 weeks from now would be 13 weeks. +/- 1 week ok with me also
|
||||
(04:03:19 PM) eyedeekay: OK then in my case I am in favor of the week of the 29th, after US Thanksgiving
|
||||
(04:04:12 PM) zlatinb: I'm afk from my main workstation until early Dec, so can't build or sign jpackage installers. But I can still give an OTP for the signtool as that's on my phone.
|
||||
(04:05:34 PM) zzz: ok, so tentatively the week of the 28th then? eche|off eche|on any objections?
|
||||
(04:07:30 PM) eyedeekay: Week of the 28th sounds good to me for now.
|
||||
(04:08:34 PM) eyedeekay: Anything else for topic 2)?
|
||||
(04:08:45 PM) zzz: yeah, quick status
|
||||
(04:09:02 PM) zzz: looking like a fairly modest release as measured by amount of changes
|
||||
(04:09:27 PM) zzz: some SSU speedups are perhaps the headline
|
||||
(04:09:48 PM) zzz: zlatinb, if you have time to squeeze in the unit test deprecation fixes that would be good
|
||||
(04:09:52 PM) zzz: EOT
|
||||
(04:10:02 PM) eyedeekay: Thanks zzz
|
||||
(04:10:28 PM) zlatinb: yeah, no promises on the unit test :)
|
||||
(04:10:42 PM) eyedeekay: 3) mac/win jpackage beta status, user test reports, in-net 17.0.2 update status, plans for 1.6.0 update?
|
||||
(04:12:18 PM) zlatinb: I assume that is jdk 17.0.1, there's no 17.0.2 out yet afaik
|
||||
(04:12:21 PM) zzz: yeah I added that item just to give you two a chance to give the community an update
|
||||
(04:12:32 PM) eyedeekay: zlatinb and I discussed it a few days ago and evaluated the prospect of doing an OpenJDK 17 update for the jpackage installs
|
||||
(04:12:43 PM) zzz: ignore any typos :)
|
||||
(04:13:36 PM) Ryemantis__ is now known as Ryemantis_
|
||||
(04:14:08 PM) eyedeekay: Right now we're prepared to do in-network updates of the jpackage installs but we are going to wait for the main release to do our jpackage releases which will update to either 17.0.1 or 17.0.2
|
||||
(04:14:55 PM) zlatinb: 17.0.2 isn't due until mid-january, so we should definitely have a 1.6.0 jpackage release
|
||||
(04:15:32 PM) zlatinb: my view is that I would really like to do a dry-run of the in-network update process to shake out any insects, but that needs to happen in the next 7 days cause I'm afk afterwards
|
||||
(04:16:03 PM) zlatinb: to summarize, the following needs to happen:
|
||||
(04:16:12 PM) zzz: eyedeekay, that wasn't very clear... you're 'prepared' but you're not going to do it, you're going to wait?
|
||||
(04:16:28 PM) zlatinb: 1. update of the i2p.newsxml repo to produce entries.html per platform
|
||||
(04:16:50 PM) zlatinb: 2. Make sure idk and ech's news http servers can serve the new news.su3 files
|
||||
(04:17:17 PM) zlatinb: 3. branch i2p.i2p from the i2p-1.5.0 tag, bump CoreVersion/RouterVersion, tag i2p-1.5.1
|
||||
(04:17:27 PM) zlatinb: 4. build jpackage installers, sign/notarize as necessary
|
||||
(04:17:47 PM) zlatinb: 5. build new entries.html with new release.json
|
||||
(04:17:50 PM) zlatinb: 6. deploy
|
||||
(04:17:51 PM) zlatinb: eot
|
||||
(04:18:03 PM) zlatinb: so I don't know if that can happen in 7 days, but it would be very nice if it could
|
||||
(04:19:10 PM) eyedeekay: By prepared I mean the i2p.newsxml changes produce valid feeds that can be used to distribute in network updates and they work on my lighttpd news setup
|
||||
(04:20:00 PM) eyedeekay: I need to add platform-specific entries.html support, right now everybody gets all the news but a different torrent
|
||||
(04:20:38 PM) zzz: even bigger picture, since it's beta, is it going well, are you getting downloads and/or complaints?
|
||||
(04:21:16 PM) zlatinb: downloads - ~25/day for mac, ~100/day for windows according to matomo
|
||||
(04:21:44 PM) eyedeekay: No major complaints, there was an issue with detecting the path to the installed package depending on architecture and whether windows was installed which affects some fraction of the Windows users but *only* when the launcher is run from the installer
|
||||
(04:22:03 PM) eyedeekay: So after the installer is run the bug goes away, and it's fixed in the new version
|
||||
(04:22:11 PM) eyedeekay: Well, will be
|
||||
(04:22:15 PM) zzz: great
|
||||
(04:22:21 PM) eyedeekay: That's the thing zab reported last month
|
||||
(04:22:40 PM) eyedeekay: *installed or updated from an earlier edition
|
||||
(04:24:34 PM) Ryemantis_: Hi everyone. Just wanted to also quickly check in and apologize for being quite the last few weeks. October was a very busy month for me and also had a hardware failure mixed in. After this week I should have some time to get my workstation back together and continue work on Android I2P. Currently working on LiveData, Remote-starting I2P, and UPnP fix. Will also update on the forums once I am back at
|
||||
(04:24:35 PM) Ryemantis_: it. Please let me know too if anything else needs more immediate attention.
|
||||
(04:25:04 PM) eyedeekay: Excellent to hear from you Ryemantis_ and welcome to the meeting
|
||||
(04:25:28 PM) eyedeekay: Thanks for the update on what you're working on, hardware failures and life happen to all of us
|
||||
(04:27:01 PM) eyedeekay: So back to 3) for a moment, for right now it's incumbent on me to add support for entries.html in data/platform/branch/entries.html instead of only in data/entries.html so we can have platform-specific newsfeeds
|
||||
(04:27:13 PM) Ryemantis_: Definitely appreciate the understanding and thank you all for you hard work
|
||||
(04:28:23 PM) eyedeekay: As opposed to one feed where everybody gets everybody's news
|
||||
(04:29:00 PM) eyedeekay: After that, we can start at step 3. in zlatinb's description
|
||||
(04:29:37 PM) eyedeekay: Anything for 3)?
|
||||
(04:30:20 PM) zlatinb: no I think that captures everything
|
||||
(04:30:46 PM) eyedeekay: Cool anything else for the meeting zzz zlatinb Ryemantis_ ?
|
||||
(04:31:04 PM) zzz: nope
|
||||
(04:31:30 PM) Ryemantis_: nope
|
||||
(04:31:49 PM) zlatinb: yeah quick one - next meeting is it on the 1st?
|
||||
(04:31:54 PM) ***zlatinb checks calendar
|
||||
(04:32:12 PM) eyedeekay: I think the 7th zlatinb
|
||||
(04:32:20 PM) zlatinb: ok nvm then
|
||||
(04:32:33 PM) eyedeekay: The first is a Wednesday by my calendar
|
||||
(04:33:28 PM) eyedeekay: Oh right that reminds me, DST. I've always scheduled the meetings on UTC, but does anyone want to adjust the time of the meeting for DST?
|
||||
(04:33:36 PM) zzz has changed the topic to: 1.5.0-4 | Tag freeze Wed. Nov. 17
|
||||
(04:35:30 PM) eyedeekay: I'll take that as a no then. Unless someone brings it up in a forum thread, meetings will continue to be scheduled at the same time UTC
|
||||
(04:36:05 PM) eyedeekay: Thanks everybody for coming to the meeting, I'll post the logs in a few minutes.
|
@ -1,12 +0,0 @@
|
||||
I2P dev meeting, November 2, 2021 @ 20:00 UTC
|
||||
=============================================
|
||||
|
||||
Quick recap
|
||||
-----------
|
||||
|
||||
* **Present:**
|
||||
|
||||
eyedeekay,
|
||||
zzz,
|
||||
zlatinb,
|
||||
Ryemantis_
|
@ -1,75 +0,0 @@
|
||||
(03:00:21 PM) eyedeekay: Hi everybody, welcome to the December 7 meeting
|
||||
(03:00:28 PM) eyedeekay: 1) Hi
|
||||
(03:00:28 PM) eyedeekay: 2) 1.6.1 Release Status
|
||||
(03:00:28 PM) eyedeekay: 3) jpackage Update Status
|
||||
(03:00:28 PM) eyedeekay: 4) Monero Integrations
|
||||
(03:00:28 PM) eyedeekay: 5) New SAM Library
|
||||
(03:00:37 PM) zzz: hi
|
||||
(03:00:41 PM) zlatinb: hi
|
||||
(03:01:05 PM) eyedeekay: Hi zzz, hi zlatinb
|
||||
(03:01:12 PM) eyedeekay: Anybody else here today?
|
||||
(03:01:16 PM) mode (-m ) by zzz
|
||||
(03:01:31 PM) eyedeekay: 2) 1.6.1 release status
|
||||
(03:02:32 PM) eyedeekay: Release 1.6.1 is available, the torrent is live, as are Debian/Ubuntu/Launchpad, Maven, GPlay, and our F-Droid
|
||||
(03:03:10 PM) eyedeekay: F-Droid's repository is still out of date, one of my tasks this week is to get our app working with their auto-build system again
|
||||
(03:04:01 PM) eyedeekay: Debian's repositories, as far as we know, aren't going to recieve our updates at this time, people who are using Debian packages should switch to deb.i2p2.de or deb.i2p2.no
|
||||
(03:05:18 PM) eyedeekay: The DMG bundle built by zlatinb has also been updated to 1.6.1 and is available on the mirrors and as an update
|
||||
(03:06:01 PM) eyedeekay: The exe bundle built by me is going to be up today, I had planned to do it yesterday but got bogged down in Windows updates so I'll do it this evening.
|
||||
(03:06:40 PM) eyedeekay: According to stats.i2p about 20% of the network has updated
|
||||
(03:06:47 PM) eyedeekay: Anything to add zzz, zlatinb?
|
||||
(03:09:13 PM) eyedeekay: Hello?
|
||||
(03:11:26 PM) eyedeekay: OK I'm back
|
||||
(03:11:40 PM) eyedeekay: (03:06:40 PM) eyedeekay: According to stats.i2p about 20% of the network has updated
|
||||
(03:11:40 PM) eyedeekay: (03:06:47 PM) eyedeekay: Anything to add zzz, zlatinb?
|
||||
(03:11:50 PM) zzz: yes
|
||||
(03:12:05 PM) zzz: no sign of a biglybt update yet, hopefully that will come soon
|
||||
(03:12:10 PM) zzz: no user complaints yet
|
||||
(03:12:26 PM) zzz: echelon had trouble with a 1.6.1-2 dev build but we don't know why
|
||||
(03:13:03 PM) zzz: also, users of any i2p package version (current or older) may have a problem due to changing jetty9 dependencies
|
||||
(03:13:24 PM) zzz: if so, sudo apt install libservlet3.1-java manually
|
||||
(03:14:44 PM) zlatinb: re biglybt I heard from Parg earlier today regarding an unrelated matter so he is ok.
|
||||
(03:15:52 PM) zzz: may also affect bleeding-edge ubuntu jammy, not sure
|
||||
(03:15:52 PM) zzz: eot
|
||||
(03:16:12 PM) zlatinb: eot
|
||||
(03:16:22 PM) zzz: I mean debian/ubuntu package
|
||||
(03:16:22 PM) zzz: eot2
|
||||
(03:16:22 PM) zzz: this is on debian sid and maybe jammy only
|
||||
(03:16:22 PM) zzz: eot3
|
||||
(03:16:22 PM) zzz: will give him a few more days and then bug him
|
||||
(03:16:31 PM) eyedeekay: Thanks zzz, the package/dependency thing will probably bubble up on Reddit if it's a problem
|
||||
(03:16:58 PM) eyedeekay: I run sid on the day-to-day basis and haven't hit this one so far
|
||||
(03:17:01 PM) zzz: ref: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=997213
|
||||
(03:18:40 PM) eyedeekay: 3) jpackage Update Status
|
||||
(03:19:36 PM) eyedeekay: Partly covered this one already, zlatinb's dmg packages are up on the mirrors and listed on the site
|
||||
(03:20:29 PM) eyedeekay: I had some updates I needed to do to my Windows laptop so didn't get the exe builds done last night, got it out for after the meeting
|
||||
(03:21:08 PM) eyedeekay: I've flipped my news server over to publish zlatinb's new packages
|
||||
(03:21:59 PM) eyedeekay: I haven't heard from any users so far
|
||||
(03:22:27 PM) zlatinb: The dmg jpackage is at this point well-streamlined. We did an end-to-end test of the in-network update with 1.5.0->1.5.1 and that worked (but from the second try)
|
||||
(03:23:02 PM) zlatinb: 1 person has downloaded the torrent according to snark
|
||||
(03:23:27 PM) zlatinb: not much else to report on the mac jpackage, it basically works
|
||||
(03:23:28 PM) zlatinb: eot
|
||||
(03:24:04 PM) eyedeekay: Thanks zlatinb
|
||||
(03:24:41 PM) eyedeekay: 4) Monero Integrations
|
||||
(03:25:55 PM) eyedeekay: There was some renewed interest in getting Monero-over-I2P working automatically in the GUI wallets(like Feather in particular) over the thanksgiving holiday
|
||||
(03:26:38 PM) eyedeekay: We're doing some design mockups and analysis of the tradeoffs of different configurations over here:
|
||||
(03:26:39 PM) eyedeekay: https://github.com/monero-project/monero-gui/issues/2274
|
||||
(03:27:15 PM) eyedeekay: They're interested in adopting several things from us, including eventually our model for distributing software updates in-network
|
||||
(03:27:53 PM) eyedeekay: If anybody wants to participate in that discussion we're having it there mostly, and also on the Monero Matrix channel
|
||||
(03:28:06 PM) eyedeekay: Monero-Community
|
||||
(03:28:20 PM) eyedeekay: EOT
|
||||
(03:29:05 PM) eyedeekay: 5) New SAM library
|
||||
(03:29:14 PM) zzz: cool, I assume they've already looked at what bitcoin did for the low-level address protocols
|
||||
(03:29:17 PM) zzz: eot
|
||||
(03:30:31 PM) eyedeekay: Yes they have
|
||||
(03:31:24 PM) eyedeekay: The other cool thing that happened last week is the folks at diva.exchange have created a new SAM library for node.js/javascript in general
|
||||
(03:32:02 PM) eyedeekay: It's much more thoroughly and recently documented than the old one which is now unmaintained
|
||||
(03:32:07 PM) eyedeekay: Source is here: https://codeberg.org/diva.exchange/i2p-sam
|
||||
(03:32:23 PM) eyedeekay: NPM package is here https://www.npmjs.com/package/@diva.exchange/i2p-sam
|
||||
(03:33:00 PM) eyedeekay: Given how popular node is I'm giving it a bit of a signal boost, seems like everybody writes their webapps in node these days
|
||||
(03:33:15 PM) eyedeekay: eot
|
||||
(03:34:21 PM) eyedeekay: Anything else for the meeting?
|
||||
(03:35:13 PM) zlatinb: not from me
|
||||
(03:36:01 PM) eyedeekay: timeout 1,
|
||||
(03:36:04 PM) eyedeekay: 1m
|
||||
(03:37:03 PM) eyedeekay: OK then thanks zzz, zlatinb, next meeting will be Jan 4, 2022
|
||||
(03:37:03 PM) eyedeekay: I will post the logs shortly
|
@ -1,11 +0,0 @@
|
||||
I2P dev meeting, December 7, 2021 @ 20:00 UTC
|
||||
=============================================
|
||||
|
||||
Quick recap
|
||||
-----------
|
||||
|
||||
* **Present:**
|
||||
|
||||
eyedeekay,
|
||||
zzz,
|
||||
zlatinb
|
@ -1,104 +0,0 @@
|
||||
(03:00:39 PM) eyedeekay: Hi everyone and welcome to the January 4, 2022 meeting
|
||||
(03:00:39 PM) eyedeekay: 1. Hi
|
||||
(03:00:39 PM) eyedeekay: 2. Meeh services/Outproxy requirements http://zzz.i2p/topics/3218-meeh-services-going-down-soon
|
||||
(03:00:39 PM) eyedeekay: 3. Promoting Mac DMG JPackage to stable https://geti2p.net/en/download/mac
|
||||
(03:00:39 PM) eyedeekay: 4. NetDB research (Sim/Model) http://zzz.i2p/topics/3227-netdb-simulator-proposal
|
||||
(03:01:13 PM) zlatinb: hi
|
||||
(03:01:23 PM) zzz: hello
|
||||
(03:01:55 PM) eyedeekay: Hi zzz, zlatinb, anybody else here today?
|
||||
(03:02:20 PM) eyedeekay: Outproxy operators?
|
||||
(03:02:59 PM) eyedeekay: OK then on to 1, they can chime in if they want :)
|
||||
(03:03:38 PM) eyedeekay: So we're losing all of meeh's non-static services, for us that's mostly trac, which we've already replaced, and false.i2p, the default outproxy
|
||||
(03:04:07 PM) eyedeekay: Neither have worked well for a long time, but not having an outproxy tends to have a bad UX so we need to replace it
|
||||
(03:04:59 PM) eyedeekay: We discussed some options last week, one of which was finding a new volunteer-run outproxy to make it the default.
|
||||
(03:06:30 PM) eyedeekay: If that is to happen, then we'll need it to meet some basic requirements. Obviously a privacy policy is important.
|
||||
(03:06:30 PM) eyedeekay: If they aren't passing everything to Tor directly, we'll also need a description of what filtering, if any, occurs
|
||||
(03:07:34 PM) eyedeekay: Other options are to run one ourselves, which is of limited appeal at best, another is local SOCKS support, which requires a local SOCKS proxy to be available.
|
||||
(03:08:07 PM) eyedeekay: If anyone wants to volunteer to be an outproxy, the place to reach out is at zzz's forum
|
||||
(03:09:05 PM) zzz: right
|
||||
(03:09:12 PM) eyedeekay: I have not been able to get statistics about false.i2p usage from meeh yet. EOT
|
||||
(03:09:40 PM) zzz: first of all we want to be very careful not to publicly recommend an alternate or set a new default without approval, as that might impose a large burden, financial or otherwise
|
||||
(03:10:06 PM) zzz: as a tiny baby step, we're looking to get alternates registered on stats.i2p and get approval to add them to our default hosts.txt
|
||||
(03:10:16 PM) zzz: as that at least makes it easier for people to configure and use them
|
||||
(03:10:55 PM) zzz: we have approval for that step for two outproxies, however only one is currently registered on stats.i2p
|
||||
(03:11:05 PM) zzz: so I'm awaiting for that second registration
|
||||
(03:11:05 PM) zzz: eot
|
||||
(03:11:35 PM) eyedeekay: Thanks zzz, I'll remind him btw
|
||||
(03:11:47 PM) dr|z3d: I've had some preliminary discussions with you, zzz, and on that basis I think it should be fairly clear that I'm not interested in offering an official service. Informal is fine, but nothing official.
|
||||
(03:12:52 PM) zzz: thanks for making it clear, and also thanks for your time and expertise in thoes discussions
|
||||
(03:12:59 PM) dr|z3d: I'm also of the view that a single outproxy is doomed to failure the moment it becomes official.
|
||||
(03:14:13 PM) eyedeekay: Certainly can see why that would be the case. Anything else on 1?
|
||||
(03:14:28 PM) zzz: perhaps. it certainly requires adequate capacity and competent administration
|
||||
(03:14:29 PM) zzz: eot
|
||||
(03:14:59 PM) eyedeekay: 3. Promoting Mac DMG Jpackage to stable
|
||||
(03:15:15 PM) eyedeekay: s/1/2/
|
||||
(03:15:42 PM) eyedeekay: So this topic was added by zlatinb, take it away
|
||||
(03:16:21 PM) zlatinb: thanks. Basically, the non-DMG (jar) package is not notarized and the last 2 (or 3?) versions of Mac OS refuse to execute it unless the user changes some advanced settings
|
||||
(03:16:52 PM) zlatinb: at the same time, the DMG jpackage has been very stable and in-net updates have been tested end-to-end
|
||||
(03:17:10 PM) zlatinb: so I propose we make it the default mac download and get rid of the .jar option altogether
|
||||
(03:17:55 PM) zlatinb: since we already have a nice /mac page dedicated to the package, I suggest we keep that, removing the BETA modifier
|
||||
(03:18:14 PM) zlatinb: and on the Mac div in /download, just have a link to the /mac page, nothing else
|
||||
(03:18:19 PM) zlatinb: eot
|
||||
(03:19:22 PM) eyedeekay: I support it.
|
||||
(03:20:42 PM) eyedeekay: Do we need to wait for release or just do it now?
|
||||
(03:21:51 PM) anonymousmaybe is now known as Irc2PGuest95343
|
||||
(03:22:35 PM) mode (+ao zzz zzz) by ChanServ
|
||||
(03:22:37 PM) zlatinb: no need to wait for a release
|
||||
(03:22:54 PM) zzz: did you see my 3 questions before I dropped?
|
||||
(03:23:01 PM) eyedeekay: No I missed them
|
||||
(03:23:03 PM) zlatinb: no, sorry, pls repost
|
||||
(03:23:11 PM) zzz: I'll ask a few easy questions:
|
||||
(03:23:15 PM) zzz: 1) The user base is sufficient that we are confident it's been well-tested?
|
||||
(03:23:17 PM) zzz: 2) The release process is documented and in theory somebody else could build it if they had the right keys?
|
||||
(03:23:20 PM) zzz: 3) We're confident we have the resources to continue maintaining it and doing releases?
|
||||
(03:23:23 PM) zzz: eot
|
||||
(03:24:08 PM) zlatinb: 1) - according to matomo it gets 20-25 downloads a day. We've had users of M1 Macs report that it works as expected. No negative reports at all
|
||||
(03:24:28 PM) eyedeekay: 2) and 3) IMO the answers are definitely yes. I can build everything up to the notary part and can teach someone else to
|
||||
(03:24:53 PM) zlatinb: 2) is yes but requires de-anoning because Apple Inc.
|
||||
(03:24:54 PM) eyedeekay: So with zlatinb and I there are at least 2 people who know how to build it
|
||||
(03:25:08 PM) zzz: 2) but it is _documented_ ?
|
||||
(03:25:33 PM) zlatinb: yes, step by step incl. the notary process in the README.md
|
||||
(03:25:41 PM) zzz: super
|
||||
(03:26:16 PM) zzz: 1) does "working" include the update process? have we seen the torrent swarm actually fire off when the news updates?
|
||||
(03:26:29 PM) zlatinb: http://git.idk.i2p/i2p-hackers/i2p-jpackage-mac
|
||||
(03:26:43 PM) zzz: (because I think the windows version hasn't actually been seen to work yet)
|
||||
(03:27:26 PM) zlatinb: 1) yes, the swarm picks up, it's quite small but it's there. I've seen it both at the 1.5.1 and 1.6.1 releases
|
||||
(03:27:49 PM) zzz: ok great, thanks for the answers, no objections
|
||||
(03:28:14 PM) eyedeekay: Cool I'll make the site changes tonight after I post the meeting logs
|
||||
(03:28:26 PM) zlatinb: awesome thanks!
|
||||
(03:29:05 PM) eyedeekay: Re: Windows, yes but appears it's an issue in the config file I shipped and not the updater itself
|
||||
(03:29:05 PM) eyedeekay: So Windows needs 1 more manual update to work with automatic updates, which I think I might have known ahead of time but forgot
|
||||
(03:30:07 PM) eyedeekay: 4. NetDB research (Sim/Model) http://zzz.i2p/topics/3227-netdb-simulator-proposal
|
||||
(03:30:44 PM) eyedeekay: Also zlatinb's topic, let us know what you're thinking
|
||||
(03:31:28 PM) zlatinb: So, in the last two weeks or so there has been a noticeable deterioration in the accessibility of sites like zzz.i2p, postman, event major.acetone.i2p... basically sites I know are up
|
||||
(03:31:57 PM) zlatinb: I've done some debugging and had situations where the LS of zzz.i2p gets fetched fine, but then the RI of the IBGW must be failing to fetch
|
||||
(03:32:03 PM) zlatinb: (I'm speculating here ofc)
|
||||
(03:32:47 PM) zlatinb: in a nutshell, there are many unknowns in the functioning of the NetDB and we have to place our faith in the Kad algorithm, which is fine, but I would rather have more confidence via some research
|
||||
(03:33:33 PM) zlatinb: just like the testnet helped improve the streaming and ssu and ntcp code a lot, I believe a model or a sim can help improve the functioning of the netDB
|
||||
(03:34:44 PM) zlatinb: and the reason I want to discuss it here is that if we go with a sim that runs the actual code that will be in the router, some refactoring will be necessary of the NetDB code, possibly some of the *Job classses too
|
||||
(03:34:52 PM) zlatinb: Note, I haven't looked into the multi-router jvm and JVMCommSystem yet
|
||||
(03:35:03 PM) zlatinb: maybe those can be an answer up to a given number of nodes
|
||||
(03:35:37 PM) zlatinb: but my goal is to simulate at least a few thousand nodes, which means abstracting away most of the router components
|
||||
(03:35:42 PM) zlatinb: eot-checkpoint
|
||||
(03:36:28 PM) major left the room (quit: Ping timeout: 320 seconds).
|
||||
(03:36:32 PM) zzz: I'm lukewarm at best, due to how hard it would be, and how long before we got any useful results
|
||||
(03:37:20 PM) zzz: for starters, I made a series of changes recently to make things more reliable
|
||||
(03:37:27 PM) zzz: in 1.6.1-6 dev build
|
||||
(03:37:46 PM) zzz: but I don't know if any of the popular servers (besides mine) are running it
|
||||
(03:38:17 PM) zzz: I would like to see echelon's and eyedeekay's servers try it. Those are two batches that I've had trouble with for months
|
||||
(03:38:20 PM) zzz: eot
|
||||
(03:38:44 PM) eyedeekay: Most of my servers just track the PPA, I'll get git.idk.i2p updated
|
||||
(03:39:17 PM) zzz: git and gitssh are two that frequently shun me. If they get better, I'll notice
|
||||
(03:40:07 PM) zzz: echelon's servers are another mystery. they seem to have IP-level issues frequently
|
||||
(03:42:11 PM) eyedeekay: I can do that soon then
|
||||
(03:43:37 PM) eyedeekay: My questions about the netDB test harness are probably ill-conceived, for instance, does the existing testnet have the ability to simulate a netDB between the routers within it?
|
||||
(03:44:08 PM) eyedeekay: And if so, is there a way to use it?
|
||||
(03:44:44 PM) The account has disconnected and you are no longer in this chat. You will automatically rejoin the chat when the account reconnects.
|
||||
(03:49:14 PM) The topic for #i2p-dev is: 1.6.1-7 | next dev meeting 8 PM UTC Tuesday, January 4, 2022
|
||||
(03:49:14 PM) Topic for #i2p-dev set by zzz at 09:08:14 AM on 01/03/2022
|
||||
(03:49:20 PM) zzz: gosh no not pspice. it was some sort of queueing/behavioral network model
|
||||
(03:50:31 PM) zzz: EOT and out, gotta run, thanks everybody
|
||||
(03:50:46 PM) eyedeekay: Later zzz
|
||||
(03:51:41 PM) eyedeekay: Anything else on 4? zlatinb
|
||||
(03:51:50 PM) zlatinb: no, that's all
|
||||
(03:52:08 PM) eyedeekay: All right that covers it for the meeting then, have a good week everybody
|
@ -1,11 +0,0 @@
|
||||
I2P dev meeting, January 4, 2022 @ 20:00 UTC
|
||||
=============================================
|
||||
|
||||
Quick recap
|
||||
-----------
|
||||
|
||||
* **Present:**
|
||||
|
||||
eyedeekay,
|
||||
zzz,
|
||||
zlatinb
|
@ -1,72 +0,0 @@
|
||||
(03:01:32 PM) eyedeekay: Hi everyone welcome to the Feburary 8th dev meeting
|
||||
(03:01:38 PM) eyedeekay: Sorry about last week, hopefully the message dropping issues will not recur
|
||||
(03:01:45 PM) eyedeekay: Topics:
|
||||
(03:01:45 PM) eyedeekay: 1. Hi
|
||||
(03:01:45 PM) eyedeekay: 2. Outproxy Requirements(ongoing)
|
||||
(03:01:45 PM) eyedeekay: 3. 1.7.0/0.9.53 status / release schedule
|
||||
(03:02:13 PM) zzz: hi
|
||||
(03:02:15 PM) mode (-m ) by zzz
|
||||
(03:02:16 PM) zlatinb: hi
|
||||
(03:02:30 PM) eyedeekay: hi everybody
|
||||
(03:02:54 PM) eyedeekay: Let's start right in 2) Outproxy requirements
|
||||
(03:04:08 PM) eyedeekay: zzz found us a bunch of old lists of requirements, which we should either A) choose one or B) collate into a new list
|
||||
(03:04:51 PM) eyedeekay: I've been trying to do some research into which requirements are feasible and get some guidance from what Tor does
|
||||
(03:06:18 PM) eyedeekay: At the same time, some groups and some individuals have emerged to volunteer to help with outproxies, one of which is also a multiple Tor exit node operator operating a non-profit, so hopefully we can benefit from their experience
|
||||
(03:08:04 PM) eyedeekay: In some cases I find the rules a little murky: - Optional allowlist/blocklist of hosts/IPs? for instance, seems straightforward at once but what we suggest blocking/allowing on a host/IP basis might open operators up to request to block things they don't want to block?
|
||||
(03:08:45 PM) eyedeekay: Seems like the advice may have been that it's safe to block "ports" but maybe not hostnames?
|
||||
(03:09:05 PM) zzz: I think there's two categories of requirements
|
||||
(03:09:57 PM) zzz: 1) Things that we as a project would want to see (header requirements, small error page, link to additional info)
|
||||
(03:10:48 PM) zzz: 2) Things that any rational outproxy operator would want, especially admin tools, but we don't have the expertise to offer much guidance
|
||||
(03:11:40 PM) zzz: we should focus on 1)
|
||||
(03:12:14 PM) eyedeekay: OK that's easier, approaching it from the other direction was like cramming for a test
|
||||
(03:12:40 PM) zzz: and we should not attempt to offer a turnkey packaged solution for 2), only perhaps suggest some best practices
|
||||
(03:13:00 PM) eyedeekay: But I think it implies we'll need to be flexible, i.e. things we want will need to be subordinate to the things they'll be able to offer
|
||||
(03:13:09 PM) eyedeekay: That's probably a given though
|
||||
(03:13:43 PM) zzz: I'm thinking everything in 1) is pretty basic
|
||||
(03:14:38 PM) zzz: 1a) filter out any X-I2P headers outbound. Do or don't add an X-forwarded headers in either direction?
|
||||
(03:14:54 PM) zzz: 1b) have a small error page with a link to more info
|
||||
(03:15:07 PM) zzz: 1c) have a privacy policy on the more info page
|
||||
(03:15:13 PM) zzz: stuff like that
|
||||
(03:16:24 PM) eyedeekay: Yeah I agree, that shouldn't be difficult
|
||||
(03:17:14 PM) eyedeekay: So I'll avoid trying to figure out what people "should" do re: category 2) for the time being and focus on 1)
|
||||
(03:18:19 PM) eyedeekay: Anything else for topic 2)?
|
||||
(03:18:36 PM) zzz: The other thing in 1) is http vs. standard tunnel. I _think_ http is the right choice, and the choice affects the header issues
|
||||
(03:19:04 PM) zzz: eot for 2)
|
||||
(03:19:37 PM) eyedeekay: The standard tunnel doesn't add the X-I2P-* headers at all does it?
|
||||
(03:19:55 PM) zzz: no, it doesn't know about header
|
||||
(03:20:09 PM) zzz: *headers
|
||||
(03:20:39 PM) zzz: so the choice affects what the external proxy software "sees"
|
||||
(03:21:47 PM) eyedeekay: So why http? Wouldn't it be better if the server software didn't have to strip/re-add/keep track of the X-I2P headers to keep them from leaking?
|
||||
(03:22:23 PM) zzz: any proxy needs to deal with headers
|
||||
(03:22:49 PM) zzz: the proxy standard specifies that some headers are "hop-by-hop" and need to be stripped/added
|
||||
(03:23:56 PM) zzz: and of course there's both the HTTP and HTTPS (CONNECT) cases to deal with
|
||||
(03:27:13 PM) eyedeekay: So in the HTTP tunnel case we would be actually using the X-I2P headers
|
||||
(03:28:39 PM) zzz: they could be used e.g. for rate limiting by a competent outproxy admin
|
||||
(03:29:09 PM) eyedeekay: Makes sense
|
||||
(03:29:57 PM) eyedeekay: Anything else on 2)?
|
||||
(03:30:05 PM) zzz: no
|
||||
(03:30:12 PM) eyedeekay: 3. 1.7.0/0.9.53 status / release schedule
|
||||
(03:30:59 PM) eyedeekay: We're exactly 13 days from release on the 21st
|
||||
(03:31:10 PM) eyedeekay: Tags are freezing tomorrow
|
||||
(03:31:39 PM) zzz: yup, checkin deadline Fri. Feb. 18
|
||||
(03:32:26 PM) zzz: i2pd will be releasing on the 19th or 20th with a fix for the nasty SSU bug that's been causing network reliability issues the last couple of months
|
||||
(03:32:55 PM) zzz: our release will also have some related workarounds and improvements
|
||||
(03:33:09 PM) eyedeekay: Good to hear, that's been a rough ride for a lot of folks especially on mobile
|
||||
(03:33:20 PM) zzz: I'm hopeful that conditions will improve pretty rapidly once people start upgrading
|
||||
(03:34:10 PM) zzz: other than that, the cycle has been pretty smooth, things are quieting down
|
||||
(03:35:26 PM) zzz: we're at 14,000 lines of diff, pretty good size
|
||||
(03:36:00 PM) zzz: eot for 3)
|
||||
(03:37:45 PM) eyedeekay: I don't have much to add, I'll still be making tiny CSS changes for the next week or so to deal with some quirks on extra-small or extra-wide screens and some contrast issues in the dark theme, but other than that my time will be spent trying to review and test
|
||||
(03:37:55 PM) zlatinb: I would like to run some tests in the testnet after both i2p and i2pd freeze the code for the release. I've documented them on the gitlab wiki.
|
||||
(03:38:05 PM) zlatinb: eyedeekay: what about end-to-end test for the windows aio?
|
||||
(03:38:58 PM) eyedeekay: I got one working yesterday, I had a couple issues to deal, one on the build-config side and one on the router.config side but they should both be gone now as long as I'm extra-careful with my release build
|
||||
(03:41:18 PM) eyedeekay: Turns out I had built the package without incrementing the router version number so even if a download happened(which would not have happened because the URL in router.config was wrong) it would not trigger an update
|
||||
(03:42:16 PM) eyedeekay: Both those issues are fixed now and I've set up to test the package after I get it built
|
||||
(03:42:49 PM) eyedeekay: So my updates were badly broken, but now they should be fixed, EOT
|
||||
(03:44:07 PM) eyedeekay: Anything else for the meeting? Questions, comments, concerns?
|
||||
(03:46:02 PM) zzz: aio == "bundle" or "easy install bundle". Let's not use "aio" as the name for it anywhere
|
||||
(03:46:27 PM) zzz: I always think async i/o
|
||||
(03:46:36 PM) zzz: nothing else for me
|
||||
(03:47:06 PM) eyedeekay: OK yeah AIO is ambiguous means different things to different people
|
||||
(03:47:28 PM) eyedeekay: I'll stick to Bundle or Easy-Install Bundle
|
||||
(03:48:01 PM) eyedeekay: All right thanks everybody for coming to the meeting, see you next month on the 5th, looks like
|
@ -1,11 +0,0 @@
|
||||
I2P dev meeting, February 8, 2022 @ 20:00 UTC
|
||||
=============================================
|
||||
|
||||
Quick recap
|
||||
-----------
|
||||
|
||||
* **Present:**
|
||||
|
||||
eyedeekay,
|
||||
zzz,
|
||||
zlatinb
|
@ -1,83 +0,0 @@
|
||||
(03:01:40 PM) eyedeekay: Hi everyone, welcome to the dev meeting
|
||||
(03:01:40 PM) eyedeekay: 1. Hi
|
||||
(03:01:40 PM) eyedeekay: 2. Release Status (1.7.0 / 0.9.53)
|
||||
(03:02:10 PM) zlatinb: hi
|
||||
(03:02:12 PM) zzz: hello
|
||||
(03:02:39 PM) eyedeekay: Anything else to add to the agenda today before we start the release status?
|
||||
(03:03:01 PM) zlatinb: I have two small items that could fall into a "wishlist for 1.8.0" item
|
||||
(03:03:25 PM) eyedeekay: 3) 1.8.0 wishlist
|
||||
(03:04:24 PM) eyedeekay: 2. Release Status(1.7.0/0.9.53)
|
||||
(03:05:37 PM) eyedeekay: On my end I do have one remaining item, there is an issue with the .aab bundle build process where static resources that are included from the `i2p.i2p` build are deleted and from the final .aab
|
||||
(03:06:06 PM) eyedeekay: For the time being, GPlay is delayed, I'm working on it today and should be done soon.
|
||||
(03:07:53 PM) eyedeekay: F-Droid and Freestanding are both .apk's that use the old build process that isn't broken, so it still works.
|
||||
(03:07:53 PM) eyedeekay: Are there any other outstanding release processes to finish?
|
||||
(03:10:03 PM) eyedeekay: zzz anything to add to the release status topic from your end? I understand BiglyBT released their plugin today, is that correct?
|
||||
(03:10:22 PM) zzz: yes
|
||||
(03:10:48 PM) zzz: based on expl. build success stats, we've rapidly recovered from i2pd's regression in the last release
|
||||
(03:10:52 PM) zzz: http://stats.i2p/docs/buildsuccess.png
|
||||
(03:11:11 PM) zzz: and are now at a higher point than any time in the last few years iirc
|
||||
(03:12:11 PM) zzz: things should settle out in another week and we'll see where we are
|
||||
(03:12:13 PM) zzz: eot
|
||||
(03:12:21 PM) eyedeekay: That's really excellent news. Glad things are looking good so far.
|
||||
(03:12:32 PM) eyedeekay: Thanks zzz
|
||||
(03:12:50 PM) eyedeekay: 3. 1.8.0 wishlist
|
||||
(03:13:17 PM) eyedeekay: zlatinb take it away
|
||||
(03:13:44 PM) zlatinb: hi, 1) is speeding up initial exploratory build time and 2) JNA
|
||||
(03:14:05 PM) zlatinb: 1: I've been doing some analysis, 75% of the exploratory tunnels that do build do so in less than 500ms
|
||||
(03:14:29 PM) zlatinb: out of ~30 samples the slowest successful build was less than 2500ms
|
||||
(03:14:46 PM) zlatinb: whereas the timeout we have now is 13000 ms, I think reducing that will get the router to RUNNING state faster
|
||||
(03:15:07 PM) zlatinb: we don't have to decide now, just floating the idea out there
|
||||
(03:15:12 PM) zlatinb: eot on 1
|
||||
(03:15:33 PM) zzz: no objections on 1
|
||||
(03:15:56 PM) eyedeekay: Sounds like an interesting experiment to try at least, it doesn't seem like it could do any harm
|
||||
(03:16:12 PM) eyedeekay: If all the successful builds are so short
|
||||
(03:16:13 PM) zlatinb: 2: JNA - we'll definitely need to add JNA to the windows easy install bundle in order to elevate priviledge during auto-update. ProcessBuilder fails if the process requires elevation.
|
||||
(03:16:20 PM) zzz: although I'd like to see data over a longer time period before we pick the new number
|
||||
(03:16:25 PM) zlatinb: sure
|
||||
(03:16:42 PM) zzz: please back up and define JNA
|
||||
(03:16:43 PM) zlatinb: (back to 1) I'll leave a router running with logging enabled
|
||||
(03:17:12 PM) zlatinb: (back to 2): JNA is Java Native A-something but it's basically a Java wrapper of native windows linux and mac libraries
|
||||
(03:17:27 PM) zlatinb: so instead of writing native code you write java code
|
||||
(03:17:52 PM) zlatinb: two jars combined size 3MB, compressed with LZMA down to 2MB
|
||||
(03:18:11 PM) zzz: please back up and elaborate on the problem and how prevalent it is
|
||||
(03:18:38 PM) zlatinb: while testing silent updates in muwire I saw that ProcessBuilder fails to launch an installer with an "priviledge elevation required" or some such
|
||||
(03:19:07 PM) zzz: windows-only problem?
|
||||
(03:19:12 PM) zlatinb: googling revealed that it is not possible to do so with ProcessBuilder
|
||||
(03:19:36 PM) zlatinb: yes windows-only for now
|
||||
(03:19:40 PM) eyedeekay: It doesn't seem to be happening on the Windows Easy-Install to me, is that because NSIS is asking for the elevated privileges and not Java?
|
||||
(03:20:02 PM) zlatinb: NSIS is asking
|
||||
(03:20:16 PM) zlatinb: if you already run the java with priviledge then it won't ask
|
||||
(03:20:22 PM) zlatinb: privilege*
|
||||
(03:20:28 PM) zzz: yeah that's my question, windows easy-install has been in beta for months and months, is this a muwire-only problem?
|
||||
(03:20:48 PM) eyedeekay: Oh OK, then it will start happening before the next update with ShellExecAsUser
|
||||
(03:21:15 PM) zlatinb: do you elevate if launched not from installer eyedeekay?
|
||||
(03:21:48 PM) zlatinb: I don't remember seeing an elevation prompt
|
||||
(03:22:12 PM) zlatinb: so it should be happening with windows easy-install if launched from desktop shortcut, not as a last step of an installer
|
||||
(03:22:14 PM) eyedeekay: No I don't, it runs as the user running the batch script, but only if I2P isn't already running, presumably as an admin
|
||||
(03:22:52 PM) zzz: so, before we can start talking about a solution for our easy-install windows bundle, let's verify there is a problem
|
||||
(03:22:57 PM) eyedeekay: It does not shut down the router with the browser
|
||||
(03:23:35 PM) eyedeekay: I'm inclined to believe that there will be, but will confirm later this week
|
||||
(03:23:36 PM) zlatinb: so if the user doesn't uncheck the "launch i2p now" checkbox and leave the router running, it will run as privileged and not prompt on update
|
||||
(03:23:43 PM) zlatinb: ok
|
||||
(03:24:22 PM) zlatinb: either way, with 1.7.0 the router is launched as non-privileged even if launched from the installer
|
||||
(03:24:39 PM) zzz: and while you can follow your own rules in muwire, any solution in our official products will have to be vetted for suitability, maintenance, license compatibility, etc
|
||||
(03:24:57 PM) zlatinb: Apache 2.0
|
||||
(03:25:45 PM) zlatinb: looking forward JNA allows us to do anything we like with windows APIs really.. register shell extensions, URI handlers, all that good stuff
|
||||
(03:25:57 PM) zlatinb: eot on 2
|
||||
(03:26:35 PM) zzz: let's get a couple cycles in on the easy-install auto-updater, which apparently has never worked?
|
||||
(03:27:13 PM) zzz: you don't have to wait for a i2p release, just put in a new java, or change something else. let's work out the bugs a little faster
|
||||
(03:27:14 PM) eyedeekay: It was broken, then fixed, now apparently it will break again on the next update
|
||||
(03:27:55 PM) eyedeekay: But the other solution from my side would be to change the installer so it no longer uses %ProgramFiles% and installs somewhere unprivileged
|
||||
(03:28:09 PM) zzz: do a release every week until it's working smoothly. obviously the 3-month pace isn't fast enough to converge on something that works
|
||||
(03:28:32 PM) eyedeekay: Can do
|
||||
(03:29:53 PM) eyedeekay: Thanks for bringing these up for us zlatinb, anything else on 3?
|
||||
(03:29:58 PM) zzz: and that will give us data on the extent of the privileges problem, if any
|
||||
(03:30:00 PM) zzz: eot
|
||||
(03:30:21 PM) zlatinb: no, eot from me
|
||||
(03:30:57 PM) eyedeekay: All right anything else for the meeting? timeout 1m
|
||||
(03:31:16 PM) zzz: also, use the news to tell your beta testers if the update is broken and they need to re-download
|
||||
(03:31:35 PM) eyedeekay: will do
|
||||
(03:32:05 PM) zzz: you both have your own news feeds, but aren't using it to talk to your users, you're just relying on my news entries? you should start testing/using that feature
|
||||
(03:32:11 PM) zzz: eot
|
||||
(03:34:07 PM) eyedeekay: Can do, in the past I added the i2p.firefox changelog
|
||||
(03:34:54 PM) eyedeekay: Thanks for coming to the meeting everybody, looks like I've got a lot of work to do, see you all around IRC
|
@ -1,11 +0,0 @@
|
||||
I2P dev meeting, March 1, 2022 @ 20:00 UTC
|
||||
==========================================
|
||||
|
||||
Quick recap
|
||||
-----------
|
||||
|
||||
* **Present:**
|
||||
|
||||
eyedeekay,
|
||||
zzz,
|
||||
zlatinb
|
@ -1,90 +0,0 @@
|
||||
(04:00:32 PM) eyedeekay: Hi everyone welcome to the April dev meeting, agenda for today:
|
||||
(04:00:32 PM) eyedeekay: 1. Hi
|
||||
(04:00:32 PM) eyedeekay: 2. Release Status (1.7.0 / 0.9.53)
|
||||
(04:00:32 PM) eyedeekay: 3. Development Status (1.8.0 / 0.9.54)
|
||||
(04:00:32 PM) eyedeekay: 4. JNA in easy-install bundles, what doors does it open?
|
||||
(04:00:42 PM) eyedeekay: 1. Hi
|
||||
(04:00:47 PM) zlatinb: hi
|
||||
(04:00:50 PM) zzz: hi
|
||||
(04:01:18 PM) eyedeekay: Hi zlatinb, hi zzz
|
||||
(04:01:27 PM) eyedeekay: Anybody else here today?
|
||||
(04:01:45 PM) eyedeekay: 2. Release Status (1.7.0 / 0.9.53)
|
||||
(04:02:52 PM) eyedeekay: 1.7.0 has been out for about 6 weeks now, updates from last month for me are that all the Android packages are successfully deployed and the bug that was discovered at release time is now fixed
|
||||
(04:03:28 PM) eyedeekay: As usual, the packages in Debian's main repositories haven't seen an update, if you're still using them please switch to deb.i2p2.de/.no as soon as possible
|
||||
(04:04:23 PM) zzz: re: Debian, I did find a volunteer to get 0.9.48 fixed and reinstated into Sid. that's done
|
||||
(04:04:46 PM) zzz: whether it will automatically trickle back into bullseye and ubuntu, no idea
|
||||
(04:05:00 PM) zzz: still no luck finding a new maintainer
|
||||
(04:05:01 PM) zzz: eot
|
||||
(04:05:08 PM) eyedeekay: Thanks
|
||||
(04:05:51 PM) eyedeekay: I have one more, this overlaps 2 and 3 and 4 actually but Easy-install bundles for Windows will still require one more manual update
|
||||
(04:06:25 PM) zzz: have you made progress since last meeting?
|
||||
(04:06:30 PM) eyedeekay: Considerable yes
|
||||
(04:07:15 PM) eyedeekay: Most of it is part of this MR, : https://i2pgit.org/i2p-hackers/i2p.firefox/-/merge_requests/6/diffs#10d851887651eddb01e5952f08999080b019da2e
|
||||
(04:07:35 PM) zzz: great. you have a target date for when you will propose transition out of beta?
|
||||
(04:08:02 PM) eyedeekay: As soon as users receive an automatic update I will consider it ready
|
||||
(04:08:22 PM) zzz: thanks
|
||||
(04:08:47 PM) eyedeekay: Anything else on 2?
|
||||
(04:09:33 PM) eyedeekay: 3. Development Status (1.8.0 / 0.9.54)
|
||||
(04:10:03 PM) zzz: (no, all good, haven't heard any complaints on 1.7.0)
|
||||
(04:10:21 PM) eyedeekay: Me either, people seem to be pretty happy with it so far
|
||||
(04:12:12 PM) eyedeekay: As for 3. Development Status (1.8.0 / 0.9.54) Unfortunately I've been a lot slower at some things than I expected, I'm stuck on UDP tunnels but almost ready for an MR on SAM authentication
|
||||
(04:12:38 PM) eyedeekay: Besides that I'm doing some revisions to the complicated bandwidth wizard pages to make the selection process more understandable and the notifications more noticable
|
||||
(04:12:52 PM) eyedeekay: We're about 6 weeks in with 7 weeks to go, right zzz?
|
||||
(04:13:02 PM) zzz: right
|
||||
(04:13:31 PM) eyedeekay: Do you want to update us on SSU2 or anything else you've been working on?
|
||||
(04:13:46 PM) zzz: 13 weeks would be a May 23 release
|
||||
(04:13:53 PM) zzz: yes, thanks
|
||||
(04:14:01 PM) zzz: enormous progress with i2pd on SSU 2
|
||||
(04:14:03 PM) mode (+v anonymousmaybe) by ChanServ
|
||||
(04:14:17 PM) zzz: live testing happening in the network now
|
||||
(04:14:40 PM) zzz: other things coming in the release: snark standalone improvements, router family fixes
|
||||
(04:14:49 PM) zzz: an SSU 1 performance fix
|
||||
(04:15:15 PM) zzz: things should slow down soon on SSU 2, and I'll be turning to some more bug fixes all over
|
||||
(04:15:23 PM) zzz: eot
|
||||
(04:16:04 PM) eyedeekay: Awesome, thanks for the updates zzz
|
||||
(04:16:37 PM) eyedeekay: zlatinb anything you want to talk about for this topic before we get to 4?
|
||||
(04:16:55 PM) zlatinb: I guess the reduction in tunnel build timeout should result in faster bootup
|
||||
(04:17:11 PM) zlatinb: or faster 0-to-Router.isRunning()
|
||||
(04:17:20 PM) zlatinb: that's all eot
|
||||
(04:17:38 PM) eyedeekay: Thanks zlatinb, that will make people happy :)
|
||||
(04:17:56 PM) eyedeekay: 4. JNA in easy-install bundles, what doors does it open?
|
||||
(04:18:15 PM) eyedeekay: zlatinb this was your topic but I have a lot of notes on it too, do you want to start?
|
||||
(04:18:24 PM) zlatinb: sure.
|
||||
(04:18:34 PM) zlatinb: Basically MR 6 adds the JNA libraries to the windows easy-install bundle
|
||||
(04:18:49 PM) zlatinb: which just today I learned wasn't necessary because of JEP 419 (which is built-in JNA replacement)
|
||||
(04:19:12 PM) zlatinb: but the overall point is the same: since we need to do some native things, what other native things do we want to do?
|
||||
(04:19:33 PM) eyedeekay: Sometimes we need to talk to power/batter management
|
||||
(04:19:36 PM) eyedeekay: *battery
|
||||
(04:19:57 PM) zlatinb: In MuWire I've implemented a "background priority" on windows, which according to the MSDN docs guarantees the process never interferes with foreground processes
|
||||
(04:20:05 PM) zlatinb: yes, battery power management is another such thing
|
||||
(04:20:17 PM) eyedeekay: I need to ask for admin rights in a conditional way, which isn't supported by NSIS itself
|
||||
(04:20:21 PM) zlatinb: so yeah that's from me, just invitation to think native :)
|
||||
(04:20:21 PM) zlatinb: eot
|
||||
(04:21:22 PM) eyedeekay: So yeah we definitely have a few cases in mind where it might be useful to have something JNA-like
|
||||
(04:22:41 PM) zlatinb: ok.. then the question is do we add any/all such functionality in the easy-install bundle and keep it outside of the core router package
|
||||
(04:22:45 PM) zzz: sorry to be the party-pooper, but at last month's meeting, JNA was a possible solution to a single problem (privilege) on Windows only
|
||||
(04:23:08 PM) zzz: and today we're at "it's definitely the solution for many problems, what other fun stuff can we do with it" ?
|
||||
(04:23:18 PM) zlatinb: yeah that's the party theme lol
|
||||
(04:23:34 PM) zzz: which is both a leap and typical solution-looking-for-a-problem
|
||||
(04:24:31 PM) zlatinb: that's one way to look at it, I think it (JNA / JEP 419) can make I2P better in many ways
|
||||
(04:25:14 PM) zlatinb: on many platforms
|
||||
(04:25:14 PM) zlatinb: I've just scratched the surface on windows tbh
|
||||
(04:25:28 PM) zzz: so JNA has not been decided on?
|
||||
(04:25:28 PM) zlatinb: JNA has the benefit of being backwards compatible down to java 1.4, JEP 419 is only in JDK 18
|
||||
(04:25:51 PM) zlatinb: I would say both are on the table, with JNA having some headstart
|
||||
(04:26:37 PM) zzz: 419 is "incubator" status meaning it could vanish, don't count on it
|
||||
(04:27:07 PM) eyedeekay: I'm pro-JNA because being able to control installer privs solves at least 2 problems for me and gives me the power to install to/run entirely from flash drives
|
||||
(04:27:46 PM) eyedeekay: I don't want to lose that to a project being unready or abandoned
|
||||
(04:29:03 PM) eyedeekay: So I guess pro-JNA, hesitant on 419 from me
|
||||
(04:29:54 PM) zlatinb: well 419 with a slightly different api is already in JDK 17 which is LTS, but I won't have a strong opinion until it's out of incubation
|
||||
(04:30:00 PM) zzz: we should continue to keep an eye out for the best tools to solve the problems we have now... daydreaming what else we could do with it isn't so important
|
||||
(04:31:10 PM) zzz: going out of the JVM is always going to be messy and less maintainable, to be used only if really necessary, no matter what mechanism is used
|
||||
(04:33:14 PM) zlatinb: Nobody disagrees with that, but I think we shouldn't stop ourselves from dreaming big
|
||||
(04:33:38 PM) zlatinb: integrating with the windows shell or power management on laptops sounds awfully nice to me
|
||||
(04:34:18 PM) zlatinb: that should be possible on linux laptops as well btw
|
||||
(04:34:33 PM) eyedeekay: I'm still dreaming small TBH, flash-drive-portables were just a by-product of supporting adminless installs
|
||||
(04:36:24 PM) eyedeekay: But if there's a non-JNA way of doing something then yeah we should probably try that first
|
||||
(04:38:54 PM) eyedeekay: Anything else on 4?
|
||||
(04:39:07 PM) zlatinb: not from me, eot
|
||||
(04:40:26 PM) eyedeekay: Anything else for the meeting? timeout 1m
|
||||
(04:41:43 PM) eyedeekay: All right thanks everybody for coming, looks like next month meeting will be May 3rd
|
@ -1,11 +0,0 @@
|
||||
I2P dev meeting, April 5, 2022 @ 20:00 UTC
|
||||
==========================================
|
||||
|
||||
Quick recap
|
||||
-----------
|
||||
|
||||
* **Present:**
|
||||
|
||||
eyedeekay,
|
||||
zzz,
|
||||
zlatinb
|
@ -1,28 +0,0 @@
|
||||
(03:48:58 PM) eyedeekay: It would seem not, I'll have a look at gitlab's bugtracker and see if I can find an explanation
|
||||
(04:00:03 PM) eyedeekay: Hi everyone, welcome to the development meeting
|
||||
(04:00:03 PM) eyedeekay: 1. Hi
|
||||
(04:00:03 PM) eyedeekay: 2. Release Date
|
||||
(04:00:03 PM) eyedeekay: 3. Development Status (1.8.0 / 0.9.54)
|
||||
(04:00:05 PM) eyedeekay: hi
|
||||
(04:00:13 PM) zlatinb: hi
|
||||
(04:00:17 PM) zzz: hello
|
||||
(04:00:45 PM) eyedeekay: 2. Release date
|
||||
(04:01:16 PM) eyedeekay: We need to decide on one, tentatively it's been the 23rd for a while, that works for me if it works for everybody else?
|
||||
(04:01:43 PM) zzz: that would be 13 weeks, fine with me
|
||||
(04:02:01 PM) zzz: need approval from eche|off eche|on if he's here
|
||||
(04:03:04 PM) eyedeekay: looks like not but I can email him after the meeting
|
||||
(04:04:00 PM) eyedeekay: looking like the 23rd pending email to ech
|
||||
(04:04:09 PM) eyedeekay: Anything else for 2?
|
||||
(04:04:58 PM) eyedeekay: 3. Development Status (1.8.0 / 0.9.54)
|
||||
(04:07:41 PM) eyedeekay: We're definitely less than a month from releasing 1.8.0/0.9.54 in any case, with lots of it being preparation/implementation for SSU2 by zzz
|
||||
(04:08:42 PM) eyedeekay: Big changes should be done soon, and tag freeze is on the 11th so translations must be in by then
|
||||
(04:09:28 PM) eyedeekay: /translations/strings
|
||||
(04:09:58 PM) eyedeekay: zzz, zlatinb anything to add on this topic?
|
||||
(04:10:44 PM) zzz: not much, I'm pretty much done, will be chasing a few minor things on my list in the next couple weeks
|
||||
(04:11:02 PM) zlatinb: nothing from me
|
||||
(04:11:03 PM) zzz: any new ssu2 stuff I'll probably either hold off or stick in a branch
|
||||
(04:11:11 PM) zzz: eot
|
||||
(04:12:05 PM) eyedeekay: thanks guys
|
||||
(04:12:49 PM) eyedeekay: Anything else for the meeting? Last-minute topics? timeout 1m
|
||||
(04:14:13 PM) eyedeekay: All right, quick meeting today
|
||||
(04:14:33 PM) eyedeekay: Thanks everyone for coming, I'll email echelon then post the logs
|
@ -1,11 +0,0 @@
|
||||
I2P dev meeting, May 3, 2022 @ 20:00 UTC
|
||||
========================================
|
||||
|
||||
Quick recap
|
||||
-----------
|
||||
|
||||
* **Present:**
|
||||
|
||||
eyedeekay,
|
||||
zzz,
|
||||
zlatinb
|
@ -1,60 +0,0 @@
|
||||
(04:00:41 PM) eyedeekay: Hi everybody and welcome to the June 7 meeting
|
||||
(04:00:41 PM) eyedeekay: 1. Hi
|
||||
(04:00:41 PM) eyedeekay: 2. 1.8.0 release status
|
||||
(04:00:41 PM) eyedeekay: 3. 1.9.0 development status
|
||||
(04:00:41 PM) eyedeekay: 4. MoneroKon 2022
|
||||
(04:01:23 PM) zzz: hi
|
||||
(04:01:27 PM) zlatinb: hi
|
||||
(04:01:52 PM) eyedeekay: Hi guys, anybody else here or any topics to add?
|
||||
(04:03:26 PM) eyedeekay: I'll get us started on 1.8.0 release status then
|
||||
(04:04:29 PM) eyedeekay: Maven and I2P Easy-Install bundle for Windows were released shortly after the main 1.8.0 release occurred without incident, the I2P Easy-Install bundle got it's first successful automatic update as well
|
||||
(04:05:12 PM) eyedeekay: The Android release was delayed by about 5 days because I had to change it to avoid asking for a new gated permission from google to release on gplay
|
||||
(04:05:37 PM) eyedeekay: zzz do you want to apprise us of the main release and debian and then zlatinb, OSX easy install bundle?
|
||||
(04:06:37 PM) zzz: two weeks since the release, all looks good, haven't heard any complaints
|
||||
(04:07:01 PM) zzz: about 25% of the network has updated. BiglyBT release should be out shortly, that will give us a big jump
|
||||
(04:07:01 PM) zzz: that's all I have unless anybody has questions
|
||||
(04:07:03 PM) mode (-m ) by zzz
|
||||
(04:07:07 PM) zlatinb: same here, only difference from earlier release is that the Mac bundle includes GPLv2+Classpath license
|
||||
(04:07:29 PM) eyedeekay: Thanks guys, anything else on this topic?
|
||||
(04:08:26 PM) eyedeekay: 3. 1.9.0 development status
|
||||
(04:11:01 PM) eyedeekay: 2 weeks from release we're also 2 weeks into 1.9.0, zzz has been hard at work on ssu2 with orignal, if he wants to give us an update on that
|
||||
(04:11:22 PM) zzz: thanks
|
||||
(04:11:31 PM) zzz: we're getting wider testing of SSU2
|
||||
(04:11:50 PM) zzz: I encourage people who are willing and able, to enable it, and keep up to date with development builds
|
||||
(04:11:58 PM) anonymousmaybe is now known as Irc2PGuest25323
|
||||
(04:12:00 PM) zzz: we're still finding bugs in the basic protocol
|
||||
(04:12:20 PM) zzz: and we're continuing implementation of relay and peer test, which are like sub-protocols
|
||||
(04:12:41 PM) zzz: fixing other non-ssu2 bugs along the way
|
||||
(04:12:54 PM) zzz: eyedeekay, you and I need to update the roadmap both for the past release and the next one
|
||||
(04:13:13 PM) zzz: EOT unless there's any questions
|
||||
(04:13:23 PM) eyedeekay: Yes indeed, I've got some stuff to move to 1.9.0
|
||||
(04:13:50 PM) eyedeekay: for me my main goal in Java is to finish UDP tunnels in HSM, that's one of the things that moves to 1.9.0
|
||||
(04:14:10 PM) eyedeekay: otherwise my immediate goal is to work on NTCP2 in go-i2p, which will probably be hard work but I'm excited to get started
|
||||
(04:14:18 PM) eyedeekay: EOT for me as well
|
||||
(04:14:48 PM) zzz: ok, as usual, target big changes to go in early in the cycle please
|
||||
(04:15:06 PM) eyedeekay: Will do
|
||||
(04:15:13 PM) eyedeekay: Anything else for 3?
|
||||
(04:15:35 PM) zzz: nope, let's plan for a release in late August
|
||||
(04:15:44 PM) eyedeekay: 4. MoneroKon 2022
|
||||
(04:16:36 PM) eyedeekay: This one is just an announcement, there is going to be quite a bit of I2P related stuff happening at Monero Konferenco 2022 in less than 2 weeks, the 18th and 19th
|
||||
(04:17:10 PM) zzz: Lisbon, correct?
|
||||
(04:17:22 PM) eyedeekay: Yes Lisbon
|
||||
(04:17:54 PM) eyedeekay: But people who aren't in Lisbon are able to stream it from the web site for the conference, https://monerokon.com
|
||||
(04:17:58 PM) zzz: I'd like to plug the two students sponsored by diva.exchange that will be giving a presentation on their research there
|
||||
(04:18:17 PM) zzz: you have a workshop also? what about?
|
||||
(04:18:35 PM) eyedeekay: I'm going to be there to run a workshop on adapting applications to the I2P network
|
||||
(04:19:29 PM) eyedeekay: I'm going to present on the decisions people need to make when selecting an API, how to find a router, how to build an I2P plugin
|
||||
(04:19:40 PM) zzz: fantastic. there's going to be a lot of I2P brainpower there to help people and answer questions, I hope you get a good turnout
|
||||
(04:19:51 PM) anonymousmaybe is now known as Irc2PGuest29437
|
||||
(04:20:28 PM) eyedeekay: I hope so too, it's my favorite topic :)
|
||||
(04:21:45 PM) eyedeekay: zlatinb is going to be there as well, so if you can please come see us
|
||||
(04:22:28 PM) eyedeekay: That's all I've got for 4, anything else for the meeting?
|
||||
(04:23:55 PM) eyedeekay: All right thanks everybody for coming, same time next month
|
||||
(04:24:59 PM) obscuratus: eyedeekay: Are they going to stream your workshop?
|
||||
(04:25:53 PM) eyedeekay: I'm not sure, I'll make all the materials open/permissively licensed regardless
|
||||
(04:26:24 PM) obscuratus: Neat topic. If they stream it, or if you can post a video later, I'll watch it.
|
||||
(04:26:32 PM) eyedeekay: I believe the box I marked on the form was that I did consent to be streamed
|
||||
(04:27:34 PM) zzz: eyedeekay, the times on your reddit post are lisbon local?
|
||||
(04:27:58 PM) eyedeekay: Yes the schedule on the monerokon website are UTC+1 which is Lisbon Local
|
||||
(04:28:39 PM) eyedeekay: *times on the monerokon website
|
||||
(04:29:07 PM) zzz: ok so 5 hours ahead of eastern, so the students are on at 5:30 AM
|
@ -1,11 +0,0 @@
|
||||
I2P dev meeting, June 7, 2022 @ 20:00 UTC
|
||||
=========================================
|
||||
|
||||
Quick recap
|
||||
-----------
|
||||
|
||||
* **Present:**
|
||||
|
||||
eyedeekay,
|
||||
zzz,
|
||||
zlatinb
|
@ -19,4 +19,9 @@
|
||||
{{ body }}
|
||||
{% endautoescape %}
|
||||
</div>
|
||||
<p>
|
||||
<a href="https://flattr.com/submit/auto?user_id=I2P&url={{ canonical() }}" target="_blank">
|
||||
<img src="{{ url_for('static', filename='images/flattr-badge-large.png') }}" alt="Flattr this" title="Flattr this" border="0">
|
||||
</a>
|
||||
</p>
|
||||
{% endblock %}
|
||||
|
@ -1,9 +1,18 @@
|
||||
<p>{% trans -%} Your web browser will need to be configured in order to browse web sites on I2P and to utilize the outproxies available within I2P. Below are walkthroughs for some of the most popular browsers. {%- endtrans %}</p>
|
||||
<p>{% trans -%}
|
||||
Your web browser will need to be configured in order to browse web sites on I2P
|
||||
and to utilize the outproxies available within I2P. Below are walkthroughs for
|
||||
some of the most popular browsers.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<h2>{{ _('Firefox Profile for Windows') }}</h2>
|
||||
<p>{% trans profile='/firefox' -%} If you are using Windows, the recommended way of accessing I2P is using the
|
||||
<a href='{{ profile }}'>Firefox profile</a>. {%- endtrans %}</p>
|
||||
<p>{% trans -%} If you do not wish to use that profile or are not on Windows, you need to configure your browser yourself. Read below on how to that. {%- endtrans %}</p>
|
||||
<p>{% trans profile='/firefox' -%}
|
||||
If you are using Windows, the recommended way of accessing I2P is using the
|
||||
<a href='{{ profile }}'>Firefox profile</a>.
|
||||
{%- endtrans %}</p>
|
||||
<p>{% trans -%}
|
||||
If you do not wish to use that profile or are not on Windows, you need to
|
||||
configure your browser yourself. Read below on how to that.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<h2>{{ _('How to configure your browser') }}</h2>
|
||||
|
||||
@ -17,50 +26,94 @@
|
||||
|
||||
<a name="firefox"></a>
|
||||
<h3>Firefox</h3>
|
||||
<h4>{% trans %}Extension-based Configuration: I2P in Private Browsing{% endtrans %}</h4>
|
||||
<p>{% trans %}A new way of automatically configuring the I2P Browser is currently being tested. It uses the Firefox's "Container Tabs" to build private browsing tools for use with I2P and I2P applications.{% endtrans %}</p>
|
||||
<p>{% trans %}It does pre-configuration of your browser by enabling some of the privacy Browser Settings like ResistFingerprinting, and enforces WebRTC proxy obedience. It also contains menus, shortcuts, and monitoring tools improving Firefox's integration
|
||||
with I2P. It should not substantially interfere with your non-I2P Firefox tabs. {% endtrans %}</p>
|
||||
<p>{% trans %}The extension, <a href="https://addons.mozilla.org/en-US/firefox/addon/i2p-in-private-browsing/">I2P in Private Browsing</a>, can be obtained from the Mozilla addon store. {% endtrans %}</p>
|
||||
<p>{% trans %}The source code for the extension is, <a href="https://i2pgit.org/idk/I2P-in-Private-Browsing-Mode-Firefox">i2pgit.org</a>. {% endtrans %}</p>
|
||||
<h4>{% trans %}Experimental, extension-based Configuration{% endtrans %}</h4>
|
||||
<p>{% trans %}A new way of automatically configuring the I2P Browser is
|
||||
currently being tested. It uses the Firefox's "Container Tabs" to build private
|
||||
browsing tools for use with I2P and I2P applications.{% endtrans %}</p>
|
||||
<p>{% trans %}It does pre-configuration of your browser by enabling some of
|
||||
the privacy Browser Settings like ResistFingerprinting, and enforces WebRTC proxy
|
||||
obedience. It also contains menus, shortcuts, and monitoring tools improving
|
||||
Firefox's integration with I2P. It is a by-product of the I2P Browser project.
|
||||
{% endtrans %}</p>
|
||||
<p>{% trans %}The extension, <a href="https://addons.mozilla.org/en-US/firefox/addon/i2p-in-private-browsing/">I2P in Private Browsing</a>,
|
||||
can be obtained from the Mozilla addon store.
|
||||
{% endtrans %}</p>
|
||||
<h4>{% trans %}Instructions for Firefox 57 and above:{% endtrans %}</h4>
|
||||
<p>{% trans -%} From the Menu button in the top right, select <em>Preferences</em>. Scroll down until you see the <em>Network Proxy</em> section, as shown in the screenshot below. Click on <em>Settings</em> {%- endtrans %}</p>
|
||||
<img src="{{ url_for('static', filename='images/firefox57.preferences.png') }}" alt="{{ _('Firefox57 Network Options') }}" title="{{ _('Firefox57 Network Options') }}">
|
||||
<p>{% trans -%} In the <em>Connection Settings</em> pop-up, select <em>Manual proxy
|
||||
<p>{% trans -%}
|
||||
From the Menu button in the top right, select <em>Preferences</em>.
|
||||
Scroll down until you see the <em>Network Proxy</em> section, as shown in the
|
||||
screenshot below. Click on <em>Settings</em>
|
||||
{%- endtrans %}</p>
|
||||
<img src="{{ url_for('static', filename='images/firefox57.preferences.png') }}"
|
||||
alt="{{ _('Firefox57 Network Options') }}" title="{{ _('Firefox57 Network Options') }}">
|
||||
<p>{% trans -%}
|
||||
In the <em>Connection Settings</em> pop-up, select <em>Manual proxy
|
||||
configuration</em>. Set both the HTTP and SSL Proxy to address
|
||||
<code>127.0.0.1</code> with port <code>4444</code> as shown in the following screenshot. {%- endtrans %}</p>
|
||||
<code>127.0.0.1</code> with port <code>4444</code> as shown in the following
|
||||
screenshot.
|
||||
{%- endtrans %}</p>
|
||||
<img src="{{ url_for('static',
|
||||
filename='images/firefox57.connectionsettings.png') }}" alt="{{ _('Firefox57
|
||||
Connection Settings') }}" title="{{ _('Firefox57 Connection Settings') }}">
|
||||
<p>{% trans -%} Finally, go to the address <em>about:config</em> and find the property media.peerConnection.ice.proxy_only. Ensure that this setting is True. {%- endtrans %}</p>
|
||||
<p>{% trans -%}
|
||||
Finally, go to the address <em>about:config</em> and find the property
|
||||
media.peerConnection.ice.proxy_only. Ensure that this setting is True.
|
||||
{%- endtrans %}</p>
|
||||
<img src="{{ url_for('static',
|
||||
filename='images/firefox.webrtc.png') }}" alt="{{ _('Firefox57
|
||||
PeerConnection Settings') }}" title="{{ _('Firefox57 PeerConnection Settings') }}">
|
||||
|
||||
<a name="chrome"></a>
|
||||
<h3>{% trans %} Chrome {% endtrans %}</h3>
|
||||
<h4>{% trans %}Extension-based Configuration: I2PChrome.js(Experimental, additional configuration){% endtrans %}</h4>
|
||||
<p>{% trans %}An experimental, partially-automated configuration process for Chrome is available. In order to configure it, create a new <em>Profile</em> especially for your I2P browsing, separate from the default profile. Then install this <a href="https://chrome.google.com/webstore/detail/i2pchromejs/ikdjcmomgldfciocnpekfndklkfgglpe"><em>Extension</em></a> in your newly-created profile. This profile is now configured to use I2P. Highly detailed instructions are available at the
|
||||
<a href="https://eyedeekay.github.io/I2P-Configuration-For-Chromium">homepage.</a> {% endtrans %}</p>
|
||||
<h4>{% trans %}Experimental, extension-based Configuration{% endtrans %}</h4>
|
||||
<p>{% trans %}An experimental, partially-automated configuration process for
|
||||
Chrome is available. In order to configure it, create a new <em>Profile</em>
|
||||
especially for your I2P browsing, separate from the default profile. Then install
|
||||
this <a href="https://chrome.google.com/webstore/detail/i2pchromejs/ikdjcmomgldfciocnpekfndklkfgglpe"><em>Extension</em></a> in your newly-created profile. This profile
|
||||
is now configured to use I2P. Highly detailed instructions are available at the
|
||||
<a href="https://eyedeekay.github.io/I2P-Configuration-For-Chromium">homepage.</a>
|
||||
{% endtrans %}</p>
|
||||
<h4>{% trans %}All Chrome Versions{% endtrans %}</h4>
|
||||
<p>{% trans -%} Chromium-Based Browsers like Chrome have slightly different places for their proxy settings depending on variant and platform. These instructions may be slightly different in Brave or Iridium, for instance. From the <em>Main</em> menu, navigate
|
||||
to the <em>Settings</em>, and search for the <em></em> menu item. Clicking it will open the right settings for your platform. {%- endtrans %}</p>
|
||||
<p>{% trans -%}
|
||||
Chromium-Based Browsers like Chrome have slightly different places for their
|
||||
proxy settings depending on variant and platform. These instructions may be
|
||||
slightly different in Brave or Iridium, for instance. From the <em>Main</em>
|
||||
menu, navigate to the <em>Settings</em>, and search for the <em></em> menu item.
|
||||
Clicking it will open the right settings for your platform.
|
||||
{%- endtrans %}</p>
|
||||
<img src="{{ url_for('static', filename='images/chrome.proxy.png') }}" alt="{{ _('Chrome Proxy Options') }}" title="{{ _('Chrome Proxy Options') }}">
|
||||
<p>{% trans -%} On Windows, this button will launch you into the shared proxy settings used by <a href="#ie8"><em>Internet Explorer</em></a>, and you can configure it by following the Internet Explorer 8 guide. {%- endtrans %}</p>
|
||||
<p>{% trans -%}
|
||||
On Windows, this button will launch you into the shared proxy settings used
|
||||
by <a href="#ie8"><em>Internet Explorer</em></a>, and you can configure it by
|
||||
following the Internet Explorer 8 guide.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<a name="android"></a>
|
||||
<h3>{% trans %} IceRaven and other Firefoxes for Android {% endtrans %}</h3>
|
||||
<h4>{% trans %}Extension-based Configuration{% endtrans %}</h4>
|
||||
<p>{% trans %}Modern Firefoxes(The "Fenix" based Firefoxes) do not generally have an about:config page for you to configure proxy settings manually. It is further not possible to use most extensions in Fenix-based Firefoxes. It is possible to enable support
|
||||
about:config and enable more extensions in Firefox Nightly at the time of this writing, but it's a manual and difficult process. <em>IceRaven</em> is a fork of Firefox which enables a collection of extensions while Mozilla and the Mozilla Community
|
||||
work on adding support for extensions to Firefox for Android. It provides the easiest way of configuring a modern Firefox-based Browser for Android. It does not come from Mozilla and carries no guarantees from them. <em>Installing the extension
|
||||
<p>{% trans %}Modern Firefoxes(The "Fenix" based Firefoxes) do not generally have
|
||||
an about:config page for you to configure proxy settings manually. It is further
|
||||
not possible to use most extensions in Fenix-based Firefoxes. It is possible to
|
||||
enable support about:config and enable more extensions in Firefox Nightly at the time
|
||||
of this writing, but it's a manual and difficult process. <em>IceRaven</em> is a fork
|
||||
of Firefox which enables a collection of extensions while Mozilla and the Mozilla
|
||||
Community work on adding support for extensions to Firefox for Android. It provides
|
||||
the easiest way of configuring a modern Firefox-based Browser for Android. It does
|
||||
not come from Mozilla and carries no guarantees from them. <em>Installing the extension
|
||||
in IceRaven will proxy all your IceRaven browsing over I2P.</em>{% endtrans %}</p>
|
||||
<p>{% trans %}If you have not installed IceRaven yet, go to the next step. If you have been using IceRaven for a while, go to the main menu, select the History tab, and make sure that you have cleared information about your past browsing by tapping the "Delete
|
||||
History" button.{% endtrans %}</p>
|
||||
<p>{% trans %}Open the IceRaven main menu, and scroll to the top until you see the "Add-Ons" submenu. Tap the "Add-Ons Manager" option in the "Add-Ons" submenu. Install the extension named <em>I2P Proxy for Android and other Systems</em>. {% endtrans %}</p>
|
||||
<p>{% trans %}Your IceRaven browser is now configured to use I2P. {% endtrans %}</p>
|
||||
<p>{% trans %}This extension also works in pre-Fenix(Pre-Firefox-68) Firefox based web browsers, if installed from the following addons.mozilla.org URL.
|
||||
<em><a href="https://addons.mozilla.org/en-US/android/addon/i2p-proxy/">I2P Proxy for Android and Other Systems</a><em>
|
||||
<p>{% trans %}If you have not installed IceRaven yet, go to the next step. If you have been
|
||||
using IceRaven for a while, go to the main menu, select the History tab, and make
|
||||
sure that you have cleared information about your past browsing by tapping the
|
||||
"Delete History" button.{% endtrans %}</p>
|
||||
<p>{% trans %}Open the IceRaven main menu, and scroll to the top until you see the "Add-Ons"
|
||||
submenu. Tap the "Add-Ons Manager" option in the "Add-Ons" submenu. Install
|
||||
the extension named <em>I2P Proxy for Android and other Systems</em>.
|
||||
{% endtrans %}</p>
|
||||
<p>{% trans %}Your IceRaven browser is now configured to use I2P.
|
||||
{% endtrans %}</p>
|
||||
<p>{% trans %}This extension also works in pre-Fenix(Pre-Firefox-68) Firefox based
|
||||
web browsers, if installed from the following addons.mozilla.org URL.
|
||||
<em><a href="https://addons.mozilla.org/en-US/android/addon/i2p-proxy/">I2P Proxy for Android and Other Systems</a><em>
|
||||
{% endtrans %}</p>
|
||||
<p>{% trans %}This extension is identical to the Chromium extension and is built from the same source.{% endtrans %}</p>
|
||||
<p>{% trans %}In order to enable extension support in Firefox Nightly, you should follow
|
||||
@ -88,14 +141,14 @@ settings and your browser is set to use the I2P proxy.
|
||||
<a name="TOS"></a>
|
||||
<h3>{{ _('Outproxy Terms Of Service') }}</h3>
|
||||
<p>{% trans -%}
|
||||
I2P is not designed for creating proxies to the Internet.
|
||||
Remember: I2P was not designed for creating proxies to the outer Internet.
|
||||
Instead, it is meant to be used as an internal network.
|
||||
{%- endtrans %}</p>
|
||||
<p>{% trans -%}
|
||||
<p><b>The I2P project itself does not run any proxies to the Internet.</b>
|
||||
The I2P software includes two outproxies: false.i2p and outproxy-tor.meeh.i2p.
|
||||
Even though domain names are different, it's the same outproxy you hit,
|
||||
multihomed/keyed for better performance. These are run by a volunteer. </p>
|
||||
The only outproxy is a service from the privacy solutions project.
|
||||
Consider donating to them for a continued stable service. Increased funding will
|
||||
allow them to improve this service. </p>
|
||||
<a href="http://privacysolutions.no"
|
||||
target="_blank">http://privacysolutions.no</a>
|
||||
{%- endtrans %}</p>
|
||||
@ -105,12 +158,13 @@ and <code>{{ https }}</code>. Even the domain names are different, it's the same
|
||||
(multi-homed/keyed for better performance)
|
||||
{%- endtrans %}</p>
|
||||
<p>{% trans -%}
|
||||
Filtering is active on these outproxies (for example, mibbit and torrent tracker
|
||||
access is blocked). I2P Sites that are accessible via .i2p addresses are also
|
||||
not allowed via the outproxies.
|
||||
Filtering is active on these outproxies (for example, mibbit and torrent
|
||||
tracker access is blocked). I2P Sites
|
||||
that are accessible via .i2p addresses are also not allowed via the outproxies.
|
||||
As a convenience, the outproxy blocks ad servers.
|
||||
{%- endtrans %}</p>
|
||||
<p>{% trans -%}
|
||||
<a href="https://www.torproject.org">Tor</a> provides a browser to use as an outproxy to the Internet.
|
||||
<a href="https://www.torproject.org">Tor</a> is a 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: -->
|
||||
|
@ -3,19 +3,27 @@
|
||||
{% block content %}
|
||||
<h1>{{ _('Debian I2P Packages') }}</h1>
|
||||
|
||||
<h2 id="bionic">{{ _('Debian Buster, Ubuntu Bionic, and later') }}</h2>
|
||||
{% trans -%}
|
||||
I2P is available in the official repositories for Ubuntu Bionic and later, and Debian Buster and Sid.
|
||||
However, Debian Buster and Ubuntu Bionic (LTS) distributions will have older I2P versions.
|
||||
If you are not running Debian Sid or the latest Ubuntu release,
|
||||
use our Debian repo or Launchpad PPA to ensure you're running the latest I2P version.
|
||||
{%- endtrans %}
|
||||
|
||||
<h2 id="others">{{ _('Debian or Ubuntu, All Versions') }}</h2>
|
||||
{% trans -%}The Debian packages should work on most platforms running:{%- endtrans %}
|
||||
<ul>
|
||||
<li>{% trans %}<a href="#ubuntu">Ubuntu</a> (Bionic <em>18.04</em> and newer){% endtrans %}</li>
|
||||
<li>{% trans %}<a href="#ubuntu">Mint</a>(Tara<em>19</em>) or newer{% endtrans %}</li>
|
||||
<li>{% trans %}<a href="#debian">Debian Linux</a> (Buster and newer){% endtrans %}</li>
|
||||
<li>{% trans %}<a href="#ubuntu">Ubuntu</a> (Precise <em>12.04</em> and newer){% endtrans %}</li>
|
||||
<li><a href="#ubuntu">Mint</a></li>
|
||||
<li>{% trans %}<a href="#debian">Debian Linux</a> (Wheezy and newer){% endtrans %}</li>
|
||||
<li><a href="#debian">Knoppix</a></li>
|
||||
</ul>
|
||||
|
||||
{% trans gtitlab='https://i2pgit.org/i2p-hackers/i2p.i2p/' -%}
|
||||
{% trans trac='http://trac.i2p2.de/newticket?component=package/debian&owner=killyourtv&cc=killyourtv@mail.i2p' -%}
|
||||
The I2P packages <em>may</em> work on systems not listed above. Please report any issues
|
||||
with these packages on <a href="{{ gtitlab }}">Gitlab</a> at
|
||||
<a href="{{ gtitlab }}">i2p.i2p</a>.
|
||||
with these packages on <a href="{{ trac }}">Trac</a> at
|
||||
<a href="{{ trac }}">https://trac.i2p2.de</a>.
|
||||
{%- endtrans %}
|
||||
<ul>
|
||||
<li>{% trans %}Option 1: <a href="#ubuntu">Recent versions</a> of Ubuntu and its derivatives (<em>Try this if you're not using Debian)</em>{% endtrans %}</li>
|
||||
@ -29,8 +37,8 @@ with these packages on <a href="{{ gtitlab }}">Gitlab</a> at
|
||||
{% trans %}Open a terminal and enter:{% endtrans %}<br />
|
||||
<code> sudo apt-add-repository ppa:i2p-maintainers/i2p</code><br />
|
||||
{% trans -%}
|
||||
This command will add the PPA to <code>/etc/apt/sources.list.d</code> and fetch
|
||||
the gpg key that the repository has been signed with. The GPG key ensures
|
||||
This command will add the PPA to /etc/apt/sources.list.d and fetch the
|
||||
gpg key that the repository has been signed with. The GPG key ensures
|
||||
that the packages have not been tampered with since being built.
|
||||
{%- endtrans %}
|
||||
</li>
|
||||
@ -47,35 +55,27 @@ was added with the earlier command.
|
||||
<code> sudo apt-get install i2p</code></li>
|
||||
</ol>
|
||||
|
||||
<h5>{{ _('Adding the PPA Using the Software Center') }}</h5>
|
||||
<h5>{{ _('Adding the PPA Using Synaptic') }}</h5>
|
||||
<ol>
|
||||
<li>
|
||||
{% trans -%}Open "Software and Updates" via the applications menu.
|
||||
{% trans -%}
|
||||
Open Synaptic (System -> Administration -> Synaptic Package Manager).
|
||||
{%- endtrans %}
|
||||
<img src="/_static/images/download/ubuntu/software-center-menu.png"></img>
|
||||
</li>
|
||||
<li>
|
||||
{% trans -%}Select the "Other Software" tab and click the "Add" button at the
|
||||
bottom to configure the PPA.
|
||||
{% trans -%}
|
||||
Once Synaptic opens, select <em>Repositories</em> from the <em>Settings</em> menu.
|
||||
{%- endtrans %}
|
||||
<img src="/_static/images/download/ubuntu/software-center-addother.png"></img>
|
||||
</li>
|
||||
<li>
|
||||
{% trans -%}Add the PPA by pasting the URL: <code>ppa:i2p-maintainers/i2p</code>
|
||||
into the PPA dialog.
|
||||
{% trans -%}
|
||||
Click the <em>Other Sources</em> tab and click <em>Add</em>. Paste <code>ppa:i2p-maintainers/i2p</code> into the APT-line field and click <em>Add Source</em>. Click the <em>Close</em> button then <em>Reload</em>.
|
||||
{%- endtrans %}
|
||||
<img src="/_static/images/download/ubuntu/software-center-ppatool.png"></img>
|
||||
</li>
|
||||
<li>
|
||||
{% trans -%}Download the repository information with the "Reload" button.
|
||||
{% trans -%}
|
||||
In the Quick Filter box, type in <code>i2p</code> and press enter. When <code>i2p</code> is returned in the results list, right click <code>i2p</code> and select <em>Mark for Installation</em>. After doing so you may see a <em>Mark additional required changes?</em> popup. If so, click <em>Mark</em> then <em>Apply</em>.
|
||||
{%- endtrans %}
|
||||
<img src="/_static/images/download/ubuntu/software-center-reload.png"></img>
|
||||
</li>
|
||||
<li>
|
||||
{% trans -%}Install the I2P software using the "Software" tool from the
|
||||
applications menu.
|
||||
{%- endtrans %}
|
||||
<img src="/_static/images/download/ubuntu/software-center-software.png"></img>
|
||||
</li>
|
||||
</ol>
|
||||
|
||||
@ -92,110 +92,100 @@ part of <a href="#Post-install_work">starting I2P</a> and configuring it for you
|
||||
Note: The steps below should be performed with root access (i.e., switching
|
||||
user to root with <code>su</code> or by prefixing each command with <code>sudo</code>).
|
||||
{%- endtrans %}</p>
|
||||
<ol>,
|
||||
<li>{% trans -%}Ensure that <code>apt-transport-https</code>, <code>curl</code>, <code>lsb-release</code> are installed.{%- endtrans %}
|
||||
<ol>
|
||||
<li>{% trans -%}Ensure that <code>apt-transport-https</code> and <code>curl</code> are installed.{%- endtrans %}
|
||||
<pre>
|
||||
<code>
|
||||
sudo apt-get update
|
||||
sudo apt-get install apt-transport-https lsb-release curl</code>
|
||||
sudo apt-get install apt-transport-https curl</code>
|
||||
</pre>
|
||||
</li>
|
||||
<li>{% trans file='/etc/apt/sources.list.d/i2p.list',file2='/etc/debian_version' %}
|
||||
Check which version of Debian you are using on this page at the <a href="https://wiki.debian.org/LTS/" target="_blank">Debian wiki</a>
|
||||
and verify with <code>{{ file2 }}</code> on your system.
|
||||
Then, for Debian Bullseye or newer distributions run the following command to create <code>{{ file }}</code>.{% endtrans %}<br>
|
||||
<pre>
|
||||
<code>
|
||||
# Use this command on Debian Bullseye or newer only.
|
||||
echo "deb [signed-by=/usr/share/keyrings/i2p-archive-keyring.gpg] https://deb.i2p2.de/ $(lsb_release -sc) main" \
|
||||
| sudo tee /etc/apt/sources.list.d/i2p.list
|
||||
</code>
|
||||
</pre>
|
||||
{% trans -%}If you're using a downstream variant of Debian like LMDE or Kali Linux, the following command fill find the correct version for your distribution:{%- endtrans %}
|
||||
<pre>
|
||||
<code>
|
||||
# Use this command on Debian Bullseye or newer only.
|
||||
echo "deb [signed-by=/usr/share/keyrings/i2p-archive-keyring.gpg] https://deb.i2p2.de/ $(dpkg --status tzdata | grep Provides | cut -f2 -d'-') main" \
|
||||
| sudo tee /etc/apt/sources.list.d/i2p.list
|
||||
</code>
|
||||
</pre>
|
||||
{% trans -%}If you are using Debian Buster or older official Debian distributons, use the following command instead:{%- endtrans %}
|
||||
<pre>
|
||||
<code>
|
||||
# Use this command on Debian Buster or older only.
|
||||
echo "deb https://deb.i2p2.de/ $(lsb_release -sc) main" \
|
||||
| sudo tee /etc/apt/sources.list.d/i2p.list
|
||||
</code>
|
||||
</pre>
|
||||
{% trans -%}If you're using a downstream variant of Debian like LMDE or Kali Linux, the following command fill find the correct version for your distribution:{%- endtrans %}
|
||||
<pre>
|
||||
<code>
|
||||
# Use this command on Debian Buster or older only.
|
||||
echo "deb https://deb.i2p2.de/ $(dpkg --status tzdata | grep Provides | cut -f2 -d'-') main" \
|
||||
| sudo tee /etc/apt/sources.list.d/i2p.list
|
||||
</code>
|
||||
</pre>
|
||||
Then, add lines like the following to <code>{{ file }}</code>.{% endtrans %}<br>
|
||||
<br />
|
||||
For Buster (stable):<br />
|
||||
<pre>
|
||||
<code>deb https://deb.i2p2.de/ buster main
|
||||
deb-src https://deb.i2p2.de/ buster main</code>
|
||||
</pre>
|
||||
|
||||
<br />
|
||||
For Stretch (oldstable):<br />
|
||||
<pre>
|
||||
<code>deb https://deb.i2p2.de/ stretch main
|
||||
deb-src https://deb.i2p2.de/ stretch main</code>
|
||||
</pre>
|
||||
|
||||
<br />
|
||||
For Jessie (oldoldstable):<br />
|
||||
<pre>
|
||||
<code>deb https://deb.i2p2.de/ jessie main
|
||||
deb-src https://deb.i2p2.de/ jessie main</code>
|
||||
</pre>
|
||||
|
||||
<br />
|
||||
For Wheezy (obsolete):<br>
|
||||
<pre>
|
||||
<code>deb https://deb.i2p2.de/ wheezy main
|
||||
deb-src https://deb.i2p2.de/ wheezy main</code>
|
||||
</pre>
|
||||
<br />
|
||||
|
||||
{% trans -%}Note: If you are running Debian Sid (testing), then you can install I2P directly from Debian's main repository{%- endtrans %}:
|
||||
<pre>
|
||||
<code>sudo apt-get install i2p</code>
|
||||
</pre>
|
||||
|
||||
</li>
|
||||
|
||||
<li>{% trans repokey=url_for('static', filename='i2p-debian-repo.key.gpg') -%}
|
||||
Download <a href="{{ repokey }}">the key used to sign the repository</a>:{%- endtrans %}
|
||||
<pre>
|
||||
<code>
|
||||
curl -o i2p-archive-keyring.gpg https://geti2p.net/_static/i2p-archive-keyring.gpg</code>
|
||||
</pre>
|
||||
<li>{% trans repokey=url_for('static', filename='i2p-debian-repo.key.asc') -%}
|
||||
Download <a href="{{ repokey }}">the key used to sign the repository</a>:{%- endtrans %}
|
||||
<pre>
|
||||
<code>
|
||||
curl -o i2p-debian-repo.key.asc https://geti2p.net/_static/i2p-debian-repo.key.asc</code>
|
||||
</pre>
|
||||
</li>
|
||||
|
||||
<br />
|
||||
|
||||
<li>{% trans -%}Display the key fingerprint.{%- endtrans %}
|
||||
<pre>
|
||||
<code>
|
||||
gpg --keyid-format long --import --import-options show-only --with-fingerprint i2p-archive-keyring.gpg
|
||||
</code>
|
||||
</pre>
|
||||
{% trans -%}Verify that this key fingerprint matches the output:{%- endtrans %}
|
||||
<pre>
|
||||
<code>
|
||||
7840 E761 0F28 B904 7535 49D7 67EC E560 5BCF 1346</code>
|
||||
</pre>
|
||||
</li>
|
||||
|
||||
<br />
|
||||
|
||||
<li>{% trans -%}Copy the keyring to the keyrings directory:{%- endtrans %}
|
||||
<pre>
|
||||
<code>
|
||||
sudo cp ~/i2p-archive-keyring.gpg /usr/share/keyrings</code>
|
||||
</pre>
|
||||
If you are using a distribution older than Debian Buster, you will also need
|
||||
to symlink that key to <code>/etc/apt/trusted.gpg.d</code>.
|
||||
<pre>
|
||||
<code>
|
||||
sudo ln -sf /usr/share/keyrings/i2p-archive-keyring.gpg /etc/apt/trusted.gpg.d/i2p-archive-keyring.gpg</code>
|
||||
</pre>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
{% trans %}Notify your package manager of the new repository by entering:{% endtrans %}<br />
|
||||
{% trans -%}Check the fingerprint and owner of the key without importing anything{%- endtrans %}:<br />
|
||||
<pre>
|
||||
<code>
|
||||
gpg -n --import --import-options import-show i2p-debian-repo.key.asc</code>
|
||||
</pre>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
{% trans -%} Add the key to APT's keyring{%- endtrans %}:<br />
|
||||
<pre>
|
||||
<code>
|
||||
sudo apt-key add i2p-debian-repo.key.asc</code>
|
||||
</pre>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
{% trans %}Notify your package manager of the new repository by entering{% endtrans %}<br />
|
||||
<pre>
|
||||
<code>
|
||||
sudo apt-get update</code>
|
||||
</pre>{% trans -%}This command will retrieve the latest list of software
|
||||
from every repository enabled on your system, including the I2P repository
|
||||
added in step 1.{%- endtrans %}
|
||||
</li>
|
||||
|
||||
<br />
|
||||
|
||||
<li>{% trans -%}You are now ready to install I2P! Installing the <code>i2p-keyring</code>
|
||||
package will ensure that you receive updates to the repository's GPG key.
|
||||
{%- endtrans %}<br />
|
||||
<pre>
|
||||
</pre>
|
||||
{% trans -%}
|
||||
This command will retrieve the latest list of software from every
|
||||
repository enabled on your system, including the I2P repository added in step
|
||||
1.
|
||||
{%- endtrans %}
|
||||
</li><br />
|
||||
<li>{% trans -%}
|
||||
You are now ready to install I2P! Installing the <code>i2p-keyring</code>
|
||||
package will ensure that you receive updates to the repository's GPG key.
|
||||
{%- endtrans %}<br />
|
||||
<pre>
|
||||
<code>
|
||||
sudo apt-get install i2p i2p-keyring</code>
|
||||
</pre>
|
||||
</li>
|
||||
</pre></li>
|
||||
</ol>
|
||||
<p>
|
||||
{% trans -%}
|
||||
|
@ -4,7 +4,7 @@
|
||||
{% block content %}
|
||||
<h1 id="i2p-in-docker">{% trans -%}Installing I2P in Docker{%- endtrans %}</h1>
|
||||
<h3 id="quick-start">{% trans -%}Very quick start{%- endtrans %}</h3>
|
||||
<p>{% trans -%}If you just want to give I2P a quick try or are using it in a home network, follow these steps{%- endtrans %}:</p>
|
||||
<p>{% trans -%}If you just want to give I2P a quick try, follow these steps{%- endtrans %}:</p>
|
||||
<ol>
|
||||
<li>{% trans -%}Create two directories "i2pconfig" and "i2ptorrents"{%- endtrans %}</li>
|
||||
<li>{% trans -%}Copy the following text and save it in a file "docker-compose.yml".{%- endtrans %}</li>
|
||||
@ -21,7 +21,7 @@ services:
|
||||
<li>{% trans -%}Execute "docker-compose up"{%- endtrans %}</li>
|
||||
<li>{% trans -%}Start a browser and go to http://127.0.0.1:7657 to complete the setup wizard.{%- endtrans %}</li>
|
||||
</ol>
|
||||
<p>{% trans -%}Note that this quick-start approach is not recommended for production deployments on remote servers. Please read the rest of this document for more information.{%- endtrans %}</p>
|
||||
<p>{% trans -%}<p>Note that this quick-start approach is not suitable for production use. If you want to use I2P in production please read all the instructions on this page.{%- endtrans %}</p>
|
||||
<h3 id="building-an-image">{% trans -%}Building an image{%- endtrans %}</h3>
|
||||
<p>{% trans -%}There is an i2P image available over at <a href="https://hub.docker.com">DockerHub</a>. If you do not want to use that one, you can build one yourself:{%- endtrans %}</p>
|
||||
<pre><code>docker build -t i2p .</code></pre>
|
||||
@ -36,7 +36,6 @@ services:
|
||||
<thead>
|
||||
<tr class="header">
|
||||
<th>{% trans -%}Port{%- endtrans %}</th>
|
||||
<th>{% trans -%}Interface{%- endtrans %}</th>
|
||||
<th>{% trans -%}Description{%- endtrans %}</th>
|
||||
<th>{% trans -%}TCP/UDP{%- endtrans %}</th>
|
||||
</tr>
|
||||
@ -44,81 +43,57 @@ services:
|
||||
<tbody>
|
||||
<tr class="odd">
|
||||
<td>4444</td>
|
||||
<td>127.0.0.1</td>
|
||||
<td>{% trans -%}HTTP Proxy{%- endtrans %}</td>
|
||||
<td>{% trans -%}TCP{%- endtrans %}</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td>4445</td>
|
||||
<td>127.0.0.1</td>
|
||||
<td>{% trans -%}HTTPS Proxy{%- endtrans %}</td>
|
||||
<td>{% trans -%}TCP{%- endtrans %}</td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td>6668</td>
|
||||
<td>127.0.0.1</td>
|
||||
<td>{% trans -%}IRC Proxy{%- endtrans %}</td>
|
||||
<td>{% trans -%}TCP{%- endtrans %}</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td>7654</td>
|
||||
<td>127.0.0.1</td>
|
||||
<td>{% trans -%}I2CP Protocol{%- endtrans %}</td>
|
||||
<td>{% trans -%}TCP{%- endtrans %}</td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td>7656</td>
|
||||
<td>127.0.0.1</td>
|
||||
<td>{% trans -%}SAM Bridge TCP{%- endtrans %}</td>
|
||||
<td>{% trans -%}TCP{%- endtrans %}</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td>7657</td>
|
||||
<td>127.0.0.1</td>
|
||||
<td>{% trans -%}Router console{%- endtrans %}</td>
|
||||
<td>{% trans -%}TCP{%- endtrans %}</td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td>7658</td>
|
||||
<td>127.0.0.1</td>
|
||||
<td>{% trans -%}I2P Site{%- endtrans %}</td>
|
||||
<td>{% trans -%}TCP{%- endtrans %}</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td>7659</td>
|
||||
<td>127.0.0.1</td>
|
||||
<td>{% trans -%}SMTP Proxy{%- endtrans %}</td>
|
||||
<td>{% trans -%}TCP{%- endtrans %}</td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td>7660</td>
|
||||
<td>127.0.0.1</td>
|
||||
<td>{% trans -%}POP3 Proxy{%- endtrans %}</td>
|
||||
<td>{% trans -%}POP Proxy{%- endtrans %}</td>
|
||||
<td>{% trans -%}TCP{%- endtrans %}</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td>7652</td>
|
||||
<td>{% trans -%}LAN interface{%- endtrans %}</td>
|
||||
<td>{% trans -%}UPnP{%- endtrans %}</td>
|
||||
<td>{% trans -%}TCP{%- endtrans %}</td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td>7653</td>
|
||||
<td>{% trans -%}LAN interface{%- endtrans %}</td>
|
||||
<td>{% trans -%}UPnP{%- endtrans %}</td>
|
||||
<td>{% trans -%}UDP{%- endtrans %}</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td>12345</td>
|
||||
<td>0.0.0.0</td>
|
||||
<td>{% trans -%}I2NP Protocol{%- endtrans %}</td>
|
||||
<td>{% trans -%}TCP and UDP{%- endtrans %}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p>{% trans -%}You probably want at least the Router Console (7657) and the HTTP Proxy (4444). If you want I2P to be able to receive incoming connections from the internet, and hence not think it’s firewalled, publish the I2NP Protocol port (12345) - but make sure you publish to a different random port, otherwise others may be able to guess you’re running I2P in a Docker image.{%- endtrans %}</p>
|
||||
<h4 id="example">{% trans -%}Networking{%- endtrans %}</h4>
|
||||
<p>{% trans -%}A best-practices guide for cloud deployments is beyond the scope of this document, but in general you should try to minimize the number of published ports, while exposing only the I2NP ports to the internet. That means that the services in the list above which are bound to 127.0.0.1 (which include the router console) will need to be accessed via other methods like ssh tunneling or be manually configured to bind to a different interface.{%- endtrans %}</p>
|
||||
<h4 id="example">{% trans -%}Example{%- endtrans %}</h4>
|
||||
<p>{% trans -%}Here is an example container that mounts <code>i2phome</code> as home directory, <code>i2ptorrents</code> for torrents, and opens HTTP Proxy, IRC, Router Console and I2NP Protocols. It also limits the memory available to the JVM to 256MB.{%- endtrans %}</p>
|
||||
<pre><code>docker run \
|
||||
|
@ -56,7 +56,7 @@ special configuration. You don't even need to close existing Firefox windows.
|
||||
{%- set name = 'Windows' -%}
|
||||
{%- set icon = 'images/download/windows.png' -%}
|
||||
{%- set filename = 'I2P-Profile-Installer-%s-signed.exe' -%}
|
||||
{%- set hash = '0012fd31a0bbfca36c820055de00682365d7955d53b11e79432fb2b2ea05432c' -%}
|
||||
{%- set hash = 'eadb338a5895f73e6ed4985a9f7dfdac722f74c9bcdd0bd35957e7dcd5759a3a' -%}
|
||||
|
||||
{% call package_outer('windows', name, icon) %}
|
||||
<div class = "file">
|
||||
|
@ -1,96 +1,203 @@
|
||||
{% extends "global/layout.html" %} {%- from "downloads/macros" import package, package_outer with context -%} {% set release_signer = 'zzz' %} {% block title %}{{ _('Download') }}{% endblock %} {% block content_nav %}
|
||||
{% extends "global/layout.html" %}
|
||||
{%- from "downloads/macros" import package, package_outer with context -%}
|
||||
|
||||
{% set release_signer = 'zzz' %}
|
||||
|
||||
{% block title %}{{ _('Download') }}{% endblock %}
|
||||
{% block content_nav %}
|
||||
<script type="text/javascript" src="/_static/site.js"></script>
|
||||
<ul>
|
||||
<li><a href="#windows">Windows</a></li>
|
||||
<li><a href="#mac">Mac OS X</a></li>
|
||||
<li><a href="#unix">GNU/Linux / BSD / Solaris</a></li>
|
||||
<li><a href="#deb">Debian / Ubuntu</a></li>
|
||||
<li><a href="#android">Android</a></li>
|
||||
<li><a href="#source">{{ _('Source package') }}</a></li>
|
||||
<li><a href="#auto">{{ _('Automatic updates') }}</a></li>
|
||||
<li><a href="#update-file">{{ _('Manual updates') }}</a></li>
|
||||
<li><a href="#windows">Windows</a>
|
||||
<li><a href="#mac">Mac OS X</a>
|
||||
<li><a href="#unix">GNU/Linux / BSD / Solaris</a>
|
||||
<li><a href="#deb">Debian / Ubuntu</a>
|
||||
<li><a href="#android">Android</a>
|
||||
<li><a href="#source">{{ _('Source package') }}</a>
|
||||
<li><a href="#auto">{{ _('Automatic updates') }}</a>
|
||||
<li><a href="#update-file">{{ _('Manual updates') }}</a>
|
||||
</ul>
|
||||
{% endblock %} {% block content %}
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<!--<h3>{{ _('Lab') }}</h3>
|
||||
{% trans lab='/lab' %}
|
||||
If you would like to try the latest experimental I2P projects, visit the <a href = "{{ lab }}">I2P Lab</a>
|
||||
{% endtrans -%}-->
|
||||
<h3>{{ _('Getting Started') }}</h3>
|
||||
<h4>{% trans %}Basic Steps{% endtrans %}</h4>
|
||||
<p>{% trans %}For most platforms and systems, setting I2P installed and running will
|
||||
consist of up to three steps.{% endtrans %}</p>
|
||||
<ul>
|
||||
<li><strong>{% trans %}Install Java: {% endtrans %}</strong>{% trans java='https://java.com/download/',
|
||||
openjdk='http://openjdk.java.net/install/',
|
||||
icedtea='http://icedtea.classpath.org/wiki/Main_Page',
|
||||
arm8='https://openjdk.java.net/install/',
|
||||
ibmsdk7='http://www.ibm.com/developerworks/java/jdk/linux/download.html',
|
||||
detectjre='https://java.com/en/download/installed.jsp?detect=jre&try=1' %} I2P is written in Java and requires
|
||||
a Java system to be installed to run. In addition to the I2P download, you need to install Java if you do not have it
|
||||
already installed. I2P requires Java Runtime Version 7 or higher.
|
||||
(<a href="{{ java }}">Oracle</a>,
|
||||
<a href="{{ openjdk }}">OpenJDK</a>, or
|
||||
<a href="{{ icedtea }}">IcedTea</a>
|
||||
Java Version 7 or 8 recommended,
|
||||
except Raspberry Pi: <a href="{{ arm8 }}">OpenJDK 9 for ARM</a>,
|
||||
PowerPC: <a href="{{ ibmsdk7 }}">IBM Java SE 7 or 8</a>)
|
||||
<br />
|
||||
<a href="{{ detectjre }}">Determine your installed Java version here</a>
|
||||
or type <tt>java -version</tt> at your command prompt.
|
||||
Only two platforms do not require Java to be installed before I2P is installed, those platforms are:{% endtrans %}</li>
|
||||
<ul>
|
||||
<li><strong>{% trans %}Android: {% endtrans %}</strong>{% trans %}Android comes with a Java virtual machine
|
||||
as part of the platform, which I2P for Android uses. Therefore it is not necessary to install Java to use
|
||||
I2P for Android.{% endtrans %}</li>
|
||||
<li><strong>{% trans %}Debian and Ubuntu: {% endtrans %}</strong>{% trans %}On Debian and Ubuntu when using
|
||||
a .deb package to install, the system will automatically install and configure a Java environment for you.{% endtrans %}</li>
|
||||
</ul>
|
||||
<li><strong>{% trans %}Install I2P: {% endtrans %}</strong>{% trans %}Once you have Java installed, you should
|
||||
run the I2P installer for your platform. This step applies to all systems.{% endtrans %}</li>
|
||||
<li><strong>{% trans %}Install/Configure a Browser(Optional): {% endtrans %}</strong>{% trans %}Finally, you'll need to
|
||||
configure applications to use I2P. Many applications can use I2P, but the first application most people configure is a Web
|
||||
Browser for browsing I2P sites. Detailed instructions are available on the{% endtrans %}
|
||||
<a href="{{ site_url() }}about/browser-config">{% trans %}Browser Page{% endtrans %}</a>.</li>
|
||||
</ul><p>
|
||||
{% trans -%}
|
||||
Windows: Java 8 is recommended. Java 9 or higher may not work.
|
||||
{%- endtrans %}
|
||||
</p>
|
||||
|
||||
|
||||
|
||||
<h3>{{ _('Release Notes') }}</h3>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="{{ site_url() }}blog/category/release">{{ _('Release Notes') }}</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://raw.githubusercontent.com/i2p/i2p.i2p/master/history.txt">{{ _('Change Log') }}</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://raw.githubusercontent.com/i2p/i2p.i2p/master/debian/changelog">{{ _('Debian Change Log') }}</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://raw.githubusercontent.com/i2p/i2p.android.base/master/CHANGELOG">{{ _('Android Change Log') }}</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul><li>
|
||||
<a href="{{ site_url() }}blog/category/release">{{ _('Release Notes') }}</a>
|
||||
</li><li>
|
||||
<a href="https://raw.githubusercontent.com/i2p/i2p.i2p/master/history.txt">{{ _('Change Log') }}</a>
|
||||
</li><li>
|
||||
<a href="https://raw.githubusercontent.com/i2p/i2p.i2p/master/debian/changelog">{{ _('Debian Change Log') }}</a>
|
||||
</li><li>
|
||||
<a href="https://raw.githubusercontent.com/i2p/i2p.android.base/master/CHANGELOG">{{ _('Android Change Log') }}</a>
|
||||
</li></ul>
|
||||
|
||||
<h3>{{ _('Pick your I2P Bundle') }}</h3>
|
||||
|
||||
<p>
|
||||
When you download the I2P software bundle, you get everything you need to connect
|
||||
and start participating in the I2P network and community. It even includes basic
|
||||
applications for every user, like e-mail, bittorrent, and a basic I2P Site for
|
||||
you to personalize and share.
|
||||
</p>
|
||||
|
||||
<p>After you've installed, a set up wizard will help you configure a few
|
||||
important things like how much bandwidth you would like to share while your
|
||||
router begins to make connections to the network. After the set up wizard is
|
||||
complete, you will be directed to the console home page where you can access
|
||||
the rest of the applications or configure, monitor, or troubleshoot your
|
||||
I2P connections.</p>
|
||||
|
||||
<div class="downloadlist">
|
||||
|
||||
<h5>{%- trans %}I2P for Windows{%- endtrans %}</h5>
|
||||
{% call package('windows') %}
|
||||
<p>{% trans java='https://java.com/download' -%}The default I2P installer requires Java to be installed. You can obtain it from <a href="{{java}}">Oracle</a> or from your choice of Java distribution. After installing Java, download the file and double-click
|
||||
to run it. {%- endtrans %}</p>
|
||||
<h3>{% trans %}Easy Install Bundle For Windows (Beta){% endtrans %}</h3>
|
||||
<p>{% trans -%}
|
||||
After installing Java, download the file and double-click to run it.
|
||||
{%- endtrans %}</p>
|
||||
<h3>{% trans %}Easy-Install Bundle (Beta){% endtrans %}</h3>
|
||||
<div class="file">
|
||||
<p>{% trans %}It is now possible to install all I2P components using a single package (<strong>No Java required</strong>). To try out the new installer, click below. This bundle can also be used to configure a Firefox Profile. It will not interfere
|
||||
with an existing I2P installation if one exists.{% endtrans %}</p>
|
||||
<a class="default" href="/nsis">{% trans %}I2P Easy Install Bundle For Windows (Beta){% endtrans %}</a>
|
||||
<p>{% trans %}It's now possible to install all I2P components using
|
||||
a single package(<strong>No Java Required</strong>). To try out the new installer, click here.
|
||||
This bundle can also be used to configure a Firefox Profile. It will not
|
||||
interfere with an existing I2P installation if one exists.
|
||||
{% endtrans %}</p>
|
||||
<a class="default" href="/nsis">{% trans %}I2P Easy Install Bundle (Beta){% endtrans %}</a>
|
||||
</div>
|
||||
<h3>{% trans %}Detailed Install Guide{% endtrans %}</h3>
|
||||
<div class="file">
|
||||
<p></p>
|
||||
<a class="default" href="{{ get_url('downloads_windows') }}">{% trans %}Here is a helpful guide to installing I2P for Windows using a separate Java installation and the classic installer.{% endtrans %}</a>
|
||||
<p></p>
|
||||
<a class="default" href="{{ get_url('downloads_windows') }}">{% trans %}Here is a helpful guide to installing I2P for Windows using a separate Java installation and the classic installer.{% endtrans %}</a>
|
||||
</div>
|
||||
{% endcall %}
|
||||
{% endcall %}
|
||||
|
||||
<h5>{%- trans %}I2P Easy Install Bundle for Mac OS X{%- endtrans %}</h5>
|
||||
{% call package_outer('mac', "Mac OS X", 'images/download/mac-osx.png') %}
|
||||
<h3>{% trans %}I2P Easy Install Bundle for Mac OS X{% endtrans %}</h3>
|
||||
<p>{% trans i2pversion=ver() -%}The I2P Easy Install Bundle for Mac OS X is packaged using OSX's standard ".dmg" package type, which allows it to use Apple's built-in tools to securely, reliably, and easily install the package. It does not require Java to be installed.
|
||||
{%- endtrans %}</p>
|
||||
<div class="file">
|
||||
<a class="default" href="{{ get_url('downloads_mac') }}">{% trans %}I2P Easy Install Bundle for Mac OS X{% endtrans %}</a>
|
||||
</div>
|
||||
{% endcall %}
|
||||
|
||||
<h5>{%- trans %}I2P for Linux{%- endtrans %}</h5>
|
||||
{% call package('unix') %}
|
||||
<p>{% trans i2pversion=ver() -%} The most reliable way to launch the installer is from a terminal like this:
|
||||
<code>java -jar i2pinstall_{{ i2pversion }}.jar</code>. This will launch the GUI installer. Depending on how your computer is set up, you may be able to start the installer by double-clicking the "i2pinstall_{{ i2pversion }}.jar" file
|
||||
or right-clicking the file and selecting "Open with Java". Unfortunately, this behaviour is difficult to predict. {%- endtrans %}</p>
|
||||
<h5>{%- trans %}I2P for Mac OSX{%- endtrans %}</h5>
|
||||
{% call package('mac') %}
|
||||
<p>{% trans i2pversion=ver() -%}
|
||||
The most reliable way to launch the installer is from a terminal like this:
|
||||
<code>java -jar i2pinstall_{{ i2pversion }}.jar</code>. This will launch the GUI installer.
|
||||
Depending on how your computer is set up, you may be able to start the
|
||||
installer by double-clicking the "i2pinstall_{{ i2pversion }}.jar" file or
|
||||
right-clicking the file and selecting "Open with Java".
|
||||
Unfortunately, this behaviour is difficult to predict.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<h3>{% trans %}Command line (headless) install:{% endtrans %}</h3>
|
||||
{% trans i2pversion=ver() -%} I2P can also be installed in a terminal environment, which may be especially useful for servers, containers, or certain virtual machines. If you wish to use the installer without a GUI, you can use the command
|
||||
<code>java -jar i2pinstall_{{ i2pversion }}.jar -console</code> to follow the install procedure in your terminal. {%- endtrans %} {% endcall %}
|
||||
{% trans i2pversion=ver() -%}
|
||||
I2P can also be installed in a terminal environment, which may be especially
|
||||
useful for servers, containers, or certain virtual machines. If you wish to
|
||||
use the installer without a GUI, you can use the command
|
||||
<code>java -jar i2pinstall_{{ i2pversion }}.jar -console</code> to follow
|
||||
the install procedure in your terminal.
|
||||
{%- endtrans %}
|
||||
|
||||
<h3>{% trans %}DMG Bundle (Beta){% endtrans %}</h3>
|
||||
If you do not want to use the installer or do not have a Java Runtime Environment available
|
||||
on your Mac, you can try our latest DMG bundle.
|
||||
<div class="file">
|
||||
<a class="default" href="{{ get_url('downloads_mac') }}">{% trans %}Mac OS DMG Bundle (BETA){% endtrans %}</a>
|
||||
</div>
|
||||
{% endcall %}
|
||||
|
||||
<h5>{%- trans %}I2P for Linux{%- endtrans %}</h5>
|
||||
{% call package('unix') %}
|
||||
<p>{% trans i2pversion=ver() -%}
|
||||
The most reliable way to launch the installer is from a terminal like this:
|
||||
<code>java -jar i2pinstall_{{ i2pversion }}.jar</code>. This will launch the GUI installer.
|
||||
Depending on how your computer is set up, you may be able to start the
|
||||
installer by double-clicking the "i2pinstall_{{ i2pversion }}.jar" file or
|
||||
right-clicking the file and selecting "Open with Java".
|
||||
Unfortunately, this behaviour is difficult to predict.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<h3>{% trans %}Command line (headless) install:{% endtrans %}</h3>
|
||||
{% trans i2pversion=ver() -%}
|
||||
I2P can also be installed in a terminal environment, which may be especially
|
||||
useful for servers, containers, or certain virtual machines. If you wish to
|
||||
use the installer without a GUI, you can use the command
|
||||
<code>java -jar i2pinstall_{{ i2pversion }}.jar -console</code> to follow
|
||||
the install procedure in your terminal.
|
||||
{%- endtrans %}
|
||||
{% endcall %}
|
||||
|
||||
<h5>{%- trans %}I2P for Debian and Ubuntu{%- endtrans %}</h5>
|
||||
{% call package_outer('deb', 'Debian / Ubuntu', 'images/download/debian-ubuntu.png') %}
|
||||
{% call package_outer('deb', 'Debian / Ubuntu', 'images/download/debian-ubuntu.png') %}
|
||||
<div class="file">
|
||||
<a class="default" href="{{ get_url('downloads_debian') }}">{% trans %}Packages for Debian & Ubuntu are available.{% endtrans %}</a>
|
||||
<a class="default" href="{{ get_url('downloads_debian') }}">{% trans %}Packages for Debian & Ubuntu are available.{% endtrans %}</a>
|
||||
</div>
|
||||
<p>{% trans -%} I2P is available in the official repositories for Ubuntu Bionic and later, and Debian Buster and Sid. However, Debian Buster and Ubuntu Bionic (LTS) distributions will have older I2P versions. If you are not running Debian Sid or the
|
||||
latest Ubuntu release, use our Debian repo or Launchpad PPA to ensure you're running the latest I2P version. {%- endtrans %}</p>
|
||||
{% endcall %}
|
||||
<p>{% trans -%}
|
||||
I2P is available in the official repositories for Ubuntu Bionic and later, and Debian Buster and Sid.
|
||||
However, Debian Buster and Ubuntu Bionic (LTS) distributions will have older I2P versions.
|
||||
If you are not running Debian Sid or the latest Ubuntu release,
|
||||
use our Debian repo or Launchpad PPA to ensure you're running the latest I2P version.
|
||||
{%- endtrans %}</p>
|
||||
{% endcall %}
|
||||
|
||||
<h5>{%- trans %}I2P for Android{%- endtrans %}</h5>
|
||||
{% call package('android') %}
|
||||
{% call package('android') %}
|
||||
<div class="warning">
|
||||
{% trans -%} Requires Android 4.0 (Ice Cream Sandwich) or higher. If you earlier installed I2P, unfortunately this release fixes some IPC issues which will force you to uninstall your current installation before installing this. {%- endtrans %} {% trans
|
||||
-%} 512 MB RAM minimum; 1 GB recommended. {%- endtrans %} {% trans -%} The releases are not compatible with eachother, as they have different signatures. Uninstall them completely before installing any other version. The apk's from download.i2p2.de
|
||||
are signed by idk. {%- endtrans %}
|
||||
{% trans -%}
|
||||
Requires Android 4.0 (Ice Cream Sandwich) or higher. If you earlier installed
|
||||
I2P, unfortunately this release fixes some IPC issues which will force you to uninstall your current installation before installing this.
|
||||
{%- endtrans %}
|
||||
{% trans -%}
|
||||
512 MB RAM minimum; 1 GB recommended.
|
||||
{%- endtrans %}
|
||||
{% trans -%}
|
||||
The releases are not compatible with eachother, as they have different signatures. Uninstall them
|
||||
completely before installing any other version. The apk's from download.i2p2.de are signed by idk.
|
||||
{%- endtrans %}
|
||||
</div>
|
||||
{% endcall %}
|
||||
{% endcall %}
|
||||
|
||||
<h5>{%- trans %}I2P for Docker{%- endtrans %}</h5>
|
||||
{% call package_outer('docker', 'Docker', 'images/download/docker.png') %}
|
||||
{% call package_outer('docker', 'Docker', 'images/download/docker.png') %}
|
||||
<div class="meta">
|
||||
<!--
|
||||
TODO: next time we do a release and set a git tag, change this to match the
|
||||
@ -99,7 +206,9 @@ If you would like to try the latest experimental I2P projects, visit the <a href
|
||||
<code>1de04ec13945a0505e5b23e2bd22ad9cfaac0da3372c972160b58322b1ca48eb</code>
|
||||
</div>-->
|
||||
</div>
|
||||
<p>{% trans -%}I2P is now available as a Docker package from the Docker Hub. You may retrieve the image by running the 'docker pull' command. {%- endtrans %}
|
||||
<p>{% trans -%}I2P is now available as a Docker package from the Docker Hub.
|
||||
You may retrieve the image by running the 'docker pull' command.
|
||||
{%- endtrans %}
|
||||
</p>
|
||||
<pre><code>{% trans-%}
|
||||
docker pull geti2p/i2p
|
||||
@ -107,50 +216,107 @@ If you would like to try the latest experimental I2P projects, visit the <a href
|
||||
</pre></code>
|
||||
<a href="https://hub.docker.com/r/geti2p/i2p/">Docker Hub</a>
|
||||
<div class="file">
|
||||
<a class="default" href="{{ get_url('downloads_docker') }}">{% trans %}Additional instructions for configuring your container can be found here.{% endtrans %}</a>
|
||||
<a class="default" href="{{ get_url('downloads_docker') }}">{% trans %}Additional instructions for configuring your container can be found here.{% endtrans %}</a>
|
||||
</div>
|
||||
{% endcall %} {% call package('source') %}
|
||||
<p>{% trans monotoneurl=site_url('get-involved/guides/new-developers'), gitrepo='http://'+i2pconv('git.repo.i2p')+'/w/i2p.i2p.git', github='https://github.com/i2p/i2p.i2p', android='https://github.com/i2p/i2p.android.base', i2pversion=ver() -%} Alternately,
|
||||
you can fetch the source via <a href="{{ monotoneurl }}#getting-the-i2p-code">Git</a> from <a href="{{ gitrepo }}">git.repo.i2p</a> or <a href="{{ github }}">Github</a>.
|
||||
<br /> Run <code>(tar xjvf i2psource_{{ i2pversion }}.tar.bz2 ; cd i2p-{{ i2pversion }} ; ant pkg)</code> then either run the GUI installer or headless install as above. {%- endtrans %}</p>
|
||||
<p>{% trans monotoneurl=site_url('get-involved/guides/new-developers'), github='https://github.com/i2p/i2p.android.base' -%} Android source is also in <a href="{{ monotoneurl }}#getting-the-i2p-code">git</a> on <a href="{{ android }}">Github</a>. Android
|
||||
builds require the I2P source. See the documentation in the Android source for additional build requirements and instructions. {%- endtrans %}</p>
|
||||
{% endcall %}
|
||||
{% endcall %}
|
||||
|
||||
{% call package('source') %}
|
||||
<p>{% trans monotoneurl=site_url('get-involved/guides/new-developers'),
|
||||
gitrepo='http://'+i2pconv('git.repo.i2p')+'/w/i2p.i2p.git',
|
||||
github='https://github.com/i2p/i2p.i2p',
|
||||
i2pversion=ver() -%}
|
||||
Alternately, you can fetch the source from <a href="{{ monotoneurl }}#getting-the-i2p-code">monotone</a>
|
||||
or via Git from <a href="{{ gitrepo }}">git.repo.i2p</a> or <a href="{{ github }}">Github</a>.
|
||||
<br />
|
||||
Run <code>(tar xjvf i2psource_{{ i2pversion }}.tar.bz2 ; cd i2p-{{ i2pversion }} ; ant pkg)</code> then either
|
||||
run the GUI installer or headless install as above.
|
||||
{%- endtrans %}</p>
|
||||
<p>{% trans monotoneurl=site_url('get-involved/guides/new-developers'),
|
||||
github='https://github.com/i2p/i2p.android.base' -%}
|
||||
Android source is in <a href="{{ monotoneurl }}#getting-the-i2p-code">git</a>
|
||||
and on <a href="{{ github }}">Github</a>.
|
||||
Android builds require the I2P source.
|
||||
See the documentation in the Android source for additional build requirements and instructions.
|
||||
{%- endtrans %}</p>
|
||||
{% endcall %}
|
||||
|
||||
</div>
|
||||
|
||||
{% trans signer=release_signer, signingkey=site_url('get-involved/develop/release-signing-key') -%} The files are signed by {{ signer }},
|
||||
<a href="{{ signingkey }}">whose key is here</a>. {%- endtrans %} {% trans signer='zlatinb', signingkey=url_for('static', filename='zlatinb.key.crt') -%} The Windows installer is signed by {{ signer }},
|
||||
<a href="{{ signingkey }}">whose key is here</a>. {%- endtrans %} {% trans signer='mikalv (meeh)', signingkey=url_for('static', filename='mikalv.key.crt') -%} The Mac OS X native installer is signed by {{ signer }} with his Apple Developer ID certificate,
|
||||
<a href="{{ signingkey }}">whose key is here</a>. {%- endtrans %}
|
||||
{% trans signer=release_signer,
|
||||
signingkey=site_url('get-involved/develop/release-signing-key') -%}
|
||||
The files are signed by {{ signer }},
|
||||
<a href="{{ signingkey }}">whose key is here</a>.
|
||||
{%- endtrans %}
|
||||
|
||||
{% trans signer='zlatinb',
|
||||
signingkey=url_for('static', filename='zlatinb.key.crt') -%}
|
||||
The Windows installer is signed by {{ signer }},
|
||||
<a href="{{ signingkey }}">whose key is here</a>.
|
||||
{%- endtrans %}
|
||||
|
||||
{% trans signer='mikalv (meeh)',
|
||||
signingkey=url_for('static', filename='mikalv.key.crt') -%}
|
||||
The Mac OS X native installer is signed by {{ signer }} with his Apple Developer ID certificate,
|
||||
<a href="{{ signingkey }}">whose key is here</a>.
|
||||
{%- endtrans %}
|
||||
|
||||
<h3 id="update">{{ _('Updates from earlier releases:') }}</h3>
|
||||
|
||||
<p>{% trans -%} Both automatic and manual upgrades are available for the release. {%- endtrans %}</p>
|
||||
<p>{% trans -%}
|
||||
Both automatic and manual upgrades are available for the release.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
{% call package_outer('auto', _('Automatic updates'), 'images/download/update-auto.png') %}
|
||||
<p>{% trans -%} If you are running 0.7.5 or later, your router should detect the new release. To upgrade simply click the 'Download Update' button on your router console when it appears. {%- endtrans %}</p>
|
||||
<div class="warning">
|
||||
<p>{% trans -%} Since 0.9.23, some releases are signed by str4d, whose signing key has been in the router since 0.9.9. Routers older than 0.9.9 will fail to verify update files signed by str4d, and will need to be manually updated using the process below.
|
||||
{%- endtrans %}</p>
|
||||
</div>
|
||||
{% endcall %} {% call package('update-file') %}
|
||||
<p>{% trans -%}
|
||||
If you are running 0.7.5 or later, your router should detect the
|
||||
new release. To upgrade simply click the 'Download Update' button on your router console
|
||||
when it appears.
|
||||
{%- endtrans %}</p>
|
||||
<div class="warning">
|
||||
<p>{% trans -%}
|
||||
Since 0.9.23, some releases are signed by str4d, whose signing key has been in the router
|
||||
since 0.9.9. Routers older than 0.9.9 will fail to verify update files signed by str4d,
|
||||
and will need to be manually updated using the process below.
|
||||
{%- endtrans %}</p>
|
||||
</div>
|
||||
{% endcall %}
|
||||
|
||||
{% call package('update-file') %}
|
||||
<ol>
|
||||
<li>
|
||||
{% trans -%} Download the file to your I2P installation directory and <b>rename as i2pupdate.zip</b>. (alternately, you can get the source as above and run "ant updater", then copy the resulting i2pupdate.zip to your I2P installation directory).
|
||||
You do NOT need to unzip the file. {%- endtrans %}
|
||||
</li>
|
||||
<li>
|
||||
{% trans -%} Click <a href="http://localhost:7657/configservice.jsp">"Restart"</a> {%- endtrans %}
|
||||
</li>
|
||||
<li>
|
||||
{% trans -%} Grab a cup of coffee and come back in 11 minutes {%- endtrans %}
|
||||
</li>
|
||||
<li>
|
||||
{% trans -%}
|
||||
Download the file to your I2P
|
||||
installation directory and <b>rename as i2pupdate.zip</b>.
|
||||
(alternately, you can get the source as above and run "ant updater", then copy the
|
||||
resulting i2pupdate.zip to your I2P installation directory). You do
|
||||
NOT need to unzip the file.
|
||||
{%- endtrans %}
|
||||
</li>
|
||||
<li>
|
||||
{% trans -%}
|
||||
Click <a href="http://localhost:7657/configservice.jsp">"Restart"</a>
|
||||
{%- endtrans %}
|
||||
</li>
|
||||
<li>
|
||||
{% trans -%}
|
||||
Grab a cup of coffee and come back in 11 minutes
|
||||
{%- endtrans %}
|
||||
</li>
|
||||
</ol>
|
||||
{% endcall %} {% trans signer=release_signer, signingkey=site_url('get-involved/develop/release-signing-key') -%} The file is signed by {{ signer }},
|
||||
<a href="{{ signingkey }}">whose key is here</a>. {%- endtrans %}
|
||||
{% endcall %}
|
||||
|
||||
{% trans signer=release_signer,
|
||||
signingkey=site_url('get-involved/develop/release-signing-key') -%}
|
||||
The file is signed by {{ signer }},
|
||||
<a href="{{ signingkey }}">whose key is here</a>.
|
||||
{%- endtrans %}
|
||||
|
||||
<h3>{{ _('Previous Releases') }}</h3>
|
||||
|
||||
{% trans echelon=i2pconv('echelon.i2p') -%} Previous releases are available on <a href="http://code.google.com/p/i2p/downloads/list?can=1">Google Code</a> and <a href="https://launchpad.net/i2p/trunk">Launchpad</a> and within the I2P network on <a href="http://{{ echelon }}/">{{ echelon }}</a>.
|
||||
{%- endtrans %} {% endblock %}
|
||||
{% trans echelon=i2pconv('echelon.i2p') -%}
|
||||
Previous releases are available on <a href="http://code.google.com/p/i2p/downloads/list?can=1">Google Code</a>
|
||||
and <a href="https://launchpad.net/i2p/trunk">Launchpad</a>
|
||||
and within the I2P network on <a href="http://{{ echelon }}/">{{ echelon }}</a>.
|
||||
{%- endtrans %}
|
||||
|
||||
{% endblock %}
|
||||
|
@ -1,12 +1,12 @@
|
||||
{% extends "global/layout.html" %}
|
||||
{%- from "downloads/macros" import package_outer with context -%}
|
||||
{% block title %}Mac OS X Easy Install Bundle{% endblock %}
|
||||
{% block title %}Mac OS DMG Bundle (BETA){% endblock %}
|
||||
{% block content %}
|
||||
|
||||
<h1>{{ _('Mac OS X Easy Install Bundle') }}</h1>
|
||||
<h1>{{ _('Mac OS DMG Bundle (BETA)') }}</h1>
|
||||
<p>{% trans -%}
|
||||
We are excited to offer you a DMG-based bundle for Mac OS X. It installs and behaves
|
||||
the same way many other Mac OS X applications do and does not require a Java
|
||||
We are excited to offer you a DMG bundle for Mac OS. It installs and behaves
|
||||
the same way many other Mac OS applications do and does not require a Java
|
||||
Runtime Environment to be available.
|
||||
{%- endtrans %}</p>
|
||||
<p>{% trans perf="https://i2pgit.org/i2p-hackers/i2p-jpackage-mac/-/issues/1" -%}
|
||||
@ -40,18 +40,18 @@ it makes I2P easier to install and work with on Apple computers by using tools
|
||||
that are familiar and built-into the operating system.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
{%- set name = 'OSX' -%}
|
||||
{%- set name = 'Windows' -%}
|
||||
{%- set icon = 'images/download/mac-osx.png' -%}
|
||||
{%- set filename = 'I2P-%s.dmg' -%}
|
||||
{%- set hash = '18cb22cfcc3cbe0cec150e89a394d1a35703cb508ed627ef48084b7ba7c90dde' -%}
|
||||
{%- set hash = '07c729c26fc8a31c0e74fe7b4de7be1f8e390d018748322ada35b29de9d' -%}
|
||||
|
||||
{% call package_outer('osx', name, icon) %}
|
||||
<div class = "file">
|
||||
<a class = "default" href="{{ url_for('downloads_redirect', version=mver(), net=def_mirror.net, protocol=def_mirror.protocol, domain=def_mirror.domain, file=mver(filename) )}}">
|
||||
<span class = "name">{{ mver(filename) }}</span><br/>
|
||||
<a class = "default" href="{{ url_for('downloads_redirect', version=ver(), net=def_mirror.net, protocol=def_mirror.protocol, domain=def_mirror.domain, file=ver(filename) )}}">
|
||||
<span class = "name">{{ ver(filename) }}</span><br/>
|
||||
<span class="mirror">{{ _('Mirror:') }} <img src="{{ url_for('static', filename='images/flags/'+def_mirror.country+'.png') }}" /> {{ def_mirror.org }}</span>
|
||||
</a>
|
||||
<a class="mirrors" href="{{ get_url('downloads_select', version=mver(), file=mver(filename)) }}">{{ _('select alternate mirror') }}</a>
|
||||
<a class="mirrors" href="{{ get_url('downloads_select', version=ver(), file=ver(filename)) }}">{{ _('select alternate mirror') }}</a>
|
||||
</div>
|
||||
<div class="meta">
|
||||
<div class="hash">
|
||||
|
@ -1,16 +1,16 @@
|
||||
{% set i2pinstall_windows_hash = '738b7608d7f2c6433dcde8a1cbd7ea025d281e90b45c8695385004625a4c88d1' %}
|
||||
{% set i2pinstall_jar_hash = 'ee49cad06fd73e75ed25eaab342f8167e447b901205ee8593a31b5a599d892af' %}
|
||||
{% set i2psource_hash = '525f2ad3267f130b81296b3dd24102fdcf2adf098d54272da4e1be4abd87df04' %}
|
||||
{% set i2pupdate_hash = '3379fe757eecbf20688ee37685fe52f15ac04fd59e891c6a059a33d519c4ff19' %}
|
||||
{% set i2p_android_hash = '0e6196e601b99455d03bca190f6df10d68ef1337f023edcad9ec8953362795a7' %}
|
||||
{% set i2p_macnative_hash = '18cb22cfcc3cbe0cec150e89a394d1a35703cb508ed627ef48084b7ba7c90dde' %}
|
||||
{% set i2pinstall_windows_hash = '2c9c382852e17e124d77a2bf28f95056599fd458f8de77adcf8e2aaa22b3ef81' %}
|
||||
{% set i2pinstall_jar_hash = '8c843c90870223b4808065761d059a02b168b74daddd1773c36f0a0245e201f9' %}
|
||||
{% set i2psource_hash = '26e5f4d95b1a0766870f97b30e57c9a8e98690279c3bf09198e30effabecc450' %}
|
||||
{% set i2pupdate_hash = 'ea1b4b8095f4d6f5568ce879242e1d5b077de1beb4366f4a75a75cffd559ee7f' %}
|
||||
{% set i2p_android_hash = '6ed5622ea592f4e5d24723a8525147d4bd30b94ada7b2e6613c683df583e826a' %}
|
||||
{% set i2p_macnative_hash = '70447e8a352654afd940cfc6c05f094732de7ab05db7c42c173e49f37259d601' %}
|
||||
|
||||
{% set i2p_windows_subver = '' %}
|
||||
{% set i2p_macosx_launcher_version = '1.8.0' %}
|
||||
{% set i2p_macosx_launcher_version = '0.1.8' %}
|
||||
|
||||
{% set i2p_android_version = '1.8.0' %}
|
||||
{% set i2p_android_version = '1.5.0' %}
|
||||
{% set i2p_android_version_kytv = '0.9.22' %}
|
||||
{% set i2p_android_version_fdroid = '0.9.50' %}
|
||||
{% set i2p_android_version_fdroid = '0.9.47-1' %}
|
||||
|
||||
|
||||
{% macro package_outer(type, name, icon) -%}
|
||||
@ -65,10 +65,10 @@
|
||||
{%- elif type == 'unix' -%}
|
||||
{%- set name = 'Linux / BSD / Solaris' -%}
|
||||
{%- set icon = 'images/download/freebsd-tux.png' -%}
|
||||
{%- set filename = 'i2pinstall_%s.jar' -%}
|
||||
{%- set signame = 'i2pinstall_%s.jar.sig' -%}
|
||||
{%- set hash = i2pinstall_jar_hash -%}
|
||||
{%- endif -%}
|
||||
{%- set filename = 'i2pinstall_%s.jar' -%}
|
||||
{%- set signame = 'i2pinstall_%s.jar.sig' -%}
|
||||
{%- set hash = i2pinstall_jar_hash -%}
|
||||
{%- endif -%}
|
||||
|
||||
{%- set details = caller() -%}
|
||||
@ -77,8 +77,8 @@
|
||||
{%- if type == 'android' %}
|
||||
<!-- do not use url_for here -->
|
||||
<h3>{% trans %}Download I2P for {% endtrans %}{{name}}</h3>
|
||||
<a class="default" href="https://download.i2p2.no/android/current/app.apk">{% trans %}Outside I2P{% endtrans %} ({{ i2p_android_version }})</a>
|
||||
<a class="sig" href="https://download.i2p2.no/android/current/app.apk.asc">sig</a>
|
||||
<a class="default" href="https://download.i2p2.de/android/current/app.apk">{% trans %}Outside I2P{% endtrans %} ({{ i2p_android_version }})</a>
|
||||
<a class="sig" href="https://download.i2p2.de/android/current/app.apk.asc">sig</a>
|
||||
<!-- do not use i2pconv here -->
|
||||
<!--<a class="default" href="http://update.killyourtv.i2p/i2p.apk">{% trans %}Inside I2P{% endtrans %} ({{ i2p_android_version_kytv }})</a> -->
|
||||
<a class="default" href="https://play.google.com/store/apps/details?id=net.i2p.android">Google Play ({{ i2p_android_version }})</a>
|
||||
|
@ -1,7 +1,7 @@
|
||||
{"net": "clearnet", "protocol": "https", "domain": "files.i2p-projekt.de", "path": "/%(version)s/%(file)s", "org": "i2p-projekt", "country": "de"}
|
||||
{"net": "clearnet", "protocol": "https", "domain": "download.i2p2.de", "path": "/releases/%(version)s/%(file)s", "org": "sigterm.no", "country": "no"}
|
||||
#{"net": "clearnet", "protocol": "https", "domain": "launchpad.net", "path": "/i2p/trunk/%(version)s/+download/%(file)s", "org": "Launchpad", "org_url": "https://launchpad.net", "country": "us"}
|
||||
{"net": "i2p", "protocol": "http", "domain": "mgp6yzdxeoqds3wucnbhfrdgpjjyqbiqjdwcfezpul3or7bzm4ga.b32.i2p", "path": "/%(version)s/%(file)s", "org": "idk.i2p"}
|
||||
{"net": "i2p", "protocol": "http", "domain": "mgp6yzdxeoqds3wucnbhfrdgpjjyqbiqjdwcfezpul3or7bzm4ga.b32.i2p", "path": "/releases/%(version)s/%(file)s", "org": "idk.i2p"}
|
||||
{"net": "clearnet", "protocol": "http", "domain": "download.i2p2.de", "path": "/releases/%(version)s/%(file)s", "org": "sigterm.no", "country": "no"}
|
||||
{"net": "clearnet", "protocol": "http", "domain": "download.i2p2.no", "path": "/releases/%(version)s/%(file)s", "org": "sigterm.no", "country": "no"}
|
||||
{"net": "clearnet", "protocol": "https", "domain": "eyedeekay.github.io", "path": "/files/releases/%(version)s/%(file)s", "org": "idk.i2p"}
|
||||
|
@ -4,6 +4,7 @@
|
||||
|
||||
<li><a href="https://reddit.com/r/i2p"><div class="footeritem"><img class="socialfooter" src="/_static/images/social/reddit-alien-brands.png"><span>Reddit</span></div></a></li>
|
||||
<li><a href="https://twitter.com/i2p"><div class="footeritem"><img class="socialfooter" src="/_static/images/social/twitter-brands.png"><span>Twitter</span></div></a></li>
|
||||
<li><a href="https://i2pgit.org/"><div class="footeritem"><img class="socialfooter" src="/_static/images/social/gitlab-brands.png"><span>Gitlab</span></div></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="footermenu" class="second">
|
||||
@ -17,7 +18,7 @@
|
||||
</div>
|
||||
<div id="footermenu" class="third">
|
||||
<ul>
|
||||
<li><a href="https://i2pgit.org/"><div class="footeritem"><img class="socialfooter" src="/_static/images/social/gitlab-brands.png"><span>Gitlab</span></div></a></li>
|
||||
<li><a href="{{ site_url('get-involved/donate') }}"><div class="footeritem"><span>{{ _('Donate') }}</span></div></a></li>
|
||||
<li><a href="{{ site_url('get-involved') }}"><div class="footeritem"><span>{{ _('Get involved!') }}</span></div></a></li>
|
||||
<li><a href="{{ site_url('faq') }}"><div class="footeritem"><span>{{ _('FAQ') }}</span></div></a></li>
|
||||
<!--<li><a href="{{ site_url('get-involved/guides/new-developers') }}"><div class="footeritem"><span>Develop</span></div></a></li>-->
|
||||
|
@ -64,6 +64,7 @@
|
||||
</li>
|
||||
<li><a href="{{ site_url('contact') }}"><div class="menuitem"><span>{{ _('Contact and Team') }}</span></div></a></li>
|
||||
</ul>
|
||||
<li><a href="{{ site_url('get-involved/donate') }}"><div class="menuitem"><span class="donateitem">{{ _('Donate') }}</span></div></a></li>
|
||||
<li class="has-sub"><div class="menuitem"><span>{{ _('Community') }}</span></div>
|
||||
<ul>
|
||||
<li><a href="http://{{ i2pconv('i2pforum.i2p') }}/"><div class="menuitem"><span>{{ _('Forums') }}</span></div></a></li>
|
||||
|
@ -32,19 +32,6 @@
|
||||
# Proposed new sections: application privacy, data anonymization, ...
|
||||
#
|
||||
|
||||
@inproceedings {239068,
|
||||
author = {Nguyen Phong Hoang and Sadie Doreen and Michalis Polychronakis},
|
||||
title = {Measuring I2P Censorship at a Global Scale},
|
||||
booktitle = {9th USENIX Workshop on Free and Open Communications on the Internet (FOCI 19)},
|
||||
year = {2019},
|
||||
address = {Santa Clara, CA},
|
||||
url = {https://www.usenix.org/conference/foci19/presentation/hoang},
|
||||
www_pdf_url = {https://www.usenix.org/system/files/foci19-paper_hoang.pdf},
|
||||
publisher = {USENIX Association},
|
||||
month = {August},
|
||||
www_section = traffic,
|
||||
}
|
||||
|
||||
@inproceedings{orignal2015,
|
||||
title = {A Transparent Implementation Of The Signature In Scheme EdDSA},
|
||||
author = {Losev, V. I.},
|
||||
@ -77,7 +64,7 @@
|
||||
|
||||
@misc{gehl_2018,
|
||||
place={Cambridge, MA},
|
||||
title={Weaving the dark web: Legitimacy on Freenet, Tor, and I2P},
|
||||
title={Weaving the dark web: a trial of legitimacy on FreeNet, Tor, and I2P},
|
||||
howpublished={The MIT Press},
|
||||
author={Gehl, Robert W.},
|
||||
year={2018},
|
||||
|
@ -11,7 +11,7 @@ developed by community members.
|
||||
<h2>i2pd</h2>
|
||||
<p> {% trans i2pd='http://i2pd.website' -%}
|
||||
<a href="{{ i2pd }}">i2pd</a> is a I2P client implementation in C++.
|
||||
As of early 2016, i2pd has become stable enough to be used in
|
||||
As of early 2016, i2pd is became stable enough to be used in
|
||||
production, and since summer 2016 it fully implements all I2P APIs.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
{% extends "global/layout.html" %}
|
||||
{% block title %}{{ _('Presentations on I2P') }}{% endblock %}
|
||||
{% block lastupdated %}2022-03{% endblock %}
|
||||
{% block lastupdated %}2020-11{% endblock %}
|
||||
{% block content %}
|
||||
<p>{% trans papers=site_url('papers') -%}
|
||||
Following are links to presentations, videos, and tutorials about I2P. Links to research papers on I2P are available <a href="{{ papers }}">here</a>.
|
||||
@ -145,6 +145,34 @@ idk
|
||||
<h2>{{ _('Tutorials') }}</h2>
|
||||
<ul>
|
||||
|
||||
<li>{% trans link='http://www.youtube.com/watch?v=5J3nh1DoRMw' -%}
|
||||
<a href="{{ link }}">I2P Windows Tutorial</a>
|
||||
(Youtube Video)
|
||||
This guide will show you how to install I2P in Windows XP.
|
||||
By <a href="http://telecomix.org/">Telecomix</a>
|
||||
{%- endtrans %}</li>
|
||||
|
||||
<li>{% trans link='http://www.youtube.com/watch?v=QeRN2G9VW5E' -%}
|
||||
<a href="{{ link }}">I2P Debian Tutorial</a>
|
||||
(Youtube Video)
|
||||
This will guide you through how to install I2P on a Debian Linux System.
|
||||
By <a href="http://telecomix.org/">Telecomix</a>
|
||||
{%- endtrans %}</li>
|
||||
|
||||
<li>{% trans link='http://www.youtube.com/watch?v=2ylW85vc7SA' -%}
|
||||
<a href="{{ link }}">How to set up anonymous site in I2P</a>
|
||||
(Youtube Video)
|
||||
How to set up an anonymous web site in I2P.
|
||||
By <a href="http://telecomix.org/">Telecomix</a>
|
||||
{%- endtrans %}</li>
|
||||
|
||||
<li>{% trans link='http://www.youtube.com/watch?v=d8mvGZqVgE4' -%}
|
||||
<a href="{{ link }}">I2P Tutorial Mac OS X</a>
|
||||
(Youtube Video)
|
||||
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>
|
||||
{%- endtrans %}</li>
|
||||
|
||||
<li>{% trans link='http://www.youtube.com/watch?v=5jv7tVVJdTQ' -%}
|
||||
<a href="{{ link }}">Felix Atari explains the basic principles of I2P</a>
|
||||
(Youtube Video)
|
||||
@ -152,6 +180,25 @@ Agent Felix Atari of the Telecomix Crypto Munitions Bureau.
|
||||
By <a href="http://telecomix.org/">Telecomix</a>
|
||||
{%- endtrans %}</li>
|
||||
|
||||
<li>{% trans link='http://www.youtube.com/watch?v=WyN_QK-_3GA' -%}
|
||||
<a href="{{ link }}">How to get onto I2P, the anonymous P2P Darknet (Windows Install)</a>
|
||||
(Youtube Video)
|
||||
This tutorial shows how to install and configure software needed to access I2P.
|
||||
{%- endtrans %}</li>
|
||||
|
||||
<li>{% trans link='http://www.youtube.com/watch?v=q4owyd_CaGc' -%}
|
||||
<a href="{{ link }}">How to connect to I2P</a>
|
||||
(Youtube Video)
|
||||
How to install I2P on Ubuntu.
|
||||
{%- endtrans %}</li>
|
||||
|
||||
<li>{% trans link='http://www.irongeek.com/i.php?page=videos/i2p-darknet-software-in-linux' -%}
|
||||
<a href="{{ link }}">Installing the I2P darknet software in Linux</a>
|
||||
(Video)
|
||||
Adrian Crenshaw.
|
||||
January 2011
|
||||
{%- endtrans %}</li>
|
||||
|
||||
<li>{% trans link='http://www.youtube.com/watch?v=NV90TRs_pGE' -%}
|
||||
<a href="{{ link }}">Short garlic routing animation</a>
|
||||
(Youtube Video)
|
||||
@ -236,34 +283,13 @@ Robert Lei, December 31, 2018
|
||||
<li>{% trans mhatta='https://medium.com/@mhatta' -%}
|
||||
<a href="{{ mhatta }}">Articles by I2P contributor Masayuki Hatta on Medium.com</a>
|
||||
2019
|
||||
{% endtrans %}</li>>
|
||||
{% endtrans %}
|
||||
|
||||
<li>{% trans ctrl='https://www.ctrl.blog/entry/proxy-pac-i2p-onion.html' -%}
|
||||
<li>{% trans ctrl='https://medium.com/@mhatta' -%}
|
||||
<a href="{{ ctrl }}">Enabling both .onion and .i2p routing with Proxy Auto-Configuration</a>
|
||||
Daniel Aleksandersen, February 7 2019
|
||||
{%- endtrans %}</li>
|
||||
|
||||
<li>{% trans advent='https://www.heise.de/news/Open-Source-Adventskalender-Die-Darknets-Freenet-und-I2P-6302109.html' -%}
|
||||
<a href="{{ advent }}">Open-Source-Adventskalender: Die Darknets Freenet und I2P</a>
|
||||
Stefan Mey, December 21, 2021
|
||||
{%- endtrans %}</li>
|
||||
|
||||
<li>
|
||||
<a href="https://torrentfreak.com/i2p-the-censorship-resistant-anonymous-p2p-network-is-20-years-old-220306/">I2P: The Censorship Resistant Anonymous P2P Network is 20 Years Old</a>
|
||||
- Interview with Lance James, zlatinb, and zzz -
|
||||
TorrentFreak,
|
||||
March 6, 2022
|
||||
</li>
|
||||
|
||||
<li>
|
||||
Network Privacy via I2P -
|
||||
Interview with idk and Sadie -
|
||||
Opt Out Podcast Season 2 Episode 10
|
||||
(<a href="https://www.buzzsprout.com/1790481/10173995-network-privacy-via-i2p-w-idk-and-sadie.mp3">mp3</a>)
|
||||
(<a href="https://www.youtube.com/watch?v=-VqXfUxVQoA">YouTube Video</a>),
|
||||
March 6, 2022
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<h2>{{ _('Other') }}</h2>
|
||||
|
@ -91,16 +91,6 @@ network.
|
||||
<td valign="top" class="blue">[{{ _('vacant') }}]</td>
|
||||
<td valign="top"><i>{{ _('threat model / crypto expert') }}</i></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top"><b><a href="https://i2pgit.org/">Gitlab</a> admin</b></td>
|
||||
<td valign="top">idk</td>
|
||||
<td valign="top"><i>{{ _('Manage the project gitlab') }}</i></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top"><b><a href="https://i2pgit.org/dashboard/issues">Issue Tracker(Replaces Trac)</a> admin</b></td>
|
||||
<td valign="top">idk</td>
|
||||
<td valign="top"><i>{{ _('Manage the project bug tracker') }}</i></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top"><b><a href="https://trac.i2p2.de/">Trac</a> admin</b></td>
|
||||
<td valign="top">Meeh</td>
|
||||
|
@ -161,17 +161,12 @@ GPG Key fingerprint: <tt>EA27 06D6 14F5 28DB 764B F47E CFCD C461 75E6 694A</tt>
|
||||
<td valign="top"><i>{{ _('threat model / crypto expert') }}</i></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top"><b><a href="https://i2pgit.org/">Gitlab</a> admin</b></td>
|
||||
<td valign="top">idk</td>
|
||||
<td valign="top"><i>{{ _('Manage the project gitlab') }}</i></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top"><b><a href="https://i2pgit.org/dashboard/issues">Issue Tracker(Replaces Trac)</a> admin</b></td>
|
||||
<td valign="top">idk</td>
|
||||
<td valign="top"><b><a href="https://trac.i2p2.de/">Trac</a> admin</b></td>
|
||||
<td valign="top">Meeh</td>
|
||||
<td valign="top"><i>{{ _('Manage the project bug tracker') }}</i></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top"><b><a href="https://trac.i2p2.de/">Trac</a>backup webserver admin</b></td>
|
||||
<td valign="top"><b><a href="https://trac.i2p2.de/">Trac</a> webserver admin</b></td>
|
||||
<td valign="top">Meeh</td>
|
||||
<td valign="top"><i>{{ _('manage the public project webservers') }}</i></td>
|
||||
</tr>
|
||||
|
@ -23,7 +23,7 @@ either protocol may be carried by either transport.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<h2>{% trans %}Application Guide{% endtrans %}</h2>
|
||||
<p>{% trans url='http://'+i2pconv('idk.i2p/javadoc-i2p')+'/net/i2p/client/datagram/package-summary.html',
|
||||
<p>{% trans url='http://'+i2pconv('echelon.i2p/javadoc')+'/net/i2p/client/datagram/package-summary.html',
|
||||
sam= site_url('docs/api/sam'),
|
||||
socks=site_url('docs/api/socks') -%}
|
||||
Applications written in Java may use the
|
||||
@ -70,7 +70,7 @@ Applications may add 'from' and 'to' ports to the I2CP (gzip) header as describe
|
||||
the <a href="{{ i2cp }}#format">I2CP page</a>.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<p>{% trans i2psession='http://'+i2pconv('idk.i2p/javadoc-i2p')+'/net/i2p/client/I2PSession.html' -%}
|
||||
<p>{% trans i2psession='http://'+i2pconv('echelon.i2p/javadoc')+'/net/i2p/client/I2PSession.html' -%}
|
||||
There is no method within the datagram API to specify whether it is non-repliable (raw)
|
||||
or repliable. The application should be designed to expect the appropriate type.
|
||||
The I2CP protocol number or port should be used by the application to
|
||||
@ -88,8 +88,8 @@ PROTO_DATAGRAM = 17
|
||||
PROTO_DATAGRAM_RAW = 18
|
||||
</li></ul>
|
||||
|
||||
<p>{% trans i2psession='http://'+i2pconv('idk.i2p/javadoc-i2p')+'/net/i2p/client/I2PSession.html',
|
||||
i2psessionmuxed='http://'+i2pconv('idk.i2p/javadoc-i2p')+'/net/i2p/client/I2PSessionMuxedImpl.html' -%}
|
||||
<p>{% trans i2psession='http://'+i2pconv('echelon.i2p/javadoc')+'/net/i2p/client/I2PSession.html',
|
||||
i2psessionmuxed='http://'+i2pconv('echelon.i2p/javadoc')+'/net/i2p/client/I2PSessionMuxedImpl.html' -%}
|
||||
The protocols and ports may be set in I2CP's
|
||||
<a href="{{ i2psession }}">I2PSession API</a>,
|
||||
as implemented in
|
||||
|
@ -1,7 +1,6 @@
|
||||
{% extends "global/layout.html" %}
|
||||
{% block title %}{{ _('I2PControl - Remote Control Service') }}{% endblock %}
|
||||
{% block lastupdated %}2022-01{% endblock %}
|
||||
{% block accuratefor %}0.9.52{% endblock %}
|
||||
{% block lastupdated %}February 2018{% endblock %}
|
||||
{% block content %}
|
||||
<p>{% trans itoopie='http://'+i2pconv('itoopie.i2p')+'/' -%}
|
||||
I2P enables a <a href="http://en.wikipedia.org/wiki/JSON-RPC">JSONRPC2</a> interface via the plugin <a href="{{ itoopie }}">I2PControl</a>.
|
||||
@ -118,15 +117,8 @@ Parameters are only provided in a named way (maps).
|
||||
<li>Token – [String] {% trans %}Token used for authenticating the client. Is provided by the server via the 'Authenticate' RPC method.{% endtrans %}</li>
|
||||
</ul>
|
||||
<ul>{{ _('Response:') }}
|
||||
<li>**i2p.router.status – [String] {% trans %}What the status of the router is.{% endtrans %}
|
||||
A free-format, translated string intended for display to the user.
|
||||
May include information such as whether the router is accepting participating tunnels.
|
||||
Content is implementation-dependent.
|
||||
</li>
|
||||
<li>**i2p.router.uptime – [long] {% trans %}What the uptime of the router is in ms.{% endtrans %}
|
||||
Note: i2pd routers prior to version 2.41 returned this value as a string.
|
||||
For compatibility, clients should handle both string and long.
|
||||
</li>
|
||||
<li>**i2p.router.status – [String] {% trans %}What the status of the router is.{% endtrans %}</li>
|
||||
<li>**i2p.router.uptime – [long] {% trans %}What the uptime of the router is in ms.{% endtrans %}</li>
|
||||
<li>**i2p.router.version – [String] {% trans %}What version of I2P the router is running.{% endtrans %}</li>
|
||||
<li>**i2p.router.net.bw.inbound.1s – [double] {% trans %}The 1 second average inbound bandwidth in Bps.{% endtrans %}</li>
|
||||
<li>**i2p.router.net.bw.inbound.15s – [double] {% trans %}The 15 second average inbound bandwidth in Bps.{% endtrans %}</li>
|
||||
@ -153,7 +145,7 @@ Parameters are only provided in a named way (maps).
|
||||
</li>
|
||||
<li>**i2p.router.net.tunnels.participating – [long] {% trans %}How many tunnels on the I2P net are we participating in.{% endtrans %}</li>
|
||||
<li>**i2p.router.netdb.activepeers – [long] {% trans %}How many peers have we communicated with recently.{% endtrans %}</li>
|
||||
<li>**i2p.router.netdb.fastpeers – [long] {% trans %}How many peers are considered 'fast'.{% endtrans %}</li>
|
||||
<li>**i2p.router.netdb.fastpeers &ndasg; [long] {% trans %}How many peers are considered 'fast'.{% endtrans %}</li>
|
||||
<li>**i2p.router.netdb.highcapacitypeers – [long] {% trans %}How many peers are considered 'high capacity'.{% endtrans %}</li>
|
||||
<li>**i2p.router.netdb.isreseeding – [boolean] {% trans %}Is the router reseeding hosts to its NetDB?{% endtrans %}</li>
|
||||
<li>**i2p.router.netdb.knownpeers – [long] {% trans %}How many peers are known to us (listed in our NetDB).{% endtrans %}</li>
|
||||
@ -197,10 +189,6 @@ Parameters are only provided in a named way (maps).
|
||||
<li>Token – [String] {% trans %}Token used for authenticating the client. Is provided by the server via the 'Authenticate' RPC method. If null is submitted, current setting will be returned.{% endtrans %}</li>
|
||||
</ul>
|
||||
<ul>{{ _('Response:') }}
|
||||
<li>
|
||||
Note: i2pd routers prior to version 2.41 returned some of these values as numbers.
|
||||
For compatibility, clients should handle both strings and numbers.
|
||||
</li>
|
||||
<li>**i2p.router.net.ntcp.port – [String] {% trans %}If requested, returns the port used for the TCP transport.{% endtrans %}</li>
|
||||
<li>**i2p.router.net.ntcp.hostname – [String] {% trans %}If requested, returns the hostname used for the TCP transport.{% endtrans %}</li>
|
||||
<li>**i2p.router.net.ntcp.autoip – [String] {% trans %}If requested, returns the method used for automatically detecting ip for the TCP transport.{% endtrans %}</li>
|
||||
|
@ -4,7 +4,7 @@
|
||||
|
||||
<h2>{% trans %}Note{% endtrans %}</h2>
|
||||
|
||||
<p>{% trans streaming=site_url('docs/api/streaming'), api='http://'+i2pconv('idk.i2p/javadoc-i2p')+'/net/i2p/client/streaming/package-summary.html' -%}
|
||||
<p>{% trans streaming=site_url('docs/api/streaming'), api='http://'+i2pconv('echelon.i2p/javadoc')+'/net/i2p/client/streaming/package-summary.html' -%}
|
||||
The ministreaming library has been enhanced and extended by the
|
||||
"full" <a href="{{ streaming }}">streaming library</a>.
|
||||
Ministreaming is deprecated and is incompatible with today's applications.
|
||||
@ -42,7 +42,7 @@ messages sent (or include any application level ACK or SACK), so it must wait
|
||||
on average twice the time it takes to send a message before sending another.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<p>{% trans api='http://'+i2pconv('idk.i2p/javadoc-i2p')+'/net/i2p/client/streaming/package-summary.html',
|
||||
<p>{% trans api='http://'+i2pconv('echelon.i2p/javadoc')+'/net/i2p/client/streaming/package-summary.html',
|
||||
samv3=site_url('docs/api/samv3') -%}
|
||||
Even with those issues, the ministreaming library performs quite well in many
|
||||
situations, and its <a href="{{ api }}">API</a>
|
||||
|
@ -389,7 +389,7 @@ followed by the <a href="{{ site_url('docs/spec/common-structures') }}#type_Priv
|
||||
followed by the <a href="{{ site_url('docs/spec/common-structures') }}#type_SigningPrivateKey">Signing Private Key</a>,
|
||||
which is 884 or more base 64 characters (663 or more bytes in binary),
|
||||
depending on signature type.
|
||||
The binary format is specified in <a href="http://{{ i2pconv('idk.i2p/javadoc-i2p') }}/net/i2p/data/PrivateKeyFile.html">Private Key File</a>.
|
||||
The binary format is specified in <a href="http://{{ i2pconv('echelon.i2p/javadoc') }}/net/i2p/data/PrivateKeyFile.html">Private Key File</a>.
|
||||
|
||||
----------------------------------------------------------------------
|
||||
RESULT values
|
||||
|
@ -446,7 +446,7 @@ followed by the <a href="{{ site_url('docs/spec/common-structures') }}#type_Priv
|
||||
followed by the <a href="{{ site_url('docs/spec/common-structures') }}#type_SigningPrivateKey">Signing Private Key</a>,
|
||||
which is 884 or more base 64 characters (663 or more bytes in binary),
|
||||
depending on signature type.
|
||||
The binary format is specified in <a href="http://{{ i2pconv('idk.i2p/javadoc-i2p') }}/net/i2p/data/PrivateKeyFile.html">Private Key File</a>.
|
||||
The binary format is specified in <a href="http://{{ i2pconv('echelon.i2p/javadoc') }}/net/i2p/data/PrivateKeyFile.html">Private Key File</a>.
|
||||
|
||||
----------------------------------------------------------------------
|
||||
RESULT values
|
||||
|
@ -1,7 +1,7 @@
|
||||
{% extends "global/layout.html" %}
|
||||
{% block title %}SAM V3{% endblock %}
|
||||
{% block lastupdated %}2022-06{% endblock %}
|
||||
{% block accuratefor %}1.8.0{% endblock %}
|
||||
{% block lastupdated %}2021-05{% endblock %}
|
||||
{% block accuratefor %}0.9.50{% endblock %}
|
||||
{% block content %}
|
||||
<p>SAM is a simple client protocol for interacting with I2P.
|
||||
SAM is the recommended protocol for non-Java applications to connect to the I2P network,
|
||||
@ -67,7 +67,7 @@ Deprecated versions:
|
||||
<tr class="odd">
|
||||
<td>sam3</td>
|
||||
<td>Go</td>
|
||||
<td>3.3</td>
|
||||
<td>3.2</td>
|
||||
<td>yes</td>
|
||||
<td>yes</td>
|
||||
<td>yes</td>
|
||||
@ -137,15 +137,6 @@ Deprecated versions:
|
||||
<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>i2p-sam</td>
|
||||
<td>Javascript</td>
|
||||
<td>3.1</td>
|
||||
<td>yes</td>
|
||||
<td>no</td>
|
||||
<td>yes</td>
|
||||
<td><a href="https://codeberg.org/diva.exchange/i2p-sam">https://codeberg.org/diva.exchange/i2p-sam</a></td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td>node-i2p</td>
|
||||
<td>Javascript</td>
|
||||
<td>3.0</td>
|
||||
@ -154,7 +145,7 @@ Deprecated versions:
|
||||
<td>unk</td>
|
||||
<td><a href="https://github.com/redhog/node-i2p">github.com/redhog/node-i2p</a></td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<tr class="even">
|
||||
<td>Jsam</td>
|
||||
<td>Java</td>
|
||||
<td>3.1</td>
|
||||
@ -163,7 +154,7 @@ Deprecated versions:
|
||||
<td>no</td>
|
||||
<td><a href="https://github.com/eyedeekay/Jsam">github.com/eyedeekay/Jsam</a></td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<tr class="odd">
|
||||
<td>i2pdotnet</td>
|
||||
<td>.Net</td>
|
||||
<td>3.0</td>
|
||||
@ -172,7 +163,7 @@ Deprecated versions:
|
||||
<td>unk</td>
|
||||
<td><a href="https://github.com/SamuelFisher/i2pdotnet">github.com/SamuelFisher/i2pdotnet</a></td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<tr class="even">
|
||||
<td>i2p.rb</td>
|
||||
<td>Ruby</td>
|
||||
<td>3.0</td>
|
||||
@ -181,24 +172,6 @@ Deprecated versions:
|
||||
<td>no</td>
|
||||
<td><a href="https://github.com/dryruby/i2p.rb">github.com/dryruby/i2p.rb</a></td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td>solitude</td>
|
||||
<td>Rust</td>
|
||||
<td>3.1</td>
|
||||
<td>WIP</td>
|
||||
<td>WIP</td>
|
||||
<td>WIP</td>
|
||||
<td><a href="https://github.com/syvita/solitude">github.com/syvita/solitude</a></td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td>i2pSAM-Qt</td>
|
||||
<td>C++</td>
|
||||
<td>3.1</td>
|
||||
<td>yes</td>
|
||||
<td>yes</td>
|
||||
<td>yes</td>
|
||||
<td><a href="https://notabug.org/acetone/i2pSAM-Qt">notabug.org/acetone/i2pSAM-Qt</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
@ -542,7 +515,7 @@ followed by the <a href="{{ site_url('docs/spec/common-structures') }}#type_Sign
|
||||
optionally followed by the <a href="{{ site_url('docs/spec/common-structures') }}#struct_OfflineSignature">Offline Signature</a>,
|
||||
which is 663 or more bytes in binary and 884 or more bytes in base 64,
|
||||
depending on signature type.
|
||||
The binary format is specified in <a href="http://{{ i2pconv('idk.i2p/javadoc-i2p') }}/net/i2p/data/PrivateKeyFile.html">Private Key File</a>.
|
||||
The binary format is specified in <a href="http://{{ i2pconv('echelon.i2p/javadoc') }}/net/i2p/data/PrivateKeyFile.html">Private Key File</a>.
|
||||
|
||||
</p><p>
|
||||
If the signing private key is all zeros, the
|
||||
@ -605,7 +578,7 @@ followed by the <a href="{{ site_url('docs/spec/common-structures') }}#type_Sign
|
||||
optionally followed by the <a href="{{ site_url('docs/spec/common-structures') }}#struct_OfflineSignature">Offline Signature</a>,
|
||||
which is 663 or more bytes in binary and 884 or more bytes in base 64,
|
||||
depending on signature type.
|
||||
The binary format is specified in <a href="http://{{ i2pconv('idk.i2p/javadoc-i2p') }}/net/i2p/data/PrivateKeyFile.html">Private Key File</a>.
|
||||
The binary format is specified in <a href="http://{{ i2pconv('echelon.i2p/javadoc') }}/net/i2p/data/PrivateKeyFile.html">Private Key File</a>.
|
||||
|
||||
</p><p>
|
||||
If the SESSION CREATE contained a signing private key of all zeros and
|
||||
@ -931,41 +904,8 @@ soon as the "forwarding" socket is closed.
|
||||
|
||||
|
||||
|
||||
<h3>SAM Datagrams</h3>
|
||||
<p>
|
||||
SAMv3 provides mechanisms to send and receive datagrams over local datagram sockets.
|
||||
Some SAMv3 implementations also support the older v1/v2 way of sending/receiving
|
||||
datagrams over the SAM bridge socket. Both are documented below.
|
||||
</p><p>
|
||||
I2P supports two types of datagrams:
|
||||
</p>
|
||||
<ul><li>
|
||||
"Repliable" datagrams are prefixed with the destination of the sender,
|
||||
and contain the signature of the sender, so the receiver
|
||||
may verify that the sender's destination was not spoofed,
|
||||
and may reply to the datagram.
|
||||
</li><li>
|
||||
"Raw" datagrams do not contain the destination of the sender or a signature.
|
||||
</li></ul>
|
||||
<p>
|
||||
Default I2CP ports are defined for both repliable and raw datagrams.
|
||||
The I2CP port may be changed for raw datagrams.
|
||||
</p><p>
|
||||
A common protocol design pattern is for repliable datagrams to be sent
|
||||
to servers, with some identifier included, and the server to
|
||||
respond with a raw datagram that includes that indentifier,
|
||||
so the response may be correlated with the request.
|
||||
This design pattern eliminates the substantial overhead of repliable datagrams
|
||||
in replies.
|
||||
All choices of I2CP protocols and ports are application-specific,
|
||||
and designers should take these issues into consideration.
|
||||
</p><p>
|
||||
See also the important notes on datagram MTU in the section below.
|
||||
</p>
|
||||
|
||||
|
||||
|
||||
<h4 id="v3dgsend">Sending Repliable or Raw Datagrams</h4>
|
||||
<h3 id="v3dgsend">SAM Datagrams : Sending Repliable or Raw Datagrams</h3>
|
||||
<p>
|
||||
While I2P doesn't inherently contain a FROM address, for ease of use
|
||||
an additional layer is provided as repliable datagrams - unordered
|
||||
@ -1040,7 +980,7 @@ data of the message to the specified destination.
|
||||
For an alternate method of sending repliable and raw datagrams, see <a href="#dgsend">DATAGRAM SEND and RAW SEND</a>.
|
||||
</p>
|
||||
|
||||
<h4>SAM Repliable Datagrams : Receiving a Datagram</h4>
|
||||
<h3>SAM Repliable Datagrams : Receiving a Datagram</h3>
|
||||
<p>
|
||||
Received datagrams are written by SAM on the socket from which the
|
||||
datagram session was opened, if a forwarding PORT is not specified in the SESSION CREATE
|
||||
@ -1071,8 +1011,7 @@ or other fields, merely the data that the sender provided. This
|
||||
continues until the session is closed (by the client dropping the
|
||||
connection).
|
||||
|
||||
|
||||
<h4>Forwarding Raw or Repliable Datagrams</h4>
|
||||
<h3>SAM Datagrams : Forwarding Raw or Repliable Datagrams</h3>
|
||||
<p>
|
||||
When creating a datagram session, the client can ask SAM to forward
|
||||
incoming messages to a specified ip:port. It does so by issuing the
|
||||
@ -1098,7 +1037,7 @@ CREATE command with PORT and HOST options:
|
||||
optionally followed by the <a href="{{ site_url('docs/spec/common-structures') }}#struct_OfflineSignature">Offline Signature</a>,
|
||||
which is 884 or more base 64 characters (663 or more bytes in binary),
|
||||
depending on signature type.
|
||||
The binary format is specified in <a href="http://{{ i2pconv('idk.i2p/javadoc-i2p') }}/net/i2p/data/PrivateKeyFile.html">Private Key File</a>.
|
||||
The binary format is specified in <a href="http://{{ i2pconv('echelon.i2p/javadoc') }}/net/i2p/data/PrivateKeyFile.html">Private Key File</a>.
|
||||
|
||||
</p><p>
|
||||
Offline signatures are only supported for RAW datagrams.
|
||||
@ -1162,7 +1101,7 @@ depending on signature type.
|
||||
</p>
|
||||
|
||||
|
||||
<h4>SAM Anonymous (Raw) Datagrams</h4>
|
||||
<h3>SAM Anonymous (Raw) Datagrams</h3>
|
||||
<p>
|
||||
Squeezing the most out of I2P's bandwidth, SAM allows clients to send
|
||||
and receive anonymous datagrams, leaving authentication and reply
|
||||
@ -1222,30 +1161,7 @@ the forwarded raw datagram will be prepended with a header line as follows:
|
||||
For an alternate method of sending anonymous datagrams, see <a href="#dgsend">RAW SEND</a>.
|
||||
</p>
|
||||
|
||||
|
||||
<h4>V3 Datagram MTU Considerations</h4>
|
||||
<p>
|
||||
I2P Datagrams may be larger than the typical internet MTU of 1500.
|
||||
Locally sent datagrams and forwarded repliable datagrams
|
||||
prefixed with the 516+ byte base64 destination are likely to exceed that MTU.
|
||||
However, localhost MTUs on Linux systems are typically much larger,
|
||||
for example 65536. Localhost MTUs will vary by OS.
|
||||
I2P Datagrams will never be larger than 65536.
|
||||
Datagram size is dependent on the application protocol.
|
||||
</p><p>
|
||||
If the SAM client is local to the SAM server and the system supports
|
||||
a larger MTU, then the datagrams will not be fragmented locally.
|
||||
However, if the SAM client is remote, then IPv4 datagrams would
|
||||
be fragmented and IPv6 datagrams would fail (IPv6 does not support UDP fragmentation).
|
||||
</p><p>
|
||||
Client library and application developers should be aware of these issues
|
||||
and document recommendations to avoid fragmentation and
|
||||
prevent packet loss, especially on remote SAM client-server connections.
|
||||
</p>
|
||||
|
||||
|
||||
|
||||
<h4 id="dgsend">DATAGRAM SEND, RAW SEND (V1/V2 Compatible Datagram Handling)</h4>
|
||||
<h3 id="dgsend">DATAGRAM SEND, RAW SEND (V1/V2 Compatible Datagram Handling)</h3>
|
||||
<p>
|
||||
In SAM V3, the preferred way to send datagrams is via the datagram socket
|
||||
at port 7655 as documented above. However, repliable datagrams may be sent
|
||||
@ -1269,7 +1185,7 @@ sent to the most recently created DATAGRAM- or RAW-style session,
|
||||
as appropriate. Support for the ID parameter may be added in a future release.
|
||||
|
||||
|
||||
<h3 id="primary">SAM PRIMARY Sessions (V3.3 and higher)</h3>
|
||||
<h3 id="primary">PRIMARY Sessions (V3.3 and higher)</h3>
|
||||
|
||||
<p><i>
|
||||
Version 3.3 was introduced in I2P release 0.9.25.
|
||||
@ -1503,7 +1419,7 @@ followed by the <a href="{{ site_url('docs/spec/common-structures') }}#type_Priv
|
||||
followed by the <a href="{{ site_url('docs/spec/common-structures') }}#type_SigningPrivateKey">Signing Private Key</a>,
|
||||
which is 884 or more base 64 characters (663 or more bytes in binary),
|
||||
depending on signature type.
|
||||
The binary format is specified in <a href="http://{{ i2pconv('idk.i2p/javadoc-i2p') }}/net/i2p/data/PrivateKeyFile.html">Private Key File</a>.
|
||||
The binary format is specified in <a href="http://{{ i2pconv('echelon.i2p/javadoc') }}/net/i2p/data/PrivateKeyFile.html">Private Key File</a>.
|
||||
|
||||
</p><p>
|
||||
DEST GENERATE does not require that a session has been created first.
|
||||
@ -1617,14 +1533,7 @@ SAM SESSION CREATE line.
|
||||
</p><p>
|
||||
All sessions may include <a href="{{ site_url('docs/protocol/i2cp') }}#options">I2CP options such as tunnel lengths</a>.
|
||||
STREAM sessions may include <a href="{{ site_url('docs/api/streaming') }}#options">Streaming library options</a>.
|
||||
</p><p>
|
||||
See those references for option names and defaults.
|
||||
The referenced documention is for the Java router implementation.
|
||||
Defaults are subject to change.
|
||||
Option names and values are case-sensitive.
|
||||
Other router implementations may not support all options and may have different defaults;
|
||||
consult router documentation for details.
|
||||
</p>
|
||||
|
||||
|
||||
<h3>BASE 64 Notes</h3>
|
||||
@ -1633,6 +1542,12 @@ consult router documentation for details.
|
||||
Base 64 encoding must use the I2P standard Base 64 alphabet "A-Z, a-z, 0-9, -, ~".
|
||||
</p>
|
||||
|
||||
<h3>Client Library Implementations</h3>
|
||||
<p>
|
||||
Client libraries are available for C, C++, C#, Perl, and Python.
|
||||
These are in the apps/sam/ directory in the <a href="{{ get_url('downloads_list') }}">I2P Source Package</a>.
|
||||
Some may be older and have not been updated for SAMv3 support.
|
||||
</p>
|
||||
|
||||
<h3>Default SAM Setup</h3>
|
||||
<p>
|
||||
|
@ -1,7 +1,7 @@
|
||||
{% extends "global/layout.html" %}
|
||||
{% block title %}{% trans %}Streaming Protocol{% endtrans %}{% endblock %}
|
||||
{% block lastupdated %}2022-04{% endblock %}
|
||||
{% block accuratefor %}0.9.53{% endblock %}
|
||||
{% block title %}{% trans %}Streaming Library{% endtrans %}{% endblock %}
|
||||
{% block lastupdated %}2020-05{% endblock %}
|
||||
{% block accuratefor %}0.9.46{% endblock %}
|
||||
{% block content %}
|
||||
<h2>{% trans %}Overview{% endtrans %}</h2>
|
||||
|
||||
@ -65,11 +65,11 @@ streaming library, to be interpreted by I2CP.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<p>{% trans i2cp=site_url('docs/protocol/i2cp'),
|
||||
i2psktmf='http://'+i2pconv('idk.i2p/javadoc-i2p')+'/net/i2p/client/streaming/I2PSocketManagerFactory.html',
|
||||
i2psktm='http://'+i2pconv('idk.i2p/javadoc-i2p')+'/net/i2p/client/streaming/I2PSocketManager.html',
|
||||
i2psess='http://'+i2pconv('idk.i2p/javadoc-i2p')+'/net/i2p/client/I2PSession.html',
|
||||
i2pskt='http://'+i2pconv('idk.i2p/javadoc-i2p')+'/net/i2p/client/streaming/I2PSocket.html',
|
||||
i2psskt='http://'+i2pconv('idk.i2p/javadoc-i2p')+'/net/i2p/client/streaming/I2PServerSocket.html' -%}
|
||||
i2psktmf='http://'+i2pconv('echelon.i2p/javadoc')+'/net/i2p/client/streaming/I2PSocketManagerFactory.html',
|
||||
i2psktm='http://'+i2pconv('echelon.i2p/javadoc')+'/net/i2p/client/streaming/I2PSocketManager.html',
|
||||
i2psess='http://'+i2pconv('echelon.i2p/javadoc')+'/net/i2p/client/I2PSession.html',
|
||||
i2pskt='http://'+i2pconv('echelon.i2p/javadoc')+'/net/i2p/client/streaming/I2PSocket.html',
|
||||
i2psskt='http://'+i2pconv('echelon.i2p/javadoc')+'/net/i2p/client/streaming/I2PServerSocket.html' -%}
|
||||
The standard interface to the streaming lib is for the application to use the
|
||||
<a href="{{ i2psktmf }}">I2PSocketManagerFactory</a> to create an
|
||||
<a href="{{ i2psktm }}">I2PSocketManager</a>. The application then asks the
|
||||
@ -79,7 +79,7 @@ can then setup connections with an <a href="{{ i2pskt }}">I2PSocket</a> or
|
||||
receive connections with an <a href="{{ i2psskt }}">I2PServerSocket</a>.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<p>{% trans url='http://'+i2pconv('idk.i2p/javadoc-i2p')+'/net/i2p/client/streaming/package-summary.html' -%}
|
||||
<p>{% trans url='http://'+i2pconv('echelon.i2p/javadoc')+'/net/i2p/client/streaming/package-summary.html' -%}
|
||||
Here are the <a href="{{ url }}">full streaming library Javadocs</a>.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
@ -89,7 +89,7 @@ For a good example of usage, see the i2psnark code.
|
||||
|
||||
|
||||
<h3 id="options">{% trans %}Options and Defaults{% endtrans %}</h3>
|
||||
<p>{% trans i2psktmf='http://'+i2pconv('idk.i2p/javadoc-i2p')+'/net/i2p/client/streaming/I2PSocketManagerFactory.html' -%}
|
||||
<p>{% trans i2psktmf='http://'+i2pconv('echelon.i2p/javadoc')+'/net/i2p/client/streaming/I2PSocketManagerFactory.html' -%}
|
||||
The options and current default values are listed below.
|
||||
Options are case-sensitive and may be set for the whole router, for a particular client, or for an individual socket on a
|
||||
per-connection basis.
|
||||
|
@ -1,7 +1,7 @@
|
||||
{% extends "global/layout.html" %}
|
||||
{% block title %}{% trans %}Bittorrent over I2P{% endtrans %}{% endblock %}
|
||||
{% block lastupdated %}2022-01{% endblock %}
|
||||
{% block accuratefor %}0.9.52{% endblock %}
|
||||
{% block lastupdated %}{% trans %}January 2017{% endtrans %}{% endblock %}
|
||||
{% block accuratefor %}0.9.28{% endblock %}
|
||||
{% block content %}
|
||||
|
||||
<p>{% trans -%}
|
||||
@ -71,9 +71,7 @@ There are no known I2P clients or trackers that currently support UDP announce/r
|
||||
<h2>{% trans %}Non-Compact Tracker Responses{% endtrans %}</h2>
|
||||
<p>{% trans -%}
|
||||
The non-compact response is just as in standard bittorrent, with an I2P "ip".
|
||||
{%- endtrans %}
|
||||
This is a long base64-encoded "DNS string", probably with a ".i2p" suffix.
|
||||
</p>
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<p>{% trans -%}
|
||||
Trackers generally include a fake port key, or use the port from the announce, for compatibility with older clients.
|
||||
@ -264,8 +262,8 @@ In a response, the "values" key is a list of strings, each containing a single c
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<p>{% trans -%}
|
||||
Compact node info is 54 bytes (20 byte Node ID + 32 byte SHA256 Hash + 2 byte port)
|
||||
instead of 20 byte Node ID + 4 byte IP + 2 byte port.
|
||||
Compact node info is 54 bytes (20 byte SHA1 Hash + 32 byte SHA256 Hash + 2 byte port)
|
||||
instead of 20 byte SHA1 Hash + 4 byte IP + 2 byte port.
|
||||
In a response, the "nodes" key is a
|
||||
single byte string with concatenated compact node info.
|
||||
{%- endtrans %}</p>
|
||||
@ -298,8 +296,32 @@ are described below, and are subject to change.
|
||||
Contact the I2P developers if you wish to develop a client or tracker supporting datagram announces.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<p>{% trans prop160=site_url('docs/spec/proposals/160') -%}
|
||||
See <a href="{{ prop160 }}">Proposal 160</a>.
|
||||
<p>{% trans -%}
|
||||
A UDP tracker listens on two ports.
|
||||
The "query port" is the advertised port, and is used to receive repliable (signed) datagrams, for the connect request only.
|
||||
The "response port" is used to receive unsigned (raw) datagrams, and is the source port for all replies.
|
||||
The response port is arbitrary.
|
||||
A client sends and receives on a single port only.
|
||||
It receives only unsigned (raw) datagrams.
|
||||
Raw datagrams provides increased efficiency for replies since they contain tokens sent in the query, and need not be signed.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<p>{% trans -%}
|
||||
In the announce request, the 4-byte IP is replaced by a 32-byte hash, and the port is still present,
|
||||
although it may be ignored by the tracker.
|
||||
In the announce response, each 4-byte IP and 2-byte port is replaced by a 32-byte hash (compact peer info), and no port is present.
|
||||
The client sends the announce request and scrape request to the source port in the announce response packet.
|
||||
The connect request, connect response, scrape request, scrape response, and error response are the same as in BEP 15.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<p>{% trans -%}
|
||||
Source addresses in I2P cannot be spoofed, so it is possible to use a simplified protocol
|
||||
with 2 packets instead of 4, omitting the connect request and response.
|
||||
In this case, the announce request would be a repliable datagram sent to the tracker's query port,
|
||||
and the tracker would not require a response port.
|
||||
While this is more efficient, it would be more difficult to modify an existing tracker to support this mode.
|
||||
The URL for the 4-packet-mode tracker would use standard "udp://" prefix.
|
||||
The URL for a modified 2-packet-mode tracker would require a different prefix if both modes are supported in I2P.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
|
||||
|
505
i2p2www/pages/site/docs/applications/dns.html
Normal file
505
i2p2www/pages/site/docs/applications/dns.html
Normal file
@ -0,0 +1,505 @@
|
||||
|
||||
{% extends "global/layout.html" %}
|
||||
{% block title %}{% trans %}DNS over I2P{% endtrans %}{% endblock %}
|
||||
{% block lastupdated %}{% trans %}October 2021{% endtrans %}{% endblock %}
|
||||
{% block accuratefor %}1.5.0/0.9.51{% endblock %}
|
||||
{% block content %}
|
||||
|
||||
<p>{% trans -%}
|
||||
This content was adapted from content written by i2pd contributor Acetone. It
|
||||
was translated by [TODO: an unknown third party], copied from <a
|
||||
href="https://rucore.net/en/dns-over-i2p-true-privacy-of-dns-queries-2/">RuCore.
|
||||
net</a>,
|
||||
and lightly edited by idk. The original appeared at:
|
||||
<a href="https://habr.com/ru/company/itsoft/blog/572140/">habr.com</a>.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<p>{% trans -%}
|
||||
Today it is difficult to surprise someone with the terms DoH (DNS over HTTPS),
|
||||
DoT (DNS over TLS) and other crypto-gadgets for DNS. If someone just jumped on a
|
||||
train and doesn’t understand what this is about, DNS (Domain Name System) is a
|
||||
domain name system that each of us uses hundreds and thousands of times during
|
||||
the day. All human-readable names like habr.com, cia.gov and others lead to a
|
||||
specific IP address, which a computer can find out by contacting special
|
||||
servers.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<p>{% trans -%}
|
||||
Large enterprises, home Internet providers, as well as anyone who wants to have
|
||||
their own DNS server, because the DNS server is very simple in its device. Among
|
||||
other considerations, their servers are deployed for reasons of additional
|
||||
privacy, because the administrator of a foreign server, to which we turn, will
|
||||
see our address and will know which web resource we decided to visit.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<p>{% trans -%}
|
||||
The DNS protocol is old (~ 1987), so it does not provide any encryption. All DNS
|
||||
requests and responses go over the network in the clear, so in the initial
|
||||
variation, not only the administrator of the DNS server, but also the operators
|
||||
of all intermediate nodes through which traffic passes, can spy on the user.
|
||||
Modern solutions like DNSCrypt, DNS over HTTPS and the like solve the
|
||||
problem of
|
||||
intercepting information along the way, as they encrypt DNS requests from the
|
||||
user to the server and in the opposite direction. But! The protocols that
|
||||
encrypt traffic do not solve one important issue – the analysis of all requests
|
||||
on the side of the server itself, which still sees both the request itself and
|
||||
the IP address from which it came. The DNSCrypt project has an additional gadget
|
||||
for that, but I was not impressed by this layering on a three-story pie. Perhaps
|
||||
because I have my own pie … I will be glad to adequate criticism, but I hope
|
||||
there will be no stupid comments that every person on the planet needs to have
|
||||
his own personal DNS server to maintain privacy.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<p>{% trans -%}
|
||||
DNS over the anonymous network I2P is a concept in which DNS requests are
|
||||
encrypted, but also: firstly, the server administrator has no idea about the
|
||||
real IP address of the user; secondly, the user does not know the location of
|
||||
the server he is accessing (also good, in order to avoid possible pressure on
|
||||
the administrator). DNS over I2P, or DoI2P (or DoI at all) is a very
|
||||
entertaining variation on the use of hidden networks, which we will now take a
|
||||
closer look at.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<h2>{% trans %}Theory{% endtrans %}</h2>
|
||||
|
||||
<p>{% trans -%}The standard calls for a DNS server to run on port 53 (websites,
|
||||
for example, run on standard ports 80 and 443), but what is more interesting in
|
||||
this case is what transport protocol does DNS use. This information is required
|
||||
to create suitable tunnels over the I2P network.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<p>{% trans -%}
|
||||
An I2P router that provides access to the I2P network provides proxies of the
|
||||
SOCKS and HTTP types at the local address. In most cases, it is a proxy that is
|
||||
used to work with the network, but to fine-tune the connection through a hidden
|
||||
network, separate tunnels are created in a special configuration file. Tunnels
|
||||
can be server and client tunnels. Their essence lies in accepting connections
|
||||
from a hidden network to a designated local port of some service, for
|
||||
example, a
|
||||
web server, or in transferring client connections from a local tunnel
|
||||
address to
|
||||
a hidden network. Tunnels are divided into two main types: TCP and UDP.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<p>{% trans -%}
|
||||
The main working protocol of DNS is UDP, but the standard provides for the
|
||||
transfer of some information over the TCP protocol. This means that you need to
|
||||
create two server and two client tunnels: the first for UDP connections, the
|
||||
second for TCP.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<h2>{% trans %}Server Setup{% endtrans %}</h2>
|
||||
|
||||
<p>{% trans -%}
|
||||
The example uses a dnsmasq server that is extremely easy to install and
|
||||
configure, but you can use any server you like. The simplest configuration
|
||||
option for this server looks like this:
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<pre><code>
|
||||
port=53
|
||||
listen-address=256.257.258.259
|
||||
domain-needed
|
||||
bogus-priv
|
||||
server=8.8.8.8
|
||||
</code></pre>
|
||||
|
||||
|
||||
<p>{% trans -%}
|
||||
This configuration means that absolutely all requests will be sent to the
|
||||
address 8.8.8.8. Such a server does not make much sense, but as a layer of
|
||||
anonymity and just an example for an article – that’s it. The server accepts
|
||||
requests to an IP address 256.257.258.259, port 53. The fictitious IP address
|
||||
serves only as an example, as if depicting a pre-existing DNS server accessible
|
||||
from the regular Internet. In fact, you can use a local address 127.0.0.1 and
|
||||
any port at your discretion, if you serve users exclusively through a hidden
|
||||
network.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<p>{% trans -%}
|
||||
To make the DNS server accessible from I2P, you need to create server tunnels.
|
||||
I am using i2pd on Debian 10. The default tunnels config file is in the path
|
||||
/etc/i2pd/tunnels.conf. Below is the minimum configuration required to work.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<pre><code>
|
||||
[DNS-TCP]
|
||||
type = server
|
||||
host = 256.257.258.259
|
||||
port = 53
|
||||
keys = hidden-dns.dat
|
||||
|
||||
[DNS-UDP]
|
||||
type = udpserver
|
||||
host = 256.257.258.259
|
||||
address = 256.257.258.259
|
||||
port = 53
|
||||
keys = hidden-dns.dat
|
||||
</code></pre>
|
||||
|
||||
<p>{% trans -%}
|
||||
Notice the line address in the UDP tunnel section. This is a necessary
|
||||
parameter
|
||||
for a non-local address, which tells i2pd from which address incoming requests
|
||||
from the hidden network will come from. This parameter is required for UDP
|
||||
tunnels. It can be omitted if an address is used 127.0.0.1.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<p>{% trans -%}
|
||||
The parameter keys specifies the keys that form the intranet address. By
|
||||
default, they are in the directory /var/lib/i2pd. If the file is not found, a
|
||||
new one is created.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<p>{% trans -%}
|
||||
Restart i2pd for the changes to take effect. You can see the I2P tunnel address
|
||||
in the web console, under the “I2P Tunnels” tab. In my case, it is
|
||||
dnsgzxkak4zlrrs5tfh42ob57iley4xrp7srrltn2j2yl2ynbiaq.b32.i2p.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<h2>{% trans %}Client Setup{% endtrans %}</h2>
|
||||
|
||||
<p>{% trans -%}
|
||||
In my case, the client machine also uses i2pd and the Debian operating system,
|
||||
the tunnels file is located in the same place as on the server –
|
||||
/etc/i2pd/tunnels.conf. The client configuration might look like this:
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<pre><code>
|
||||
[DNS-CLIENT-TCP]
|
||||
type = client
|
||||
address = 127.0.0.1
|
||||
port = 35353
|
||||
inbound.length = 2
|
||||
outbound.length = 2
|
||||
destination = dnsgzxkak4zlrrs5tfh42ob57iley4xrp7srrltn2j2yl2ynbiaq.b32.i2p
|
||||
keys = transient-dns
|
||||
|
||||
[DNS-CLIENT-UDP]
|
||||
type = udpclient
|
||||
address = 127.0.0.1
|
||||
port = 35353
|
||||
destination = dnsgzxkak4zlrrs5tfh42ob57iley4xrp7srrltn2j2yl2ynbiaq.b32.i2p
|
||||
keys = transient-dns
|
||||
</code></pre>
|
||||
|
||||
<p>{% trans -%}
|
||||
The parameters inbound.length and outbound.length are responsible for the
|
||||
length of the incoming and outgoing tunnels. By default, they are three hops,
|
||||
but I have reduced these values to two to minimize latency a little.
|
||||
Similar parameters are applicable for server tunnels as well. Additional
|
||||
parameters are specified only in the first section, since the very first block
|
||||
defines the parameters that apply to all tunnels using the same key (in my
|
||||
case, this transient-dns). Keys starting with a word transient are temporary
|
||||
– after each restart of i2pd, the client will contact the server from a new
|
||||
intranet address.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<p>{% trans -%}
|
||||
For new tunnels to be created, you need to restart i2pd. On this it may seem
|
||||
that the deed is done. But no, there is one more nuance left.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<p>{% trans -%}
|
||||
The file responsible for configuring DNS on my operating system (Debian 10)
|
||||
does not support specifying a port. Only the IP address of the server can be
|
||||
specified. All requests will be sent to the port 53, but our tunnel is hanging
|
||||
on the port 35353. If you specify a port in the client tunnels 53, an error
|
||||
will occur and no tunnels will be created, because all ports below 1024 are
|
||||
privileged – reserved for special needs. Only the superuser (root) can start
|
||||
the service on this port, and i2pd, like other applications, works without
|
||||
superuser rights. Take a deep breath before running i2pd (or some other
|
||||
third-party software) as root, and then read on.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<h2>{% trans %}Epilogue{% endtrans %}</h2>
|
||||
|
||||
<p>{% trans -%}
|
||||
{%- endtrans %}</p>
|
||||
|
||||
|
||||
|
||||
<h2>{% trans %}Additional Information{% endtrans %}</h2>
|
||||
<ul>
|
||||
<li></li>
|
||||
</ul>
|
||||
|
||||
|
||||
{% endblock %}
|
||||
idk@lib14:~/Workspace/GIT_WORK/i2p.www$ find . -name dns.html -exec bash -c
|
||||
"cat {} | fold -w 80 -s - | tee {} " \;
|
||||
{% extends "global/layout.html" %}
|
||||
{% block title %}{% trans %}DNS over I2P{% endtrans %}{% endblock %}
|
||||
{% block lastupdated %}{% trans %}October 2021{% endtrans %}{% endblock %}
|
||||
{% block accuratefor %}1.5.0/0.9.51{% endblock %}
|
||||
{% block content %}
|
||||
|
||||
<p>{% trans -%}
|
||||
This content was adapted from content written by i2pd contributor Acetone. It
|
||||
was machine translated, copied from <a
|
||||
href="https://rucore.net/en/dns-over-i2p-true-privacy-of-dns-queries-2/">RuCore.
|
||||
net</a>,
|
||||
and lightly edited by idk.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<p>{% trans -%}
|
||||
Today it is difficult to surprise someone with the terms DoH (DNS over HTTPS),
|
||||
DoT (DNS over TLS) and other crypto-gadgets for DNS. If someone just jumped on a
|
||||
train and doesn’t understand what this is about, DNS (Domain Name System) is a
|
||||
domain name system that each of us uses hundreds and thousands of times during
|
||||
the day. All human-readable names like habr.com, cia.gov and others lead to a
|
||||
specific IP address, which a computer can find out by contacting special
|
||||
servers.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<p>{% trans -%}
|
||||
Large enterprises, home Internet providers, as well as anyone who wants to have
|
||||
their own DNS server, because the DNS server is very simple in its device. Among
|
||||
other considerations, their servers are deployed for reasons of additional
|
||||
privacy, because the administrator of a foreign server, to which we turn, will
|
||||
see our address and will know which web resource we decided to visit.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<p>{% trans -%}
|
||||
The DNS protocol is old (~ 1987), so it does not provide any encryption. All DNS
|
||||
requests and responses go over the network in the clear, so in the initial
|
||||
variation, not only the administrator of the DNS server, but also the operators
|
||||
of all intermediate nodes through which traffic passes, can spy on the user.
|
||||
Modern solutions like DNSCrypt, DNS over HTTPS and the like solve the problem of
|
||||
intercepting information along the way, as they encrypt DNS requests from the
|
||||
user to the server and in the opposite direction. But! The protocols that
|
||||
encrypt traffic do not solve one important issue – the analysis of all requests
|
||||
on the side of the server itself, which still sees both the request itself and
|
||||
the IP address from which it came. The DNSCrypt project has an additional gadget
|
||||
for that, but I was not impressed by this layering on a three-story pie. Perhaps
|
||||
because I have my own pie … I will be glad to adequate criticism, but I hope
|
||||
there will be no stupid comments that every person on the planet needs to have
|
||||
his own personal DNS server to maintain privacy.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<p>{% trans -%}
|
||||
DNS over the anonymous network I2P is a concept in which DNS requests are
|
||||
encrypted, but also: firstly, the server administrator has no idea about the
|
||||
real IP address of the user; secondly, the user does not know the location of
|
||||
the server he is accessing (also good, in order to avoid possible pressure on
|
||||
the administrator). DNS over I2P, or DoI2P (or DoI at all) is a very
|
||||
entertaining variation on the use of hidden networks, which we will now take a
|
||||
closer look at.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<h2>{% trans %}Theory{% endtrans %}</h2>
|
||||
|
||||
<p>{% trans -%}The standard calls for a DNS server to run on port 53 (websites,
|
||||
for example, run on standard ports 80 and 443), but what is more interesting in
|
||||
this case is what transport protocol does DNS use. This information is required
|
||||
to create suitable tunnels over the I2P network.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<p>{% trans -%}
|
||||
An I2P router that provides access to the I2P network provides proxies of the
|
||||
SOCKS and HTTP types at the local address. In most cases, it is a proxy that is
|
||||
used to work with the network, but to fine-tune the connection through a hidden
|
||||
network, separate tunnels are created in a special configuration file. Tunnels
|
||||
can be server and client tunnels. Their essence lies in accepting connections
|
||||
from a hidden network to a designated local port of some service, for example, a
|
||||
web server, or in transferring client connections from a local tunnel address to
|
||||
a hidden network. Tunnels are divided into two main types: TCP and UDP.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<p>{% trans -%}
|
||||
The main working protocol of DNS is UDP, but the standard provides for the
|
||||
transfer of some information over the TCP protocol. This means that you need to
|
||||
create two server and two client tunnels: the first for UDP connections, the
|
||||
second for TCP.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<h2>{% trans %}Server Setup{% endtrans %}</h2>
|
||||
|
||||
<p>{% trans -%}
|
||||
The example uses a dnsmasq server that is extremely easy to install and
|
||||
configure, but you can use any server you like. The simplest configuration
|
||||
option for this server looks like this:
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<pre><code>
|
||||
port=53
|
||||
listen-address=256.257.258.259
|
||||
domain-needed
|
||||
bogus-priv
|
||||
server=8.8.8.8
|
||||
</code></pre>
|
||||
|
||||
|
||||
<p>{% trans -%}
|
||||
This configuration means that absolutely all requests will be sent to the
|
||||
address 8.8.8.8. Such a server does not make much sense, but as a layer of
|
||||
anonymity and just an example for an article – that’s it. The server accepts
|
||||
requests to an IP address 256.257.258.259, port 53. The fictitious IP address
|
||||
serves only as an example, as if depicting a pre-existing DNS server accessible
|
||||
from the regular Internet. In fact, you can use a local address 127.0.0.1 and
|
||||
any port at your discretion, if you serve users exclusively through a hidden
|
||||
network.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<p>{% trans -%}
|
||||
To make the DNS server accessible from I2P, you need to create server tunnels.
|
||||
I am using i2pd on Debian 10. The default tunnels config file is in the path
|
||||
/etc/i2pd/tunnels.conf. Below is the minimum configuration required to work.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<pre><code>
|
||||
[DNS-TCP]
|
||||
type = server
|
||||
host = 256.257.258.259
|
||||
port = 53
|
||||
keys = hidden-dns.dat
|
||||
|
||||
[DNS-UDP]
|
||||
type = udpserver
|
||||
host = 256.257.258.259
|
||||
address = 256.257.258.259
|
||||
port = 53
|
||||
keys = hidden-dns.dat
|
||||
</code></pre>
|
||||
|
||||
<p>{% trans -%}
|
||||
Notice the line address in the UDP tunnel section. This is a necessary
|
||||
parameter
|
||||
for a non-local address, which tells i2pd from which address incoming requests
|
||||
from the hidden network will come from. This parameter is required for UDP
|
||||
tunnels. It can be omitted if an address is used 127.0.0.1.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<p>{% trans -%}
|
||||
The parameter keys specifies the keys that form the intranet address. By
|
||||
default, they are in the directory /var/lib/i2pd. If the file is not found, a
|
||||
new one is created.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<p>{% trans -%}
|
||||
Restart i2pd for the changes to take effect. You can see the I2P tunnel address
|
||||
in the web console, under the “I2P Tunnels” tab. In my case, it is
|
||||
dnsgzxkak4zlrrs5tfh42ob57iley4xrp7srrltn2j2yl2ynbiaq.b32.i2p.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<h2>{% trans %}Client Setup{% endtrans %}</h2>
|
||||
|
||||
<p>{% trans -%}
|
||||
In my case, the client machine also uses i2pd and the Debian operating system,
|
||||
the tunnels file is located in the same place as on the server –
|
||||
/etc/i2pd/tunnels.conf. The client configuration might look like this:
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<pre><code>
|
||||
[DNS-CLIENT-TCP]
|
||||
type = client
|
||||
address = 127.0.0.1
|
||||
port = 35353
|
||||
inbound.length = 2
|
||||
outbound.length = 2
|
||||
destination = dnsgzxkak4zlrrs5tfh42ob57iley4xrp7srrltn2j2yl2ynbiaq.b32.i2p
|
||||
keys = transient-dns
|
||||
|
||||
[DNS-CLIENT-UDP]
|
||||
type = udpclient
|
||||
address = 127.0.0.1
|
||||
port = 35353
|
||||
destination = dnsgzxkak4zlrrs5tfh42ob57iley4xrp7srrltn2j2yl2ynbiaq.b32.i2p
|
||||
keys = transient-dns
|
||||
</code></pre>
|
||||
|
||||
<p>{% trans -%}
|
||||
The parameters inbound.length and outbound.length are responsible for the
|
||||
length of the incoming and outgoing tunnels. By default, they are three hops,
|
||||
but I have reduced these values to two to minimize latency a little.
|
||||
Similar parameters are applicable for server tunnels as well. Additional
|
||||
parameters are specified only in the first section, since the very first block
|
||||
defines the parameters that apply to all tunnels using the same key (in my
|
||||
case, this transient-dns). Keys starting with a word transient are temporary
|
||||
– after each restart of i2pd, the client will contact the server from a new
|
||||
intranet address.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<p>{% trans -%}
|
||||
For new tunnels to be created, you need to restart i2pd. On this it may seem
|
||||
that the deed is done. But no, there is one more nuance left.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<p>{% trans -%}
|
||||
The file responsible for configuring DNS on my operating system (Debian 10)
|
||||
does not support specifying a port. Only the IP address of the server can be
|
||||
specified. All requests will be sent to the port 53, but our tunnel is hanging
|
||||
on the port 35353. If you specify a port in the client tunnels 53, an error
|
||||
will occur and no tunnels will be created, because all ports below 1024 are
|
||||
privileged – reserved for special needs. Only the superuser (root) can start
|
||||
the service on this port, and i2pd, like other applications, works without
|
||||
superuser rights. Take a deep breath before running i2pd (or some other
|
||||
third-party software) as root, and then read on.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<p>{% trans -%}
|
||||
Remove from /etc/resolv.conf the previous DNS, so that all queries were
|
||||
exclusively through I2P, and add a single server – local: nameserver
|
||||
127.0.0.1.
|
||||
This will tell the operating system to go to the address for name-to-address
|
||||
resolution 127.0.0.1:53. It remains to ask the kernel of the system to redirect
|
||||
requests from the port 53 to 35353where our TCP / UDP tunnels hang, and then
|
||||
send responses in the opposite direction. It’s time for the iptables magic
|
||||
(sorry not the newfangled netfilter, I’m an old school magician).
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<pre><code>
|
||||
iptables -t nat -A PREROUTING -i lo -p udp – dport 53 -j REDIRECT –
|
||||
to-port 35353
|
||||
iptables -t nat -I OUTPUT -p udp -d 127.0.0.1 – dport 53 -j REDIRECT –
|
||||
to-port 35353
|
||||
iptables -t nat -A PREROUTING -i lo -p tcp – dport 53 -j REDIRECT –
|
||||
to-port 35353
|
||||
iptables -t nat -I OUTPUT -p tcp -d 127.0.0.1 – dport 53 -j REDIRECT –
|
||||
to-port 35353
|
||||
</code></pre>
|
||||
|
||||
<p>{% trans -%}
|
||||
Do you hear? Listen, this is fanfare! Check the resolving in any convenient
|
||||
way,
|
||||
I will use the utility nslookup:
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<pre><code>
|
||||
acetone@adeb:~$ nslookup habr.com
|
||||
Server: 127.0.0.1
|
||||
Address: 127.0.0.1#53
|
||||
|
||||
Non-authoritative answer:
|
||||
Name: habr.com
|
||||
Address: 178.248.237.68
|
||||
</code></pre>
|
||||
|
||||
<h2>{% trans %}Epilogue{% endtrans %}</h2>
|
||||
|
||||
<p>{% trans -%}
|
||||
During the configuration, I noticed that dnsmasq only occupies a UDP socket in
|
||||
standby mode, but I decided to leave the TCP tunnel according to the DNS
|
||||
standard, which provides for the transfer of some information over TCP. Be
|
||||
that as it may, the functionality described is perfectly observed even in
|
||||
the absence of TCP tunnels.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<p>{% trans -%}
|
||||
The above configuration takes on average 1-2 seconds to request and respond
|
||||
to the DNS server. If your result seems too slow for you, you can reduce the
|
||||
length of the server and client tunnels to 2. There are options with tunnels
|
||||
in one transit node, but this is applicable only for devices that you do
|
||||
not worry about being compromised: for example, if your DNS is not secret ,
|
||||
the length of the tunnels can be equal to one or even zero! In this case,
|
||||
you enable the user to build a longer anonymizing tunnel from his side. The
|
||||
main thing is to do everything wisely and not be lazy to get acquainted with
|
||||
the documentation , as well as consult with knowledgeable people.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<p>{% trans -%}
|
||||
As a demonstration (and maybe for permanent use), you can use the DNS server,
|
||||
the user configs for which are given above.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
{% endblock %}
|
@ -364,7 +364,7 @@ as is done in our Java packages.
|
||||
As always, state management is the difficult part.
|
||||
{%- endtrans %}</p>
|
||||
<p>
|
||||
See also: <a href="http://{{ i2pconv('idk.i2p/javadoc-i2p') }}/net/i2p/router/Router.html">the Router javadocs</a>.
|
||||
See also: <a href="http://{{ i2pconv('echelon.i2p/javadoc') }}/net/i2p/router/Router.html">the Router javadocs</a>.
|
||||
</p>
|
||||
|
||||
{% endblock %}
|
||||
|
@ -201,7 +201,7 @@ This is implementation-dependent.
|
||||
<a href="{{ site_url('docs/spec/common-structures') }}#struct_RouterInfo">{% trans %}RouterInfo specification{% endtrans %}</a>
|
||||
</p>
|
||||
<p>
|
||||
<a href="http://{{ i2pconv('idk.i2p/javadoc-i2p') }}/net/i2p/data/router/RouterInfo.html">{% trans %}RouterInfo Javadoc{% endtrans %}</a>
|
||||
<a href="http://{{ i2pconv('echelon.i2p/javadoc') }}/net/i2p/data/router/RouterInfo.html">{% trans %}RouterInfo Javadoc{% endtrans %}</a>
|
||||
</p>
|
||||
|
||||
|
||||
@ -248,9 +248,9 @@ In addition to these leases, the LeaseSet includes:
|
||||
<a href="{{ site_url('docs/spec/common-structures') }}#struct_LeaseSet">{% trans %}LeaseSet specification{% endtrans %}</a>
|
||||
</p>
|
||||
<p>
|
||||
<a href="http://{{ i2pconv('idk.i2p/javadoc-i2p') }}/net/i2p/data/Lease.html">{% trans %}Lease Javadoc{% endtrans %}</a>
|
||||
<a href="http://{{ i2pconv('echelon.i2p/javadoc') }}/net/i2p/data/Lease.html">{% trans %}Lease Javadoc{% endtrans %}</a>
|
||||
<br />
|
||||
<a href="http://{{ i2pconv('idk.i2p/javadoc-i2p') }}/net/i2p/data/LeaseSet.html">{% trans %}LeaseSet Javadoc{% endtrans %}</a>
|
||||
<a href="http://{{ i2pconv('echelon.i2p/javadoc') }}/net/i2p/data/LeaseSet.html">{% trans %}LeaseSet Javadoc{% endtrans %}</a>
|
||||
</p>
|
||||
|
||||
<p>{% trans -%}
|
||||
|
@ -63,7 +63,7 @@ See <a href="#notes">below</a> for notes on minor changes since the paper was pu
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<h2>{% trans %}Profiles{% endtrans %}</h2>
|
||||
<p>{% trans url='http://'+i2pconv('idk.i2p/javadoc-i2p')+'/net/i2p/router/peermanager/PeerProfile.html' -%}
|
||||
<p>{% trans url='http://'+i2pconv('echelon.i2p/javadoc')+'/net/i2p/router/peermanager/PeerProfile.html' -%}
|
||||
Each peer has a set of data points collected about them, including statistics
|
||||
about how long it takes for them to reply to a network database query, how
|
||||
often their tunnels fail, and how many new peers they are able to introduce
|
||||
@ -142,7 +142,7 @@ speed calculation meets or exceeds the median of all peers.
|
||||
<li>{% trans %}A peer is considered "standard" if it is not "high capacity"{% endtrans %}</li>
|
||||
</ul>
|
||||
|
||||
<p>{% trans url='http://'+i2pconv('idk.i2p/javadoc-i2p')+'/net/i2p/router/peermanager/ProfileOrganizer.html' -%}
|
||||
<p>{% trans url='http://'+i2pconv('echelon.i2p/javadoc')+'/net/i2p/router/peermanager/ProfileOrganizer.html' -%}
|
||||
These groupings are implemented in the router's
|
||||
<a href="{{ url }}">ProfileOrganizer</a>.
|
||||
{%- endtrans %}</p>
|
||||
|
@ -48,7 +48,7 @@ and others.
|
||||
|
||||
<p>{% trans -%}
|
||||
Unlike web sites hosted within content distribution networks like <a href="#similar.freenet">Freenet</a>
|
||||
or <a href="https://www.gnunet.org/en/">GNUnet</a>, the services hosted on
|
||||
or <a href="http://www.ovmj.org/GNUnet/">GNUnet</a>, the services hosted on
|
||||
I2P are fully interactive - there are traditional web-style search engines,
|
||||
bulletin boards, blogs you can comment on, database driven sites, and bridges
|
||||
to query static systems like Freenet without needing to install it locally.
|
||||
|
@ -1,7 +1,7 @@
|
||||
{% extends "global/layout.html" %}
|
||||
{% block title %}{% trans %}Index to Technical Documentation{% endtrans %}{% endblock %}
|
||||
{% block lastupdated %}2022-04{% endblock %}
|
||||
{% block accuratefor %}0.9.53{% endblock %}
|
||||
{% block lastupdated %}2021-01{% endblock %}
|
||||
{% block accuratefor %}0.9.49{% endblock %}
|
||||
{% block content %}
|
||||
<p>{% trans -%}
|
||||
Following is an index to the technical documentation for I2P.
|
||||
@ -86,15 +86,15 @@ HTTP Bidir Proxy
|
||||
<h3>{% trans %}End-to-End Transport API and Protocols{% endtrans %}</h3>
|
||||
{% trans %}The end-to-end protocols used by clients for reliable and unreliable communication.{% endtrans %}
|
||||
<ul><li>
|
||||
<a href="{{ site_url('docs/api/streaming') }}">{{ _('Streaming Protocol Overview') }}</a>
|
||||
<a href="{{ site_url('docs/api/streaming') }}">{{ _('Streaming Library') }}</a>
|
||||
</li><li>
|
||||
<a href="{{ spec_url('streaming') }}">{{ _('Streaming Protocol Specification') }}</a>
|
||||
</li><li>
|
||||
<a href="http://{{ i2pconv('idk.i2p/javadoc-i2p') }}/net/i2p/client/streaming/package-summary.html">{{ _('Streaming Javadoc') }}</a>
|
||||
<a href="http://{{ i2pconv('echelon.i2p/javadoc') }}/net/i2p/client/streaming/package-summary.html">{{ _('Streaming Javadoc') }}</a>
|
||||
</li><li>
|
||||
<a href="{{ spec_url('datagrams') }}">{{ _('Datagrams') }}</a>
|
||||
</li><li>
|
||||
<a href="http://{{ i2pconv('idk.i2p/javadoc-i2p') }}/net/i2p/client/datagram/package-summary.html">{{ _('Datagram Javadoc') }}</a>
|
||||
<a href="http://{{ i2pconv('echelon.i2p/javadoc') }}/net/i2p/client/datagram/package-summary.html">{{ _('Datagram Javadoc') }}</a>
|
||||
</li></ul>
|
||||
|
||||
<h3>{% trans %}Client-to-Router Interface API and Protocol{% endtrans %}</h3>
|
||||
@ -107,11 +107,11 @@ Traditionally used only by Java applications and higher-level APIs.
|
||||
</li><li>
|
||||
<a href="{{ spec_url('i2cp') }}">{{ _('I2CP Specification') }}</a>
|
||||
</li><li>
|
||||
<a href="http://{{ i2pconv('idk.i2p/javadoc-i2p') }}/net/i2p/client/package-summary.html">{{ _('I2CP API Javadoc') }}</a>
|
||||
<a href="http://{{ i2pconv('echelon.i2p/javadoc') }}/net/i2p/client/package-summary.html">{{ _('I2CP API Javadoc') }}</a>
|
||||
</li><li>
|
||||
<a href="{{ spec_url('common-structures') }}">{{ _('Common data structures specification') }}</a>
|
||||
</li><li>
|
||||
<a href="http://{{ i2pconv('idk.i2p/javadoc-i2p') }}/net/i2p/data/package-summary.html">{{ _('Data Structures Javadoc') }}</a>
|
||||
<a href="http://{{ i2pconv('echelon.i2p/javadoc') }}/net/i2p/data/package-summary.html">{{ _('Data Structures Javadoc') }}</a>
|
||||
</li></ul>
|
||||
|
||||
<h3>{% trans %}End-to-End Encryption{% endtrans %}</h3>
|
||||
@ -141,13 +141,13 @@ Traditionally used only by Java applications and higher-level APIs.
|
||||
</li><li>
|
||||
<a href="{{ spec_url('i2np') }}">{{ _('I2NP Specification') }}</a>
|
||||
</li><li>
|
||||
<a href="http://{{ i2pconv('idk.i2p/javadoc-i2p') }}/net/i2p/data/i2np/package-summary.html">{{ _('I2NP Javadoc') }}</a>
|
||||
<a href="http://{{ i2pconv('echelon.i2p/javadoc') }}/net/i2p/data/i2np/package-summary.html">{{ _('I2NP Javadoc') }}</a>
|
||||
</li><li>
|
||||
<a href="{{ spec_url('common-structures') }}">{{ _('Common data structures specification') }}</a>
|
||||
</li><li>
|
||||
<a href="{{ spec_url('encryptedleaseset') }}">{{ _('Encrypted Leaseset specification') }}</a>
|
||||
</li><li>
|
||||
<a href="http://{{ i2pconv('idk.i2p/javadoc-i2p') }}/net/i2p/data/package-summary.html">{{ _('Data Structures Javadoc') }}</a>
|
||||
<a href="http://{{ i2pconv('echelon.i2p/javadoc') }}/net/i2p/data/package-summary.html">{{ _('Data Structures Javadoc') }}</a>
|
||||
</li></ul>
|
||||
|
||||
<h3>{% trans %}Tunnels{% endtrans %}</h3>
|
||||
@ -184,11 +184,11 @@ Traditionally used only by Java applications and higher-level APIs.
|
||||
</li><li>
|
||||
<a href="{{ site_url('docs/how/cryptography') }}#udp">{{ _('SSU transport encryption') }}</a>
|
||||
</li><li>
|
||||
<a href="http://{{ i2pconv('idk.i2p/javadoc-i2p') }}/net/i2p/router/transport/package-summary.html">{{ _('Transport Javadoc') }}</a>
|
||||
<a href="http://{{ i2pconv('echelon.i2p/javadoc') }}/net/i2p/router/transport/package-summary.html">{{ _('Transport Javadoc') }}</a>
|
||||
</li><li>
|
||||
<a href="http://{{ i2pconv('idk.i2p/javadoc-i2p') }}/net/i2p/router/transport/ntcp/package-summary.html">{{ _('NTCP Javadoc') }}</a>
|
||||
<a href="http://{{ i2pconv('echelon.i2p/javadoc') }}/net/i2p/router/transport/ntcp/package-summary.html">{{ _('NTCP Javadoc') }}</a>
|
||||
</li><li>
|
||||
<a href="http://{{ i2pconv('idk.i2p/javadoc-i2p') }}/net/i2p/router/transport/udp/package-summary.html">{{ _('SSU Javadoc') }}</a>
|
||||
<a href="http://{{ i2pconv('echelon.i2p/javadoc') }}/net/i2p/router/transport/udp/package-summary.html">{{ _('SSU Javadoc') }}</a>
|
||||
</li></ul>
|
||||
|
||||
<h3>{% trans %}Other Router Topics{% endtrans %}</h3>
|
||||
@ -219,8 +219,7 @@ Traditionally used only by Java applications and higher-level APIs.
|
||||
<a href="{{ site_url('get-involved/guides/dev-guidelines') }}">{{ _('Developer Guidelines') }}</a>
|
||||
</li><li>
|
||||
{% trans %}Javadocs on the standard internet:{% endtrans %}
|
||||
<a href="https://docs.i2p-projekt.de/javadoc/">{% trans num=1 %}Server {{ num }}{% endtrans %}</a>
|
||||
<a href="https://eyedeekay.github.io/javadoc-i2p/">{% trans num=3 %}Server {{ num }}{% endtrans %}</a>
|
||||
<a href="http://docs.i2p-projekt.de/javadoc/">{% trans num=1 %}Server {{ num }}{% endtrans %}</a>
|
||||
{% trans %}Note: always verify that javadocs are current by checking the release number.{% endtrans %}
|
||||
</li><li>
|
||||
{% trans %}Javadocs inside I2P:{% endtrans %}
|
||||
@ -230,7 +229,7 @@ down (kytv)
|
||||
ancient (str4d)
|
||||
<a href="http://{{ i2pconv('i2pdocs.str4d.i2p') }}/i2p.i2p/javadoc/">{% trans num=2 %}Server {{ num }}{% endtrans %}</a>
|
||||
-->
|
||||
<a href="http://{{ i2pconv('idk.i2p') }}/javadoc-i2p/">{% trans num=3 %}Server {{ num }}{% endtrans %}</a>
|
||||
<a href="http://{{ i2pconv('echelon.i2p') }}/javadoc/">{% trans num=3 %}Server {{ num }}{% endtrans %}</a>
|
||||
<!--
|
||||
<a href="http://{{ i2pconv('docs.i2p2.i2p') }}/javadoc/">Server 4 - out of date, incomplete</a>
|
||||
-->
|
||||
@ -244,6 +243,8 @@ ancient (str4d)
|
||||
</li><li>
|
||||
<a href="{{ site_url('docs/ports') }}">{{ _('Ports used by I2P') }}</a>
|
||||
</li><li>
|
||||
<a href="http://{{ i2pconv('bobthebuilder.i2p') }}/mtn/">{{ _('Automatic updates to development builds inside I2P') }}</a>
|
||||
</li><li>
|
||||
<a href="{{ site_url('misc/manual-wrapper') }}">{{ _('Updating the wrapper manually') }}</a>
|
||||
</li><li>
|
||||
<a href="http://{{ i2pconv('i2pforum.i2p') }}">{{ _('User forum') }}</a>
|
||||
|
@ -140,7 +140,7 @@ It also maintains a reverse-lookup map to implement rapid reverse lookups.
|
||||
|
||||
<h3>{{ _('Other Naming Service Facilities') }}</h3>
|
||||
|
||||
<p>{% trans nsjavadocs='http://'+i2pconv('idk.i2p/javadoc-i2p')+'/net/i2p/client/naming/package-summary.html' -%}
|
||||
<p>{% trans nsjavadocs='http://'+i2pconv('echelon.i2p/javadoc')+'/net/i2p/client/naming/package-summary.html' -%}
|
||||
The lookup is case-insensitive.
|
||||
The first match is used, and conflicts are not detected.
|
||||
There is no enforcement of naming rules in lookups.
|
||||
|
@ -14,29 +14,10 @@ There are now plugins available that support distributed email, blogs, IRC
|
||||
clients, distributed file storage, wikis, and more.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<h3>{% trans -%}Easy Installation of Applications{%- endtrans %}</h3>
|
||||
<p>{% trans -%}
|
||||
I2P Plugins can be installed by copying the plugin download URL onto
|
||||
the appropriate section on the <a href="http://127.0.0.1:7657/configplugins">Router Console Plugin Configuration Page</a>.
|
||||
Benefits to i2p users and app developers:
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<p>{% trans -%}
|
||||
Start by copying the plugin URL from the page where it is published.
|
||||
{%- endtrans %}</p>
|
||||
<img src="/_static/images/plugins/plugin-step-0.png">
|
||||
|
||||
<p>{% trans -%}
|
||||
Then visit the plugin configuration page, which you can find linked on the console homepage.
|
||||
{%- endtrans %}</p>
|
||||
<img src="/_static/images/plugins/plugin-step-1.png">
|
||||
|
||||
<p>{% trans -%}
|
||||
Paste in the URL and click the "Install Plugin" button.
|
||||
{%- endtrans %}</p>
|
||||
<img src="/_static/images/plugins/plugin-step-2.png">
|
||||
|
||||
<h3>{% trans -%}Benefits to i2p users and app developers:{%- endtrans %}</h3>
|
||||
|
||||
<ul>
|
||||
<li>{% trans -%}
|
||||
Easy distribution of applications
|
||||
@ -116,7 +97,15 @@ Non-java applications also supported
|
||||
<h3>{% trans %}Required I2P version{% endtrans %}</h3>
|
||||
<p>{% trans %}0.7.12 or newer.{% endtrans %}</p>
|
||||
|
||||
<h3>{% trans %}Updating a Plugin{% endtrans %}</h3>
|
||||
<h3>{% trans %}Installation{% endtrans %}</h3>
|
||||
<p>{% trans -%}
|
||||
To install and start a plugin, copy the <code>.xpi2p</code> install link to
|
||||
the form at the bottom of
|
||||
<a href="http://127.0.0.1:7657/configclients.jsp#plugin">configclients.jsp in
|
||||
your router console</a> and click the "install plugin" button. After a
|
||||
plugin is installed and started, a link to the plugin will usually appear at
|
||||
the top of your summary bar.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<p>{% trans -%}
|
||||
To update a plugin to the latest version, just click the update button on
|
||||
@ -126,7 +115,6 @@ well as a button to check for updates for all plugins. Plugins will be checked
|
||||
for updates automatically when updating to a new I2P release (not including dev
|
||||
builds).
|
||||
{%- endtrans %}</p>
|
||||
<img src="/_static/images/plugins/plugin-update-0.png">
|
||||
|
||||
|
||||
<h3>{% trans %}Development{% endtrans %}</h3>
|
||||
|
@ -15,7 +15,7 @@ I2CP to tell the client when any messages have arrived, and to request authoriza
|
||||
for some tunnels to be used.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<p>{% trans url='http://'+i2pconv('idk.i2p/javadoc-i2p')+'/net/i2p/client/package-summary.html',
|
||||
<p>{% trans url='http://'+i2pconv('echelon.i2p/javadoc')+'/net/i2p/client/package-summary.html',
|
||||
libi2cp='http://git.repo.i2p/w/libi2cp.git',
|
||||
streaming=site_url('docs/api/streaming') -%}
|
||||
The protocol itself is implemented in Java, to provide the
|
||||
|
@ -19,7 +19,7 @@ through multiple hops to the ultimate destination.
|
||||
Priority is only used locally at the origin, i.e. when queuing for outbound delivery.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<p>{% trans outnetmessage='http://'+i2pconv('idk.i2p/javadoc-i2p')+'/net/i2p/router/OutNetMessage.html' -%}
|
||||
<p>{% trans outnetmessage='http://'+i2pconv('echelon.i2p/javadoc')+'/net/i2p/router/OutNetMessage.html' -%}
|
||||
The priorities listed below may not be current and are subject to change.
|
||||
See the <a href="{{ outnetmessage }}">OutNetMessage Javadocs</a>
|
||||
for the current priority settings.
|
||||
|
@ -1,7 +1,7 @@
|
||||
{% extends "global/layout.html" %}
|
||||
{% block title %}{% trans %}Protocol Stack{% endtrans %}{% endblock %}
|
||||
{% block lastupdated %}2021-12{% endblock %}
|
||||
{% block accuratefor %}0.9.52{% endblock %}
|
||||
{% block lastupdated %}{% trans %}August 2010{% endtrans %}{% endblock %}
|
||||
{% block accuratefor %}0.8{% endblock %}
|
||||
{% block content %}
|
||||
|
||||
<p>{% trans docs=site_url('docs') -%}
|
||||
@ -29,10 +29,10 @@ The capabilities are listed below, starting at the bottom of the protocol stack.
|
||||
<li>
|
||||
{% trans -%}
|
||||
<b>I2P Transport Layer:</b> provide encrypted connections between 2 I2P routers. These are not anonymous yet, this is strictly a hop-to-hop connection.
|
||||
Two protocols are implemented to provide these capabilities. NTCP2 builds on top of TCP, while SSU uses UDP.
|
||||
Two protocols are implemented to provide these capabilities. NTCP builds on top of TCP, while SSU uses UDP.
|
||||
{%- endtrans %}
|
||||
<br />
|
||||
<a href="{{ spec_url('ntcp2') }}">NTCP2</a>: {% trans %}NIO-based TCP{% endtrans %}
|
||||
<a href="{{ site_url('docs/transport/ntcp') }}">NTCP</a>: {% trans %}NIO-based TCP{% endtrans %}
|
||||
<br />
|
||||
<a href="{{ site_url('docs/transport/ssu') }}">SSU</a>: {% trans %}Secure Semi-reliable UDP{% endtrans %}
|
||||
</li>
|
||||
@ -102,9 +102,9 @@ We can order this based on the I2P stack layer they use.
|
||||
{%- endtrans %}</p>
|
||||
<ul>
|
||||
<li>{% trans %}<b>Streaming/datagram applications</b>: i2psnark, Syndie, i2phex...{% endtrans %}</li>
|
||||
<li>{% trans %}<b>SAM applications</b>: IMule, i2p-bt...{% endtrans %}</li>
|
||||
<li>{% trans %}<b>SAM/BOB applications</b>: IMule, i2p-bt, i2prufus, Robert...{% endtrans %}</li>
|
||||
<li>{% trans plugins=site_url('docs/plugins') %}<b>Other I2P applications</b>: Syndie, EepGet, <a href="{{ plugins }}">plugins</a>...{% endtrans %}</li>
|
||||
<li>{% trans %}<b>Regular applications</b>: Jetty, Apache, Git, browsers, e-mail...{% endtrans %}</li>
|
||||
<li>{% trans %}<b>Regular applications</b>: Jetty, Apache, Monotone, CVS, browsers, e-mail...{% endtrans %}</li>
|
||||
</ul>
|
||||
|
||||
<div class="box" style="text-align:center;">
|
||||
@ -115,7 +115,7 @@ We can order this based on the I2P stack layer they use.
|
||||
<br/>
|
||||
|
||||
<p>
|
||||
* {% trans %}Note: SAM can use both the streaming lib and datagrams.{% endtrans %}
|
||||
* {% trans %}Note: SAM/SAMv2 can use both the streaming lib and datagrams.{% endtrans %}
|
||||
</p>
|
||||
|
||||
{% endblock %}
|
||||
|
@ -1,16 +1,10 @@
|
||||
{% extends "global/layout.html" %}
|
||||
{% block title %}{% trans %}NTCP (NIO-based TCP){% endtrans %}{% endblock %}
|
||||
{% block lastupdated %}2021-10{% endblock %}
|
||||
{% block accuratefor %}0.9.52{% endblock %}
|
||||
{% block lastupdated %}{% trans %}June 2018{% endtrans %}{% endblock %}
|
||||
{% block accuratefor %}0.9.36{% endblock %}
|
||||
{% block content %}
|
||||
|
||||
|
||||
|
||||
<p>{% trans transports=site_url('docs/transport'), ssu=site_url('docs/transport/ssu'), ntcp2=site_url('docs/spec/ntcp2') -%}
|
||||
DEPRECATED, NO LONGER SUPPORTED.
|
||||
Disabled by default as of 0.9.40 2019-05.
|
||||
Support removed as of 0.9.50 2021-05.
|
||||
Replaced by <a href="{{ ntcp2 }}">NTCP2</a>.
|
||||
The others are <a href="{{ ssu }}">SSU</a> and <a href="{{ ntcp2 }}">NTCP2</a>.
|
||||
NTCP is a Java NIO-based transport introduced in I2P release 0.6.1.22.
|
||||
Java NIO (new I/O) does not suffer from the 1 thread per connection issues of the old TCP transport.
|
||||
NTCP-over-IPv6 is supported as of version 0.9.8.
|
||||
|
@ -1,14 +1,13 @@
|
||||
{% extends "global/layout.html" %}
|
||||
{% block title %}{% trans %}Secure Semireliable UDP{% endtrans %} (SSU){% endblock %}
|
||||
{% block lastupdated %}2022-06{% endblock %}
|
||||
{% block accuratefor %}0.9.54{% endblock %}
|
||||
{% block lastupdated %}2021-04{% endblock %}
|
||||
{% block accuratefor %}0.9.50{% endblock %}
|
||||
{% block content %}
|
||||
|
||||
<p>{% trans transports=site_url('docs/transport'), ntcp=site_url('docs/transport/ntcp'), ntcp2=site_url('docs/spec/ntcp2') -%}
|
||||
SSU (also called "UDP" in much of the I2P documentation and user interfaces)
|
||||
is one of two <a href="{{ transports }}">transports</a> currently implemented in I2P.
|
||||
The other is <a href="{{ ntcp2 }}">NTCP2</a>.
|
||||
Support for <a href="{{ ntcp }}">NTCP</a> has been removed.
|
||||
is one of three <a href="{{ transports }}">transports</a> currently implemented in I2P.
|
||||
The others are <a href="{{ ntcp }}">NTCP</a> and <a href="{{ ntcp2 }}">NTCP2</a>.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<p>{% trans -%}
|
||||
@ -505,14 +504,11 @@ to designate a new peer as Bob and try again with a different nonce.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<p>{% trans -%}
|
||||
Alice's introduction key is included in all of the PeerTest messages
|
||||
so that Charlie can contact her without knowing any additional information.
|
||||
As of release 0.9.15, Alice must have an established
|
||||
session with Bob, to prevent spoofing attacks.
|
||||
Alice must not have an established session with Charlie for the peer test
|
||||
to be valid.
|
||||
Alice may go on to establish a session
|
||||
with Charlie, but it is not required.
|
||||
Alice's introduction key is included in all of the PeerTest
|
||||
messages so that she doesn't need to already have an established
|
||||
session with Bob and so that Charlie can contact her without knowing
|
||||
any additional information. Alice may go on to establish a session
|
||||
with either Bob or Charlie, but it is not required.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<h3>IPv6 Notes</h3>
|
||||
@ -527,18 +523,10 @@ and Alice-Bob and Alice-Charlie communication may be via IPv6,
|
||||
if Bob and Charlie indicate support with a 'B' capability in their published IPv6 address.
|
||||
See <a href="/spec/proposals/126-ipv6-peer-testing">Proposal 126</a> for details.
|
||||
</p><p>
|
||||
Prior to release 0.9.50,
|
||||
Alice sends the request to Bob using an existing session over the transport (IPv4 or IPv6) that she wishes to test.
|
||||
When Bob receives a request from Alice via IPv4, Bob must select a Charlie that advertises an IPv4 address.
|
||||
When Bob receives a request from Alice via IPv6, Bob must select a Charlie that advertises an IPv6 address.
|
||||
The actual Bob-Charlie communication may be via IPv4 or IPv6 (i.e., independent of Alice's address type).
|
||||
</p><p>
|
||||
As of release 0.9.50,
|
||||
If the message is over IPv6 for an IPv4 introduction,
|
||||
or (as of release 0.9.50) over IPv4 for an IPv6 introduction,
|
||||
Alice must include her introduction address and port.
|
||||
|
||||
See <a href="/spec/proposals/158">Proposal 158</a> for details.
|
||||
</p>
|
||||
|
||||
|
||||
@ -625,7 +613,6 @@ If the router is hidden, '4' and '6' may be combined in a single address.
|
||||
</dl>
|
||||
|
||||
<h1><a name="future">{% trans %}Future Work{% endtrans %}</a></h1>
|
||||
Note: These issues will be addressed in the development of SSU2.
|
||||
<ul>
|
||||
<li>{% trans -%}
|
||||
Analysis of current SSU performance, including assessment of window size adjustment
|
||||
@ -649,7 +636,7 @@ The protocol should be extended to exchange MTUs during the setup.
|
||||
{%- endtrans %}</li>
|
||||
|
||||
<li>{% trans -%}
|
||||
Rekeying is currently unimplemented and will never be.
|
||||
Rekeying is currently unimplemented and may never be.
|
||||
{%- endtrans %}</li>
|
||||
|
||||
<li>{% trans -%}
|
||||
@ -657,12 +644,26 @@ The potential use of the 'challenge' fields in RelayIntro and RelayResponse,
|
||||
and use of the padding field in SessionRequest and SessionCreated, is undocumented.
|
||||
{%- endtrans %}</li>
|
||||
|
||||
<li>{% trans -%}
|
||||
Instead of a single fragment per packet, a more efficient
|
||||
strategy may be to bundle multiple message fragments into the same packet,
|
||||
so long as it doesn't exceed the MTU.
|
||||
{%- endtrans %}</li>
|
||||
|
||||
<li>{% trans -%}
|
||||
A set of fixed packet sizes may be appropriate to further hide the data
|
||||
fragmentation to external adversaries, but the tunnel, garlic, and end to
|
||||
end padding should be sufficient for most needs until then.
|
||||
{%- endtrans %}</li>
|
||||
|
||||
<li>{% trans -%}
|
||||
Why are introduction keys the same as the router hash, should it be changed, would there be any benefit?
|
||||
{%- endtrans %}</li>
|
||||
|
||||
<li>{% trans -%}
|
||||
Capacities appear to be unused.
|
||||
{%- endtrans %}</li>
|
||||
|
||||
<li>{% trans -%}
|
||||
Signed-on times in SessionCreated and SessionConfirmed appear to be unused or unverified.
|
||||
{%- endtrans %}</li>
|
||||
|
@ -1044,7 +1044,7 @@ either through our IRC network, IRC2P, or on Freenode.{%- endtrans %}</p>
|
||||
<li>{% trans -%}Our Bugtracker:{%- endtrans %}
|
||||
<ul>
|
||||
<li>{% trans -%}Non-private internet:{%- endtrans %} <a href="https://i2pgit.org/i2p-hackers/i2p.i2p/issues">https://i2pgit.org/i2p-hackers/i2p.i2p/issues</a></li>
|
||||
<li>{% trans -%}On I2P:{%- endtrans %} <a href="http://git.idk.i2p/i2p-hackers/i2p.i2p/issues">http://git.idk.i2p/i2p-hackers/i2p.i2p/issues</a></li>
|
||||
<li>{% trans -%}On I2P:{%- endtrans %} <a href="http://git.idk.i2p/i2p-hackers/i2p.i2p/issues">http://i2pgit.org/i2p-hackers/i2p.i2p/issues</a></li>
|
||||
</ul>
|
||||
<li>{% trans -%}Our forums:{%- endtrans %} <a href="http://{{ i2pconv('i2pforum.i2p') }}/">{{ i2pconv('i2pforum.i2p') }}</a></li>
|
||||
<li>{% trans -%}You may paste any interesting logs to a paste service such as the non-private internet services listed on the
|
||||
|
@ -306,10 +306,10 @@ Except where otherwise noted, content on this site is licensed under a
|
||||
</p>
|
||||
|
||||
<h2><a id="commit">{{ _('Commit privileges') }}</a></h2>
|
||||
<p>{% trans git=site_url('docs/applications/git') -%}
|
||||
Developers may push changes to a distributed git repository if you
|
||||
<p>{% trans monotone=site_url('get-involved/guides/monotone') -%}
|
||||
Developers may push changes to a distributed monotone repository if you
|
||||
receive permission from the person running that repository.
|
||||
See the <a href="{{ git }}">Monotone Page</a> for details.
|
||||
See the <a href="{{ monotone }}">Monotone Page</a> for details.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<p>{% trans -%}
|
||||
|
89
i2p2www/pages/site/get-involved/donate.html
Normal file
89
i2p2www/pages/site/get-involved/donate.html
Normal file
@ -0,0 +1,89 @@
|
||||
{% extends "global/layout.html" %}
|
||||
{% block title %}{{ _('Donate') }}{% endblock %}
|
||||
{% block content %}
|
||||
<h2>{% trans -%}Thank you for your interest in contributing to I2P!{%- endtrans %}</h2>
|
||||
<p>{% trans -%}For almost two decades the Invisible Internet Project (I2P) has
|
||||
researched and developed a transport layer and software with a focus on providing
|
||||
privacy and security for online communication. The Invisible Internet Project
|
||||
(I2P) supports the right to access. The project works to constantly improve
|
||||
its circumvention abilities and resistance.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<p>{% trans %}Both the network and its software is completely free to use.{% endtrans %}</p>
|
||||
|
||||
<h3>{% trans -%}Who Uses The Invisible Internet?{%- endtrans %}</h3>
|
||||
|
||||
<p>{% trans %}
|
||||
People who are concerned about their privacy and interested in alternatives to the internet make use of the network and its applications to chat, email, torrent and run their own sites and forums. In some circumstances individuals rely on the network to communicate due to safety issues or censorship. Researchers, developers and digital rights defenders make use of the network as well.
|
||||
{% endtrans %}</p>
|
||||
|
||||
<h3>{% trans -%}How Is The Invisible Internet Project Funded and How Is That Funding Used?{%- endtrans %}</h3>
|
||||
|
||||
<p>{% trans %}The Invisible Internet Project (I2P) is 100% community funded. In the past the Project has received a grant from DuckDuckGo, and has received support from the OTF Usability Lab providers. This helped to guide improvements to the Java software and website UX and information architecture.
|
||||
Donations support I2P maintainers server costs, and other costs associated with keeping the network services up and running. Donations support improving the I2P protocol, application layer, outreach and design.{% endtrans %}</p>
|
||||
|
||||
<p>{% trans %}I2P accepts donations in cryptocurrencies and via Paypal. Android users may also support the project through the Google Play Store by choosing the "Donate" edition. I2P funding is handled by meeh.{% endtrans %}</p>
|
||||
|
||||
<p>
|
||||
{% 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 %}
|
||||
</p>
|
||||
<p>
|
||||
{% trans %} Double-Clicking on the cryptocurrency address will copy it onto your
|
||||
clipboard.{% endtrans %}
|
||||
<br></p>
|
||||
<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><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" />
|
||||
<input type="image" src="https://www.paypalobjects.com/en_US/NO/i/btn/btn_donateCC_LG.gif" border="0" name="submit" title="PayPal - The safer, easier way to pay online!" alt="Donate with PayPal button" />
|
||||
<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 -%}
|
||||
I2P itself is not incorporated and donations are not tax deductible.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<h2>{% trans %}Stickers{% endtrans %}</h2>
|
||||
<p>{% trans -%}
|
||||
I2P makes stickers available at conferences - please refer to the official I2P
|
||||
Twitter and Masdodon accounts to contact the I2P team. Stickers can also be
|
||||
sent by post with your donation while supplies last.
|
||||
{%- endtrans %}</p>
|
||||
{% endblock %}
|
@ -1,6 +1,6 @@
|
||||
{% extends "global/layout.html" %}
|
||||
{% block title %}{{ _('Developer Guidelines and Coding Style') }}{% endblock %}
|
||||
{% block lastupdated %}2022-01{% endblock %}
|
||||
{% block lastupdated %}2021-01{% endblock %}
|
||||
{% block content %}
|
||||
<p>{% trans newdevs=site_url('get-involved/guides/new-developers') -%}
|
||||
Read the <a href="{{ newdevs }}">new developers guide</a> first.
|
||||
@ -138,7 +138,7 @@ Javadocs for API methods should be clear and complete.
|
||||
If you add or change the API, also update the documentation on the website (i2p.www branch).
|
||||
{%- endtrans %}</li>
|
||||
<li>{% trans -%}
|
||||
Tag strings for translation where appropriate, which is true for all UI strings.
|
||||
Tag strings for translation where appropriate.
|
||||
Don't change existing tagged strings unless really necessary, as it will break existing translations.
|
||||
Do not add or change tagged strings after the "tag freeze" in the release cycle so that
|
||||
translators have a chance to update before the release.
|
||||
@ -219,38 +219,6 @@ Don't start threads in constructors. Use I2PAppThread instead of Thread.
|
||||
{%- endtrans %}</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h3>{{ _('Logging') }}</h3>
|
||||
The following guidelines apply to the router, webapps, and all plugins.
|
||||
<ul>
|
||||
<li>
|
||||
For any messages not displayed at the default log level (WARN, INFO, and DEBUG),
|
||||
unless the message is a static string (no concatenation),
|
||||
always use log.shouldWarn(), log.shouldInfo(), or log.shouldDebug()
|
||||
before the log call to avoid unnecessary Object churn.
|
||||
</li><li>
|
||||
Log messages that may be displayed at the default log level (ERROR, CRIT, and logAlways())
|
||||
should be brief, clear, and understandable to a non-technical user.
|
||||
This includes exception reason text that may also be displayed.
|
||||
Consider translating if the error is likely to happen (for example, on form submission errors).
|
||||
Otherwise, translation is not necessary, but it may be helpful to search for and reuse
|
||||
a string that is already tagged for translation elsewhere.
|
||||
</li><li>
|
||||
Log messages not displayed at the default log level (WARN, INFO, and DEBUG)
|
||||
are intended for developer use, and do not have the above requirements.
|
||||
However, WARN messages are available in the Android log tab, and may be of assistance
|
||||
to users debugging issues, so use some care with WARN messages as well.
|
||||
</li><li>
|
||||
INFO and DEBUG log messages should be used sparingly, especially in hot code paths.
|
||||
While useful during development, consider removing them or commenting them out
|
||||
after testing is complete.
|
||||
</li><li>
|
||||
Do not log to stdout or stderr (wrapper log).
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
<h3>{{ _('Licenses') }}</h3>
|
||||
<ul>
|
||||
<li>{% trans -%}
|
||||
|
@ -1,6 +1,6 @@
|
||||
{% extends "global/layout.html" %}
|
||||
{% block title %}{{ _('How to Set up a Reseed Server') }}{% endblock %}
|
||||
{% block lastupdated %}2021-12{% endblock %}
|
||||
{% block lastupdated %}2020-07{% endblock %}
|
||||
{% block content %}
|
||||
|
||||
<h2>{% trans %}Overview{% endtrans %}</h2>
|
||||
@ -44,7 +44,7 @@ This necessitates that you run fail2ban or an equivalent solution.
|
||||
|
||||
<p>{% trans -%}
|
||||
When your setup is complete and ready for testing, we will need the HTTPS URL,
|
||||
the SSL public key certificate (only if selfsigned), and the su3 public key certificate.
|
||||
the SSL public key certificate, and the "su3" bundle public key.
|
||||
After testing is complete, these will be added to the hardcoded entries in the Java and C++ routers in the next release,
|
||||
and you will start seeing traffic.
|
||||
We also will need your email address so we may continue to contact you about reseed administration issues.
|
||||
@ -938,15 +938,13 @@ Do a real reseed test on *another* I2P router machine:
|
||||
<h3>8. Contact Reseed Maintainer</h3>
|
||||
|
||||
<p>
|
||||
Contact us via email zzz at mail.i2p (alternatively, post in the reseed section on the zzz.i2p forum)
|
||||
Provide us with details about your new reseed server:
|
||||
Contact us per email zzz at mail.i2p (fallback is the reseed section at zzz's forum)
|
||||
Provide us with details about the new
|
||||
<ul>
|
||||
<li>Reseed website URL
|
||||
<li>Public SSL certificate
|
||||
(Only required if selfsigned, which is not recommended. Please use Lets Encrypt or other CA)
|
||||
<li>Public reseed su3 certificate
|
||||
<li>Reseed website URL,
|
||||
<li>Public part of SSL-certificate
|
||||
<li>Public su3-key
|
||||
<li>Your contact email
|
||||
<li>A statement that you agree to the privacy policy above
|
||||
</ul>
|
||||
<p>
|
||||
Feel free to contact zzz at mail.i2p in case of questions or problems or post your question at zzz's forum in the reseed section.
|
||||
|
@ -1,46 +1,114 @@
|
||||
{% extends "global/layout.html" %} {% block title %}{% trans %}Get Involved{% endtrans %}{% endblock %} {% block content %}
|
||||
{% extends "global/layout.html" %}
|
||||
{% block title %}{% trans %}Get Involved{% endtrans %}{% endblock %}
|
||||
{% block content %}
|
||||
<h2>{% trans %}There are many ways you can help I2P.{% endtrans %}</h2>
|
||||
<p>{% trans -%}
|
||||
To get involved, please feel free to join us on the forum, which is available at <a href="https://i2pforum.net">i2pforum.net</a>
|
||||
on the non-private internet and at <a href="http://i2pforum.i2p">i2pforum.i2p</a>
|
||||
inside the I2P network, or to create an account on our project Gitlab <a href="http://git.idk.i2p">inside the I2P network here</a> or <a href="https://i2pgit.org"> on the non-private internet here</a>. If you don't want to create an account on our forum, some
|
||||
of our developers are active Redditors who will talk to you on <a href="https://reddit.com/r/i2p">r/i2p</a> and many of
|
||||
us also operate <a href="https://github.com/">Github</a> accounts where we work on I2P-Related projects, but we do not
|
||||
offer official support for I2P contributions via Github.
|
||||
For real-time chat, there is an IRC network within I2P. Please join the #i2p-dev IRC channel (on
|
||||
irc.freenode.net, irc.oftc.net, or within I2P on irc.echelon.i2p, irc.dg.i2p or irc.postman.i2p).
|
||||
Other contact information is maintained on <a href="{{ team }}">this page</a>.
|
||||
{%- endtrans %}</p>
|
||||
<p>{% trans team=site_url('about/contact') -%}
|
||||
If you're interested in development, <a href="{{ team }}">please get in
|
||||
touch as we're always looking for new contributors.</a>
|
||||
{%- endtrans %}</p>
|
||||
<h3>{% trans %}Join us on our Gitlab{% endtrans %}</h3>
|
||||
<ul>
|
||||
<li><strong><a href="http://git.idk.i2p">{% trans %}Inside I2P - (http://git.idk.i2p){% endtrans %}</a></strong>
|
||||
</li>
|
||||
<li><strong><a href="https://i2pgit.org">{% trans %}Outside I2P - (https://i2pgit.org){% endtrans %}</a></strong>
|
||||
</li>
|
||||
</ul>
|
||||
<p>{% trans -%}
|
||||
We need help in many areas, and you don't need to know Java to contribute.
|
||||
Here's a list to help get you started.
|
||||
{%- endtrans %}</p>
|
||||
<h3>{% trans %}Grow the Community{% endtrans %}</h3>
|
||||
<ul>
|
||||
<li><b>{% trans %}Support I2P Core Development{% endtrans %}</b>{% trans %}The project hosts meetings on the first Tuesday of every month that are open to the community. This is a great opportunity to see what is happening with I2P core development and
|
||||
familiarize yourself with Roadmap tasks. Additionally, protocol development meetings take place every Tuesday and zzz's development forum is available all of the time as a place to participate in development and issues that need fixing. See the
|
||||
new developer's guide for how to get started.{% endtrans %}
|
||||
</li>
|
||||
<li><b>{% trans %}Spread the Word.{% endtrans %}</b> — {% trans -%} Tell people about I2P on forums, blogs, and comments to articles. Fix up the
|
||||
<a href="https://wikipedia.org/wiki/I2P">Wikipedia article about I2P in your language</a>. Tell your friends, and more importantly, use I2P to communicate with your friends. We have many tools that can help you keep your private conversations
|
||||
private. {%- endtrans %}
|
||||
</li>
|
||||
<li><b><a href="{{ newtrans }}">{{ _('Translation and Documentation') }}</a></b> — {% trans newtrans=site_url('get-involved/guides/new-translators') -%} Help translate the website and the software into your language. Translators are a very important
|
||||
part of this decentralized project and your work is always appreciated. See the new translator's guide for details. The project also welcomes support to help keep its documentation updated. See the <a href="{{ newtrans }}">new translator's guide</a> for details. {%- endtrans %}
|
||||
</li>
|
||||
</ul>
|
||||
<li><b>{% trans %}Spread the Word.{% endtrans %}</b> —
|
||||
{% trans -%}
|
||||
Tell people about I2P on forums, blogs, and comments to articles. Fix up the
|
||||
<a href="https://wikipedia.org/wiki/I2P">Wikipedia article about I2P in your language</a>. Tell your friends, and more
|
||||
importantly, use I2P to communicate with your friends. We have many tools that
|
||||
can help you keep your private conversations private.
|
||||
{%- endtrans %}
|
||||
</li><li><b><a href="{{ newtrans }}">{{ _('Translation') }}</a></b> —
|
||||
{% trans newtrans=site_url('get-involved/guides/new-translators') -%}
|
||||
Help translate the website and the software into your language. Translators are
|
||||
a very important part of this decentralized project and your work is always
|
||||
appreciated.
|
||||
See the <a href="{{ newtrans }}">new translator's guide</a> for details.
|
||||
{%- endtrans %}
|
||||
</li><li><b><a href="https://i2pgit.org/i2p-hackers/i2p.www">{{ _('Documentation') }}</a></b> —
|
||||
{% trans -%}
|
||||
Suggest changes to the website, or help fix the parts of the website that you
|
||||
notice are outdated or incomplete. Web Site development has been fully migrated to
|
||||
git, you can participate by creating an account on our project Gitlab
|
||||
<a href="http://git.idk.i2p/i2p-hackers/i2p.www">inside the I2P network here</a> or
|
||||
<a href="https://i2pgit.org/i2p-hackers/i2p.www"> on the non-private internet here</a>. We also always
|
||||
appreciate our wonderful translators, join one of our Transifex teams and help
|
||||
translate pages into other languages.
|
||||
{%- endtrans %}
|
||||
</li><li><b>{{ _('Testing') }}</b> —
|
||||
{% trans monotone=site_url('get-involved/guides/monotone'),
|
||||
trac=i2pconv('trac.i2p2.i2p') -%}
|
||||
Run the latest builds from <a href="{{ monotone }}">monotone</a> or a recent
|
||||
build from the <a href="https://github.com/i2p/i2p.i2p">unofficial github mirror</a>
|
||||
and report results on Gitlab <a href="http://git.idk.i2p/i2p-hackers/i2p.www">inside the I2P network here</a>
|
||||
or <a href="https://i2pgit.org/i2p-hackers/i2p.www"> on the non-private internet here</a>.
|
||||
For existing bugs, <a href="http://{{ trac }}/report/1">Trac</a> is still acceptable.
|
||||
{%- endtrans %}
|
||||
</li></ul>
|
||||
<h3>{% trans %}Host Services for Yourself and Others{% endtrans %}</h3>
|
||||
<ul>
|
||||
<li><b><a href="{{ site_url('/about/software') }}">{{ _('Services') }}</a></b> — {% trans -%} Self-hosting almost anything, from an SSH server for yourself to an ActivityPub forum for everyone and anything in between, is helpful to the I2P network,
|
||||
especially if you write down instructions for others. Almost anything you can think of can be made to work with I2P, and your service is valuable to the network. {%- endtrans %}
|
||||
</li>
|
||||
<li><b><a href="{{ reseed }}">{{ _('Reseeding') }}</a></b> — {% trans reseed=site_url('get-involved/guides/reseed') -%} Getting new users onto the network is a very important task, and that task is handled by our reseed servers. The more reseed
|
||||
servers we have, the more de-centralized and redundant our infrastructure is. It's a big responsibility, but it's pretty easy to set up a reseed server for new routers to bootstrap from. Detailed instructions are on our <a href="{{ reseed }}">reseed server page</a>.
|
||||
{%- endtrans %}
|
||||
</li>
|
||||
<li><b><a href="{{ site_url('/about/software') }}">{{ _('Services') }}</a></b> —
|
||||
{% trans -%}
|
||||
Self-hosting almost anything, from an SSH server for yourself to an ActivityPub
|
||||
forum for everyone and anything in between, is helpful to the I2P network,
|
||||
especially if you write down instructions for others. Almost anything you can
|
||||
think of can be made to work with I2P, and your service is valuable to the network.
|
||||
{%- endtrans %}
|
||||
</li><li><b><a href="{{ reseed }}">{{ _('Reseeding') }}</a></b> —
|
||||
{% trans reseed=site_url('get-involved/guides/reseed') -%}
|
||||
Getting new users onto the network is a very important task, and that task is handled by our reseed servers. The more reseed servers we have, the more de-centralized and redundant our infrastructure is. It's a big responsibility, but it's pretty easy to set up a reseed server for new routers to bootstrap from. Detailed instructions are on our <a href="{{ reseed }}">reseed server page</a>.
|
||||
{%- endtrans %}
|
||||
</li>
|
||||
</ul>
|
||||
<h3>{% trans %}Develop and Test Software{% endtrans %}</h3>
|
||||
<h3>{% trans %}Develop Software{% endtrans %}</h3>
|
||||
<ul>
|
||||
<li><b><a href="{{ site_url('/get-involved/guides/dev-guidelines') }}">{{ _('Applications') }}</a></b> — {% trans apps=site_url('get-involved/develop/applications') -%} Write or port applications for I2P. There's some guidelines and a list of ideas
|
||||
on the <a href="{{ apps }}">applications page</a>. {%- endtrans %}
|
||||
</li>
|
||||
<li><a href="{{ site_url('/get-involved/guides/new-developers') }}"><b>{{ _('Coding') }}</a></b> — {% trans trac=i2pconv('trac.i2p2.i2p'), zzz=i2pconv('zzz.i2p'), newdevs=site_url('get-involved/guides/new-developers') -%} There's plenty to do if
|
||||
you know Java or are ready to learn. Check for open tickets on <a href="http://{{ trac }}/report/1">Trac</a> or the TODO list on <a href="http://{{ zzz }}">{{ zzz }}</a> for some ideas on where to start. See the <a href="{{ newdevs }}">new developer's guide</a> for details. {%- endtrans %}
|
||||
</li>
|
||||
<li><b><a href="{{ site_url('research/index') }}">{{ _('Analysis') }}</b> — {% trans threatmodel=site_url('docs/how/threat-model') -%} Study or test the code to look for vulnerabilities. Both anonymity vulnerabilities from the various
|
||||
<a href="{{ threatmodel }}">threat models</a>, and DOS and other weaknesses due to security holes, benefit from ongoing research. {%- endtrans %}
|
||||
</li>
|
||||
</ul>
|
||||
<h4>{% trans %}When you're ready, join us on our Gitlab{% endtrans %}</h4>
|
||||
<ul>
|
||||
<li><strong><a href="http://git.idk.i2p">{% trans %}Inside I2P - (http://git.idk.i2p){% endtrans %}</a></strong>
|
||||
</li>
|
||||
<li><strong><a href="https://i2pgit.org">{% trans %}Outside I2P - (https://i2pgit.org){% endtrans %}</a></strong>
|
||||
</li>
|
||||
</ul>
|
||||
{% endblock %}
|
||||
<li><b><a href="{{ site_url('/get-involved/guides/dev-guidelines') }}">{{ _('Applications') }}</a></b> —
|
||||
{% trans apps=site_url('get-involved/develop/applications') -%}
|
||||
Write or port applications for I2P. There's some guidelines and
|
||||
a list of ideas on the <a href="{{ apps }}">applications page</a>.
|
||||
{%- endtrans %}
|
||||
</li><li><a href="{{ site_url('/get-involved/guides/new-developers') }}"><b>{{ _('Coding') }}</a></b> —
|
||||
{% trans trac=i2pconv('trac.i2p2.i2p'),
|
||||
zzz=i2pconv('zzz.i2p'),
|
||||
newdevs=site_url('get-involved/guides/new-developers') -%}
|
||||
There's plenty to do if you know Java or are ready to learn.
|
||||
Check for open tickets on <a href="http://{{ trac }}/report/1">Trac</a>
|
||||
or the TODO list on <a href="http://{{ zzz }}">{{ zzz }}</a> for
|
||||
some ideas on where to start.
|
||||
See the <a href="{{ newdevs }}">new developer's guide</a> for details.
|
||||
{%- endtrans %}
|
||||
</li><li><b><a href="{{ site_url('research/index') }}">{{ _('Analysis') }}</b> —
|
||||
{% trans threatmodel=site_url('docs/how/threat-model') -%}
|
||||
Study or test the code to look for vulnerabilities.
|
||||
Both anonymity vulnerabilities from the various
|
||||
<a href="{{ threatmodel }}">threat models</a>, and DOS and other weaknesses due
|
||||
to security holes, benefit from ongoing research.
|
||||
{%- endtrans %}
|
||||
</li></ul>
|
||||
<h3><a href="{{ site_url('get-involved/donate') }}">{% trans %}Donate{% endtrans %}</a></h3>
|
||||
<ul><li><b>
|
||||
<a href="{{ site_url('get-involved/donate') }}">{{ _('Donate') }}</a>: I2P is FOSS - Free Open-Source
|
||||
Software, which is supported by volunteers and by donations. If you use the network, please consider
|
||||
setting a monthly donation to help cover costs for maintainers and developers to keep improving the
|
||||
software and network.
|
||||
</b></li></ul>
|
||||
{% endblock %}
|
||||
|
@ -1,826 +0,0 @@
|
||||
{% extends "global/layout.html" %}
|
||||
{% block title %}{{ _('Roadmap') }}{% endblock %}
|
||||
{% block lastupdated %}2021-12{% endblock %}
|
||||
{% block content %}
|
||||
|
||||
<p>
|
||||
This is an archive of the roadmap for I2P over the course
|
||||
of it's history.
|
||||
</p>
|
||||
|
||||
<h2 id="2016">2016 - 2020 Releases</h2>
|
||||
|
||||
|
||||
<h2 id="v0.9.24">0.9.24</h2>
|
||||
<p><b>Released: January 27, 2016</b></p>
|
||||
<ul><li>
|
||||
SAM v3.2
|
||||
</li><li>
|
||||
Require Java 7
|
||||
</li><li>
|
||||
NetDB Family
|
||||
</li><li>
|
||||
Remove commons-logging
|
||||
</li><li>
|
||||
Use SSU Extended options to request introduction
|
||||
</li><li>
|
||||
Experimental Sybil analysis tool
|
||||
</li><li>
|
||||
Unit test improvements
|
||||
</li><li>
|
||||
Complete transition to Ed25519 signatures for most routers
|
||||
</li><li>
|
||||
Tunnel Bloom filter fixes
|
||||
</li><li>
|
||||
Bug fixes, translation updates, geoip updates
|
||||
</li></ul>
|
||||
|
||||
|
||||
|
||||
|
||||
<h2 id="v0.9.25">0.9.25</h2>
|
||||
<p><b>Released: March 22, 2016</b></p>
|
||||
<ul><li>
|
||||
SAM v3.3
|
||||
</li><li>
|
||||
Sybil tool enhancements
|
||||
</li><li>
|
||||
QR codes and identicons
|
||||
</li><li>
|
||||
Crypto speedups
|
||||
</li><li>
|
||||
Router family configuration UI
|
||||
</li><li>
|
||||
Custom icons for non-webapp plugins
|
||||
</li><li>
|
||||
Pure Java key pair generation
|
||||
</li><li>
|
||||
Bug fixes, translation updates, geoip updates
|
||||
</li></ul>
|
||||
|
||||
|
||||
|
||||
|
||||
<h2 id="v0.9.26">0.9.26</h2>
|
||||
<p><b>Released: June 7, 2016</b></p>
|
||||
<ul><li>
|
||||
New subscription protocol, addressbook support (proposal 112)
|
||||
</li><li>
|
||||
Wrapper 3.5.29
|
||||
</li><li>
|
||||
GMP 6.0 (Debian/Ubuntu packages, new installs)
|
||||
</li><li>
|
||||
Certificate revocations in the news feed
|
||||
</li><li>
|
||||
Debian/Ubuntu/Tails package improvements
|
||||
</li><li>
|
||||
Bug fixes, translation updates, geoip updates
|
||||
</li></ul>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h2 id="v0.9.27">0.9.27</h2>
|
||||
<p><b>Released: October 17, 2016</b></p>
|
||||
<ul><li>
|
||||
SSU IPv6 peer testing (proposal 126)
|
||||
</li><li>
|
||||
Enable tray icon on Windows
|
||||
</li><li>
|
||||
Add outproxy plugin support in SOCKS
|
||||
</li><li>
|
||||
Hidden mode improvements
|
||||
</li><li>
|
||||
SSU peer test fixes
|
||||
</li><li>
|
||||
Initial work on NTCP2
|
||||
</li><li>
|
||||
Initial work on New DH
|
||||
</li><li>
|
||||
GMP 6.0 (In-net updates)
|
||||
</li></ul>
|
||||
|
||||
|
||||
|
||||
<h2 id="v0.9.28">0.9.28</h2>
|
||||
<p><b>Released: December 12, 2016</b></p>
|
||||
<ul><li>
|
||||
IPv6 improvements
|
||||
</li><li>
|
||||
Increase IPv6 MTU (proposal 127)
|
||||
</li><li>
|
||||
Blocklist enhancements (proposal 129)
|
||||
</li><li>
|
||||
Sybil tool enhancements
|
||||
</li><li>
|
||||
Bundled software updates: Jetty, JRobin, Tomcat, Wrapper, Zxing
|
||||
</li><li>
|
||||
Fixes for Java 9
|
||||
</li><li>
|
||||
Improved self-signed certificates
|
||||
</li><li>
|
||||
Bug fixes, translation updates, geoip updates
|
||||
</li></ul>
|
||||
|
||||
|
||||
|
||||
<h2 id="v0.9.29">0.9.29</h2>
|
||||
<p><b>Released: February 27, 2017</b></p>
|
||||
<ul><li>
|
||||
More fixes for Java 9
|
||||
</li><li>
|
||||
NTP hardening and IPv6 support
|
||||
</li><li>
|
||||
Same-origin referer pass through
|
||||
</li><li>
|
||||
BOB database refactor
|
||||
</li><li>
|
||||
Preliminary Docker support
|
||||
</li><li>
|
||||
Translated man pages
|
||||
</li><li>
|
||||
I2PBote release 0.4.5
|
||||
</li><li>
|
||||
stats.i2p accepts authentication strings (proposal #112)
|
||||
</li><li>
|
||||
Streaming test harness
|
||||
</li><li>
|
||||
Bug fixes, translation updates, geoip updates
|
||||
</li></ul>
|
||||
|
||||
|
||||
|
||||
<h2 id="v0.9.30">0.9.30</h2>
|
||||
<p><b>Released: May 3, 2017</b></p>
|
||||
<ul><li>
|
||||
Hidden service server sigtype migration (publish dual LS)
|
||||
</li><li>
|
||||
Tomcat 8 / Jetty 9.2
|
||||
</li><li>
|
||||
Stretch/Zesty support
|
||||
</li><li>
|
||||
i2ptunnel authentication page improvements and fixes
|
||||
</li><li>
|
||||
Introducer expiration (proposal #133)
|
||||
</li><li>
|
||||
I2PBote release 0.4.6
|
||||
</li><li>
|
||||
i2psnark-rpc plugin
|
||||
</li><li>
|
||||
Bug fixes, translation updates, geoip updates
|
||||
</li></ul>
|
||||
|
||||
|
||||
|
||||
<h2 id="v0.9.31">0.9.31</h2>
|
||||
<p><b>Released: August 7, 2017</b></p>
|
||||
<ul><li>
|
||||
Console redesign phase 1 ("refresh") (ticket #738)
|
||||
</li><li>
|
||||
Move /peers HTML code to console, remove from Android
|
||||
</li><li>
|
||||
i2psnark ratings and comments
|
||||
</li><li>
|
||||
Launch I2P Summer of Dev 2
|
||||
</li><li>
|
||||
Bug fixes, translation updates, geoip updates
|
||||
</li></ul>
|
||||
|
||||
|
||||
<h2 id="v0.9.32">0.9.32</h2>
|
||||
<p><b>Released: November 7, 2017</b></p>
|
||||
<ul><li>
|
||||
Ignore hostnames in router infos (proposal #141)
|
||||
</li><li>
|
||||
UI fixes
|
||||
</li><li>
|
||||
Bug fixes, translation updates, geoip updates
|
||||
</li></ul>
|
||||
|
||||
|
||||
|
||||
<h2 id="v0.9.33">0.9.33</h2>
|
||||
<p><b>Released: January 30, 2018</b></p>
|
||||
<ul><li>
|
||||
Reseed support for proxies
|
||||
</li><li>
|
||||
Enable tray app on OSX
|
||||
</li><li>
|
||||
Jetty 9.2.22, Tomcat 8.5.23, Wrapper 3.5.34
|
||||
</li><li>
|
||||
Console CSS fixes and improvements
|
||||
</li><li>
|
||||
Susimail fixes, improvements, refactoring part 1
|
||||
</li><li>
|
||||
Streaming bug fixes
|
||||
</li><li>
|
||||
Android fixes
|
||||
</li><li>
|
||||
Bote fixes
|
||||
</li><li>
|
||||
Debian packaging changes and improvements, dependency changes
|
||||
</li><li>
|
||||
Bug fixes, translation updates, geoip updates
|
||||
</li></ul>
|
||||
|
||||
|
||||
|
||||
<h2 id="0.9.34">0.9.34</h2>
|
||||
<p><b>Released: April 10, 2018</b></p>
|
||||
<ul><li>
|
||||
Susimail fixes, improvements, refactoring part 2
|
||||
</li><li>
|
||||
I2PControl plugin fixed
|
||||
</li><li>
|
||||
UPnP support for IGD 2
|
||||
</li><li>
|
||||
IPv6 address selection improvements
|
||||
</li><li>
|
||||
Better tunnel peer selection for hidden and IPv6-only modes
|
||||
</li><li>
|
||||
Prep for HTTPS console and I2P Site by default
|
||||
</li><li>
|
||||
Prep for splitting up Debian package
|
||||
</li><li>
|
||||
Mac OS X installer, dock, tray enhancements (research and initial work)
|
||||
</li><li>
|
||||
Bug fixes, translation updates, geoip updates
|
||||
</li></ul>
|
||||
|
||||
|
||||
<h2 id="0.9.35">0.9.35</h2>
|
||||
<p><b>Released: June 26, 2018</b></p>
|
||||
<ul><li>
|
||||
Jetty 9.2.24
|
||||
</li><li>
|
||||
Tomcat 8.5.30
|
||||
</li><li>
|
||||
Susimail folders, background sending
|
||||
</li><li>
|
||||
Improved support for SSL console and I2P Site
|
||||
</li><li>
|
||||
Bug fixes, translation updates, geoip updates
|
||||
</li><li>
|
||||
Progress on proposal #111 (NTCP2)
|
||||
</li><li>
|
||||
Progress on Mac OS X installer, dock, tray enhancements
|
||||
</li></ul>
|
||||
|
||||
|
||||
<h2 id="0.9.36">0.9.36</h2>
|
||||
<p><b>Released: August 23, 2018</b></p>
|
||||
<ul><li>
|
||||
NTCP2 (disabled by default)
|
||||
</li><li>
|
||||
Jetty 9.2.25
|
||||
</li><li>
|
||||
Progress on proposal #123
|
||||
(LS2 with multi-destination support)
|
||||
</li><li>
|
||||
Initial research on ElGamal replacement ("new crypto" / proposal #142)
|
||||
</li><li>
|
||||
Capacity improvements: discussions, research, preliminary
|
||||
</li><li>
|
||||
Streaming improvements
|
||||
</li><li>
|
||||
Performance improvements
|
||||
</li><li>
|
||||
NTCP Pumper improvements
|
||||
</li><li>
|
||||
EdDSA updates
|
||||
</li></ul>
|
||||
|
||||
|
||||
|
||||
|
||||
<h2 id="0.9.37">0.9.37</h2>
|
||||
<p><b>Released: October 4, 2018</b></p>
|
||||
<ul><li>
|
||||
NTCP2 (enabled by default)
|
||||
</li><li>
|
||||
Android i2ptunnel SSL crash fix
|
||||
</li></ul>
|
||||
|
||||
|
||||
<h2 id="0.9.38">0.9.38</h2>
|
||||
<p><b>Released: January 22, 2019</b></p>
|
||||
<ul><li>
|
||||
New setup wizard with bandwidth testing
|
||||
</li><li>
|
||||
Beta Mac OS X installer, dock, tray enhancements
|
||||
</li><li>
|
||||
Signed Windows installer
|
||||
</li><li>
|
||||
Signed Firefox profile installer
|
||||
</li><li>
|
||||
Preliminary floodfill support for LS2
|
||||
</li><li>
|
||||
Sybil tool background analysis
|
||||
</li><li>
|
||||
Switch to Maxmind GeoLite2 GeoIP format
|
||||
</li><li>
|
||||
Switch JSON lib to json-simple, add Debian dependency
|
||||
</li><li>
|
||||
New light background
|
||||
</li><li>
|
||||
Orchid plugin fixes
|
||||
</li><li>
|
||||
AppArmor fixes
|
||||
</li><li>
|
||||
Continue work on ECIES-X25519 support (proposal #144)
|
||||
</li></ul>
|
||||
|
||||
|
||||
|
||||
<h2 id="0.9.39">0.9.39</h2>
|
||||
<p><b>Released: March 21, 2019</b></p>
|
||||
<ul><li>
|
||||
Redesigned website home page
|
||||
</li><li>
|
||||
Reduce themes (ticket #2272)
|
||||
</li><li>
|
||||
Replacement icons for console home page
|
||||
</li><li>
|
||||
Continue work on testnet
|
||||
</li><li>
|
||||
Floodfill and client encrypted LS2 support (proposal #123)
|
||||
</li><li>
|
||||
LS2 client-side support (proposal #123)
|
||||
</li><li>
|
||||
Add option to disable NTCP1
|
||||
</li><li>
|
||||
Bundle i2pcontrol
|
||||
</li><li>
|
||||
AppArmor fixes
|
||||
</li><li>
|
||||
starting investigation of zerodeps jre
|
||||
</li><li>
|
||||
starting investigation of monolithic installer
|
||||
</li><li>
|
||||
Have apt-transport-i2p and all of its dependencies on-track for inclusion in Debian
|
||||
(sam3 and gosam, the Go i2p application libraries), include in PPA/Project repo
|
||||
</li><li>
|
||||
Write beginner application development guides for SAM applications
|
||||
</li><li>
|
||||
Start community PPA and application development (sub)forums
|
||||
</li><li>
|
||||
Write materials for newbies on Medium
|
||||
</li><li>
|
||||
Complete preferences dialog on the OSX Launcher
|
||||
</li><li>
|
||||
Feature for running devbuilds with OSX Launcher
|
||||
</li></ul>
|
||||
|
||||
|
||||
|
||||
<h2 id="0.9.40">0.9.40</h2>
|
||||
<p><b>Released: May 7, 2019</b></p>
|
||||
<ul><li>
|
||||
New icons
|
||||
</li><li>
|
||||
I2CP and router support for decrypting LS2 (proposal #123)
|
||||
</li><li>
|
||||
Router decryption of LS2 support (proposal #123)
|
||||
</li><li>
|
||||
Router-side meta LS2 support (proposal #123)
|
||||
</li><li>
|
||||
Continue work on ECIES-X25519 support (proposal #144)
|
||||
</li><li>
|
||||
Start work on Network ID detection (proposal #147)
|
||||
</li><li>
|
||||
Start work on BLAKE2b sig types (proposal #148)
|
||||
</li><li>
|
||||
Implement base 32 for encrypted LS2 (proposal #149)
|
||||
</li><li>
|
||||
Document protocol for meta LS2 backend (proposal #150)
|
||||
</li><li>
|
||||
Disable NTCP1
|
||||
</li><li>
|
||||
Signed Windows installer
|
||||
</li><li>
|
||||
Scripted connection filter for streaming
|
||||
</li><li>
|
||||
geti2p/i2p docker image available at our download page
|
||||
</li><li>
|
||||
osx: theme selection
|
||||
</li><li>
|
||||
osx: auto updater
|
||||
</li><li>
|
||||
osx: upgrade to newer swift version
|
||||
</li><li>
|
||||
Browser identity management UI WebExtension for i2p Browser build
|
||||
</li><li>
|
||||
Browser tunnel identity management UI WebExtension for i2p Browser build
|
||||
</li><li>
|
||||
Browser news/documentation inclusion WebExtension for i2p Browser build
|
||||
</li><li>
|
||||
Onboarding improvements
|
||||
</li><li>
|
||||
Self-installing client/service demos for nginx(server only), ssh/sshd, and Mattermost client/server using split i2ptunnel configuration and apt
|
||||
</li><li>
|
||||
Port any maintainable, i2p-native bittorrent client to be apt-get installable in Debian, likely BiglyBT or XD
|
||||
</li><li>
|
||||
Produce ISO for "I2P Linux Distro Redux" Project using these features
|
||||
</li><li>
|
||||
Fix I2P-bote Android
|
||||
</li><li>
|
||||
Fix I2P-bote seeds
|
||||
</li><li>
|
||||
goSam - Up to SAM 3.2, better default signatures.
|
||||
</li><li>
|
||||
sam3 - Up to SAM 3.2, better default signatures. Streaming, datagrams, and raw. General improvements.
|
||||
</li><li>
|
||||
jsam - Further development
|
||||
</li><li>
|
||||
Better support / encourage translation efforts
|
||||
</li><li>
|
||||
Android fixes
|
||||
</li></ul>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h2 id="0.9.41">0.9.41</h2>
|
||||
<p><b>Released: July 3, 2019</b></p>
|
||||
<ul><li>
|
||||
Redesigned website navigation menu
|
||||
</li><li>
|
||||
New console icons and logos
|
||||
</li><li>
|
||||
Router-side meta LS2 support (proposal #123)
|
||||
</li><li>
|
||||
UI for per-client encrypted LS2 (proposal #123)
|
||||
</li><li>
|
||||
Continue work on ECIES-X25519 support (proposal #144)
|
||||
</li><li>
|
||||
Implement base 32 for encrypted LS2 (proposal #149)
|
||||
</li><li>
|
||||
GMP 6.1.2 (ticket #1869), partial
|
||||
</li><li>
|
||||
Wrapper 3.5.39
|
||||
</li><li>
|
||||
Wrapper for armv7 and aarch64
|
||||
</li><li>
|
||||
IzPack 5 for non-Windows installers
|
||||
</li><li>
|
||||
browser: new release, upstream tor changes, minor changes
|
||||
</li><li>
|
||||
Browser identity management UI WebExtension for i2p Browser build
|
||||
</li><li>
|
||||
Browser news/documentation inclusion WebExtension for i2p Browser build
|
||||
</li><li>
|
||||
Android GMP 6 and 64-bit jbigi
|
||||
</li><li>
|
||||
Android fixes
|
||||
</li></ul>
|
||||
|
||||
|
||||
|
||||
<h2 id="0.9.42">0.9.42</h2>
|
||||
<p><b>Released: August 27, 2019</b></p>
|
||||
<ul><li>
|
||||
Browser web extensions
|
||||
</li><li>
|
||||
Self-installing demos of popular apps/services
|
||||
</li><li>
|
||||
ISO for Linux distro
|
||||
</li><li>
|
||||
Translation efforts
|
||||
</li><li>
|
||||
ECIES Proposal 144 (continuing)
|
||||
</li><li>
|
||||
GMP 6.1.2
|
||||
</li><li>
|
||||
Network ID detection Prop 147
|
||||
</li><li>
|
||||
Split configuration
|
||||
</li><li>
|
||||
Android fixes
|
||||
</li></ul>
|
||||
|
||||
|
||||
|
||||
<h2 id="0.9.43">0.9.43</h2>
|
||||
<p><b>Released: October 22, 2019</b></p>
|
||||
<ul><li>
|
||||
Docker image documentation and promotion to first-class product
|
||||
</li><li>
|
||||
I2P browser: Embed router
|
||||
</li><li>
|
||||
I2P browser: Delay the user dialog
|
||||
</li><li>
|
||||
I2P browser: JSON-RPC2 client for router communication
|
||||
</li><li>
|
||||
I2P browser: Fix NoScript
|
||||
</li><li>
|
||||
I2P browser releases: beta 5, 6; v3.0 based on 68.1 ESR
|
||||
</li><li>
|
||||
I2CP blinding info message
|
||||
</li><li>
|
||||
Proxy page for encrypted LS2 credentials
|
||||
</li><li>
|
||||
Android client library release
|
||||
</li><li>
|
||||
ECIES Proposal 144 (continuing)
|
||||
</li><li>
|
||||
Setup wizard improvements
|
||||
</li><li>
|
||||
Revamped website navigation menu
|
||||
</li><li>
|
||||
Android fixes
|
||||
</li><li>
|
||||
Android battery permission
|
||||
</li></ul>
|
||||
|
||||
|
||||
<h2 id="0.9.44">0.9.44</h2>
|
||||
<p><b>Released: December 1, 2019</b></p>
|
||||
<ul><li>
|
||||
Testnet k8s definitions
|
||||
</li><li>
|
||||
ruby gem (ji2p, initial code to be used to control many routers in k8s)
|
||||
</li><li>
|
||||
k8s internal communication test with routers using network impl. flannel
|
||||
</li><li>
|
||||
k8s ingress definitions (how to make outside contact the router(s) inside k8s)
|
||||
</li><li>
|
||||
I2P Browser: See <a href="../browser/roadmap">Browser roadmap</a>
|
||||
</li><li>
|
||||
IPv6 fixes
|
||||
</li><li>
|
||||
SSU performance improvements
|
||||
</li><li>
|
||||
Faster router startup
|
||||
</li><li>
|
||||
Console improvements
|
||||
</li><li>
|
||||
ECIES Proposal 144 initial implementation
|
||||
</li><li>
|
||||
Donation page redesign and backend (development)
|
||||
</li></ul>
|
||||
|
||||
|
||||
|
||||
<h2 id="0.9.45">0.9.45</h2>
|
||||
<p><b>Released: February 25, 2020</b></p>
|
||||
<ul><li>
|
||||
Hidden mode fixes
|
||||
</li><li>
|
||||
Bandwidth test fixes
|
||||
</li><li>
|
||||
ECIES Proposal 144 testing, fixes
|
||||
</li><li>
|
||||
Susimail login page improvements
|
||||
</li><li>
|
||||
LibSam - deduplication, documentation, support
|
||||
</li><li>
|
||||
Console theme modernization(Light and Dark)
|
||||
</li><li>
|
||||
Consistency with modern themes for SusiDNS, SusiMail apps
|
||||
</li><li>
|
||||
Leftover light theme nits
|
||||
<ul><li>
|
||||
border colours that are still present
|
||||
</li><li>
|
||||
download sidebar status is still gradient filled
|
||||
</li><li>
|
||||
take out network status icons? Replace with colours from style guide?
|
||||
</li><li>
|
||||
go over icons on every page and evaluate
|
||||
</li><li>
|
||||
try I2P blue icons on /home
|
||||
</li><li>
|
||||
buttons / tabs consistency
|
||||
</li></ul>
|
||||
</li><li>
|
||||
Dark Theme
|
||||
<ul><li>
|
||||
Carry over tabs/ buttons decisions
|
||||
</li><li>
|
||||
decide on theme colour
|
||||
</li></ul>
|
||||
</li><li>
|
||||
Susi Mail Light & Dark
|
||||
<ul><li>
|
||||
Remove icon bloat
|
||||
</li><li>
|
||||
make buttons rounded
|
||||
</li><li>
|
||||
remove gradient on login page
|
||||
</li><li>
|
||||
add a product description to login page
|
||||
</li><li>
|
||||
**change icon colours for themes
|
||||
</li></ul>
|
||||
</li></ul>
|
||||
|
||||
|
||||
|
||||
<h2 id="0.9.46">0.9.46</h2>
|
||||
<p><b>Released: May 25, 2020</b></p>
|
||||
<ul><li>
|
||||
Replace jrobin with rrd4j
|
||||
</li><li>
|
||||
ECIES Proposal 144 testing, fixes, completion
|
||||
</li><li>
|
||||
ECIES lookup replies
|
||||
</li><li>
|
||||
i2ptunnel edit page redesign
|
||||
</li><li>
|
||||
Streaming performance improvements
|
||||
</li><li>
|
||||
Start migrating deb.i2p2.no
|
||||
</li><li>
|
||||
Android fixes
|
||||
</li><li>
|
||||
Long-term strategy for website
|
||||
</li><li>
|
||||
Identity and Values Workshops
|
||||
</li><li>
|
||||
Branding Foundations Work
|
||||
</li><li>
|
||||
Information Architecture Sprint : Console and Website
|
||||
</li><li>
|
||||
Console Interface Redesign prototypes
|
||||
</li><li>
|
||||
Console Interface Usability Testing
|
||||
</li><li>
|
||||
Reproducible build fix
|
||||
</li><li>
|
||||
Streaming fixes
|
||||
</li><li>
|
||||
UPnP fixes
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
<h2 id="0.9.47">0.9.47</h2>
|
||||
<p><b>Released: August 24, 2020</b></p>
|
||||
<ul><li>
|
||||
Require Java 8
|
||||
</li><li>
|
||||
Jetty 9.3.x
|
||||
</li><li>
|
||||
json-simple 2.3.0
|
||||
</li><li>
|
||||
RRD4j 3.6
|
||||
</li><li>
|
||||
ECIES enabled by default for some tunnels
|
||||
</li><li>
|
||||
Increase streaming MTU for ECIES connections
|
||||
</li><li>
|
||||
Enable Sybil analysis and blocking by default
|
||||
</li><li>
|
||||
Begin transition to Git
|
||||
</li><li>
|
||||
Improvements to the Bandwidth Setup/Welcome Wizard imagery and text
|
||||
</li><li>
|
||||
Ongoing refinements to new dark and light theme
|
||||
</li><li>
|
||||
Find and replace inconsistent icons from the router console
|
||||
</li><li>
|
||||
Bug Fixes on Android versions later than 8.0
|
||||
</li><li>
|
||||
Hide empty sections on router console home page
|
||||
</li><li>
|
||||
Operators guides for reseed services
|
||||
</li><li>
|
||||
Detailed install guide for the main I2P Java distribution
|
||||
</li><li>
|
||||
Begin implementing Information Architecture improvements to geti2p.net
|
||||
</li><li>
|
||||
Identify and Publish information about critical infrastructures(VCS, website, reseeds, repositories, mirrors)
|
||||
</li><li>
|
||||
Publish log retention policy Recommendations and Guidelines for service admins
|
||||
</li><li>
|
||||
In depth blog entries on: Site Hosting/Service operation, Project Services, Policy Recommendations
|
||||
</li><li>
|
||||
Release(Tag)-time "git bundle" generation and distribution by either HTTP or Bittorrent.
|
||||
</li></ul>
|
||||
|
||||
<h2 id="0.9.48">0.9.48</h2>
|
||||
<p><b>Released: December 1, 2020</b></p>
|
||||
<ul><li>
|
||||
ECIES router tunnel build record
|
||||
</li><li>
|
||||
Avoid old DSA-SHA1 routers
|
||||
</li><li>
|
||||
Block same-country connections when in hidden mode
|
||||
</li><li>
|
||||
Deprecate BOB
|
||||
</li><li>
|
||||
Drop support for Xenial
|
||||
</li><li>
|
||||
Ratchet efficiency improvements and memory reduction
|
||||
</li><li>
|
||||
Randomize SSU intro key
|
||||
</li><li>
|
||||
Enable system tray for Linux KDE and LXDE
|
||||
</li><li>
|
||||
More SSU performance improvements
|
||||
</li><li>
|
||||
Continue transition to Git
|
||||
</li><li>
|
||||
Operators guides for reseed services
|
||||
</li><li>
|
||||
Windows Installer "Install as Windows Service" bugfixes and improvements.
|
||||
</li><li>
|
||||
Implement controlled vocabuary as part of Information Architecture improvements
|
||||
</li><li>
|
||||
Alternate destination header/meta tag for web sites offering I2P mirrors
|
||||
</li><li>
|
||||
Snark in the Browser: Use torrents as alternates sources for resources embedded in an I2P Site
|
||||
</li><li>
|
||||
Snark in the Browser: Demo a torrent-backed web page
|
||||
</li><li>
|
||||
finish ji2p-cluster which adds the k8s part of the code
|
||||
</li><li>
|
||||
Publish reasonable contact information for infrastructure admins
|
||||
</li></ul>
|
||||
|
||||
|
||||
|
||||
<h2 id="0.9.49">0.9.49</h2>
|
||||
<p><b>Released: February 17, 2021</b></p>
|
||||
<ul><li>
|
||||
SSU send individual fragments
|
||||
</li><li>
|
||||
SSU Westwood+
|
||||
</li><li>
|
||||
SSU fast retransmit
|
||||
</li><li>
|
||||
SSU fix partial acks
|
||||
</li><li>
|
||||
ECIES router encrypted messages
|
||||
</li><li>
|
||||
Start rekeying routers to ECIES
|
||||
</li><li>
|
||||
Start work on new tunnel build message (proposal 157)
|
||||
</li><li>
|
||||
More SSU performance improvements
|
||||
</li><li>
|
||||
i2psnark webseed support
|
||||
</li><li>
|
||||
Start work on i2psnark hybrid v2 support
|
||||
</li><li>
|
||||
Move web resources to wars
|
||||
</li><li>
|
||||
Move resources to jars
|
||||
</li><li>
|
||||
Fix Gradle build
|
||||
</li><li>
|
||||
Hidden mode fixes
|
||||
</li><li>
|
||||
Change DoH to RFC 8484
|
||||
</li><li>
|
||||
Fix "Start on Boot" support on Android
|
||||
</li><li>
|
||||
Add support for copying b32 addresses from the tunnels panel on I2P for Android client
|
||||
</li><li>
|
||||
Add SAMv3 Support to I2P for Android
|
||||
</li><li>
|
||||
Revise CSS on the default I2P Site to resemble console Light theme
|
||||
</li><li>
|
||||
Document setup/configuration of default I2P site on the project site
|
||||
</li><li>
|
||||
Add icons and symbols used in I2P router console Light theme to router console Dark theme
|
||||
</li><li>
|
||||
Complete transition to Git
|
||||
</li><li>
|
||||
Donation page redesign and backend (deployment)
|
||||
</li><li>
|
||||
Review and update information about VCS, Code Repositories, and Mirrors across the entire website.
|
||||
</li></ul>
|
||||
|
||||
|
||||
|
||||
<h2 id="0.9.50">0.9.50</h2>
|
||||
<p><b>Released: May 18, 2021</b></p>
|
||||
<ul><li>
|
||||
Accelerate rekeying routers to ECIES
|
||||
</li><li>
|
||||
UPnP IPv6 support
|
||||
</li><li>
|
||||
4/6 router address caps (proposal 158)
|
||||
</li><li>
|
||||
IPv6 introducers (proposal 158)
|
||||
</li><li>
|
||||
NTP year 2036 fixes
|
||||
</li><li>
|
||||
Continue work on new tunnel build message (proposal 157)
|
||||
</li><li>
|
||||
Enable DoH for reseeding
|
||||
</li><li>
|
||||
Docker improvements
|
||||
</li><li>
|
||||
SSU IPv6 fixes
|
||||
</li><li>
|
||||
Persist Sybil blocklist
|
||||
</li><li>
|
||||
Tunnel bandwidth limiter fixes
|
||||
</li></ul>
|
||||
|
||||
{% endblock %}
|
File diff suppressed because it is too large
Load Diff
@ -22,7 +22,7 @@ as a replacement for the
|
||||
As modPow() is a significant computational portion of many crypto operations, this is of significant benefit.
|
||||
{%- endtrans %}</p>
|
||||
|
||||
<p>{% trans nativebigint='http://'+i2pconv('idk.i2p/javadoc-i2p')+'/net/i2p/util/NativeBigInteger.html',
|
||||
<p>{% trans nativebigint='http://'+i2pconv('echelon.i2p/javadoc')+'/net/i2p/util/NativeBigInteger.html',
|
||||
bigint='http://download.oracle.com/javase/1.5.0/docs/api/java/math/BigInteger.html#modPow%28java.math.BigInteger,%20java.math.BigInteger%29' -%}
|
||||
The standard I2P installation includes about 20 versions of the library for different platforms,
|
||||
each about 50KB, inside the jbigi.jar file.
|
||||
|
@ -13,7 +13,7 @@ documents that track changes to these specifications can be viewed
|
||||
"Last updated" is the last date when the specification given within a document
|
||||
was altered in any way, except for changes to the "accurate for" information.
|
||||
</li><li>
|
||||
The "accurate for" column gives the API version of the I2P network and reference
|
||||
The "accurate for" column gives the version of the I2P network and reference
|
||||
Java implementation that the document is verified to be valid for. Because the
|
||||
documents are usually only updated when changes are made, the listed versions
|
||||
can sometimes be several releases behind. This does not mean that documents with
|
||||
@ -52,21 +52,15 @@ If you find any inaccuracies in the documents linked below, please
|
||||
|
||||
<h3>Other specification documents</h3>
|
||||
|
||||
Current specifications: These may eventually be migrated to the new format.
|
||||
These will eventually be migrated to the new specifications system.
|
||||
|
||||
<ul>
|
||||
<li><a href="{{ site_url('docs/how/elgamal-aes') }}">{{ _('ElGamal/AES+SessionTags') }}</a></li>
|
||||
<li><a href="{{ site_url('docs/transport/ntcp') }}">NTCP</a></li>
|
||||
<li><a href="{{ site_url('docs/api/i2pcontrol') }}">I2PControl</a></li>
|
||||
<li><a href="{{ site_url('docs/api/samv3') }}">SAM v3</a></li>
|
||||
<li><a href="{{ site_url('docs/api/bob') }}">BOB</a></li>
|
||||
<li><a href="{{ site_url('docs/applications/bittorrent') }}">{{ _('Bittorrent') }}</a></li>
|
||||
<li><a href="{{ site_url('docs/naming') }}">{{ _('Naming and Address Book') }}</a></li>
|
||||
</ul>
|
||||
|
||||
Obsolete specifications:
|
||||
|
||||
<ul>
|
||||
<li><a href="{{ site_url('docs/transport/ntcp') }}">NTCP</a></li>
|
||||
<li><a href="{{ site_url('docs/api/bob') }}">BOB</a></li>
|
||||
</ul>
|
||||
|
||||
{% endblock %}
|
||||
|
@ -2,7 +2,6 @@
|
||||
B32 for Encrypted Leasesets
|
||||
===========================
|
||||
.. meta::
|
||||
:category: Design
|
||||
:lastupdated: 2020-08
|
||||
:accuratefor: 0.9.47
|
||||
|
||||
|
@ -2,7 +2,6 @@
|
||||
Blockfile and Hosts Database Specification
|
||||
==========================================
|
||||
.. meta::
|
||||
:category: Formats
|
||||
:lastupdated: 2020-09
|
||||
:accuratefor: 0.9.47
|
||||
|
||||
|
@ -94,7 +94,7 @@ P521 132 TBD Reserved, see proposal 145
|
||||
X25519 32 0.9.38 Little-endian. See [ECIES]_ and [ECIES-ROUTERS]_
|
||||
======= ============== ====== =====
|
||||
|
||||
JavaDoc: http://{{ i2pconv('idk.i2p/javadoc-i2p') }}/net/i2p/data/PublicKey.html
|
||||
JavaDoc: http://{{ i2pconv('echelon.i2p/javadoc') }}/net/i2p/data/PublicKey.html
|
||||
|
||||
.. _type-PrivateKey:
|
||||
|
||||
@ -126,7 +126,7 @@ P521 66 TBD Reserved, see proposal 145
|
||||
X25519 32 0.9.38 Little-endian. See [ECIES]_ and [ECIES-ROUTERS]_
|
||||
======= ============== ====== =====
|
||||
|
||||
JavaDoc: http://{{ i2pconv('idk.i2p/javadoc-i2p') }}/net/i2p/data/PrivateKey.html
|
||||
JavaDoc: http://{{ i2pconv('echelon.i2p/javadoc') }}/net/i2p/data/PrivateKey.html
|
||||
|
||||
.. _type-SessionKey:
|
||||
|
||||
@ -141,7 +141,7 @@ Contents
|
||||
````````
|
||||
32 bytes
|
||||
|
||||
JavaDoc: http://{{ i2pconv('idk.i2p/javadoc-i2p') }}/net/i2p/data/SessionKey.html
|
||||
JavaDoc: http://{{ i2pconv('echelon.i2p/javadoc') }}/net/i2p/data/SessionKey.html
|
||||
|
||||
.. _type-SigningPublicKey:
|
||||
|
||||
@ -182,7 +182,7 @@ Notes
|
||||
* All types are Big Endian, except for EdDSA and RedDSA, which are stored and transmitted
|
||||
in a Little Endian format.
|
||||
|
||||
JavaDoc: http://{{ i2pconv('idk.i2p/javadoc-i2p') }}/net/i2p/data/SigningPublicKey.html
|
||||
JavaDoc: http://{{ i2pconv('echelon.i2p/javadoc') }}/net/i2p/data/SigningPublicKey.html
|
||||
|
||||
.. _type-SigningPrivateKey:
|
||||
|
||||
@ -222,7 +222,7 @@ Notes
|
||||
* All types are Big Endian, except for EdDSA and RedDSA, which are stored and transmitted
|
||||
in a Little Endian format.
|
||||
|
||||
JavaDoc: http://{{ i2pconv('idk.i2p/javadoc-i2p') }}/net/i2p/data/SigningPrivateKey.html
|
||||
JavaDoc: http://{{ i2pconv('echelon.i2p/javadoc') }}/net/i2p/data/SigningPrivateKey.html
|
||||
|
||||
.. _type-Signature:
|
||||
|
||||
@ -263,7 +263,7 @@ Notes
|
||||
* All types are Big Endian, except for EdDSA and RedDSA, which are stored and transmitted
|
||||
in a Little Endian format.
|
||||
|
||||
JavaDoc: http://{{ i2pconv('idk.i2p/javadoc-i2p') }}/net/i2p/data/Signature.html
|
||||
JavaDoc: http://{{ i2pconv('echelon.i2p/javadoc') }}/net/i2p/data/Signature.html
|
||||
|
||||
.. _type-Hash:
|
||||
|
||||
@ -278,7 +278,7 @@ Contents
|
||||
````````
|
||||
32 bytes
|
||||
|
||||
JavaDoc: http://{{ i2pconv('idk.i2p/javadoc-i2p') }}/net/i2p/data/Hash.html
|
||||
JavaDoc: http://{{ i2pconv('echelon.i2p/javadoc') }}/net/i2p/data/Hash.html
|
||||
|
||||
.. _type-SessionTag:
|
||||
|
||||
@ -296,7 +296,7 @@ Contents
|
||||
````````
|
||||
32 bytes
|
||||
|
||||
JavaDoc: http://{{ i2pconv('idk.i2p/javadoc-i2p') }}/net/i2p/data/SessionTag.html
|
||||
JavaDoc: http://{{ i2pconv('echelon.i2p/javadoc') }}/net/i2p/data/SessionTag.html
|
||||
|
||||
.. _type-TunnelId:
|
||||
|
||||
@ -313,7 +313,7 @@ Contents
|
||||
````````
|
||||
4 byte Integer_
|
||||
|
||||
JavaDoc: http://{{ i2pconv('idk.i2p/javadoc-i2p') }}/net/i2p/data/TunnelId.html
|
||||
JavaDoc: http://{{ i2pconv('echelon.i2p/javadoc') }}/net/i2p/data/TunnelId.html
|
||||
|
||||
.. _type-Certificate:
|
||||
|
||||
@ -490,7 +490,7 @@ EdDSA_SHA512_Ed25519 96 0
|
||||
EdDSA_SHA512_Ed25519ph 96 0
|
||||
====================== ============== ===============================
|
||||
|
||||
JavaDoc: http://{{ i2pconv('idk.i2p/javadoc-i2p') }}/net/i2p/data/Certificate.html
|
||||
JavaDoc: http://{{ i2pconv('echelon.i2p/javadoc') }}/net/i2p/data/Certificate.html
|
||||
|
||||
Notes
|
||||
`````
|
||||
@ -572,7 +572,7 @@ Notes
|
||||
|
||||
.. _I2CP SessionConfig: {{ site_url('docs/spec/i2cp') }}#struct_SessionConfig
|
||||
|
||||
JavaDoc: http://{{ i2pconv('idk.i2p/javadoc-i2p') }}/net/i2p/data/DataHelper.html
|
||||
JavaDoc: http://{{ i2pconv('echelon.i2p/javadoc') }}/net/i2p/data/DataHelper.html
|
||||
|
||||
|
||||
Common structure specification
|
||||
@ -647,7 +647,7 @@ Notes
|
||||
* The Crypto Public Key is aligned at the start and the Signing Public Key is
|
||||
aligned at the end. The padding (if any) is in the middle.
|
||||
|
||||
JavaDoc: http://{{ i2pconv('idk.i2p/javadoc-i2p') }}/net/i2p/data/KeysAndCert.html
|
||||
JavaDoc: http://{{ i2pconv('echelon.i2p/javadoc') }}/net/i2p/data/KeysAndCert.html
|
||||
|
||||
.. _struct-RouterIdentity:
|
||||
|
||||
@ -680,7 +680,7 @@ Notes
|
||||
are supported as of release 0.9.48.
|
||||
Prior to that, all RouterIdentities were ElGamal.
|
||||
|
||||
JavaDoc: http://{{ i2pconv('idk.i2p/javadoc-i2p') }}/net/i2p/data/router/RouterIdentity.html
|
||||
JavaDoc: http://{{ i2pconv('echelon.i2p/javadoc') }}/net/i2p/data/router/RouterIdentity.html
|
||||
|
||||
.. _struct-Destination:
|
||||
|
||||
@ -713,7 +713,7 @@ Notes
|
||||
* The Crypto Public Key is aligned at the start and the Signing Public Key is
|
||||
aligned at the end. The padding (if any) is in the middle.
|
||||
|
||||
JavaDoc: http://{{ i2pconv('idk.i2p/javadoc-i2p') }}/net/i2p/data/Destination.html
|
||||
JavaDoc: http://{{ i2pconv('echelon.i2p/javadoc') }}/net/i2p/data/Destination.html
|
||||
|
||||
.. _struct-Lease:
|
||||
|
||||
@ -761,7 +761,7 @@ Notes
|
||||
`````
|
||||
* Total size: 44 bytes
|
||||
|
||||
JavaDoc: http://{{ i2pconv('idk.i2p/javadoc-i2p') }}/net/i2p/data/Lease.html
|
||||
JavaDoc: http://{{ i2pconv('echelon.i2p/javadoc') }}/net/i2p/data/Lease.html
|
||||
|
||||
.. _struct-LeaseSet:
|
||||
|
||||
@ -901,7 +901,7 @@ Notes
|
||||
publishes the actual lease expiration for each lease. This is an
|
||||
implementation detail and not part of the structures specification.
|
||||
|
||||
JavaDoc: http://{{ i2pconv('idk.i2p/javadoc-i2p') }}/net/i2p/data/LeaseSet.html
|
||||
JavaDoc: http://{{ i2pconv('echelon.i2p/javadoc') }}/net/i2p/data/LeaseSet.html
|
||||
|
||||
|
||||
.. _struct-Lease2:
|
||||
@ -953,7 +953,7 @@ Notes
|
||||
`````
|
||||
* Total size: 40 bytes
|
||||
|
||||
JavaDoc: http://{{ i2pconv('idk.i2p/javadoc-i2p') }}/net/i2p/data/Lease2.html
|
||||
JavaDoc: http://{{ i2pconv('echelon.i2p/javadoc') }}/net/i2p/data/Lease2.html
|
||||
|
||||
|
||||
|
||||
@ -1220,7 +1220,7 @@ Notes
|
||||
may parse the structure even if not all encryption types are known or supported.
|
||||
|
||||
|
||||
JavaDoc: http://{{ i2pconv('idk.i2p/javadoc-i2p') }}/net/i2p/data/LeaseSet2.html
|
||||
JavaDoc: http://{{ i2pconv('echelon.i2p/javadoc') }}/net/i2p/data/LeaseSet2.html
|
||||
|
||||
|
||||
.. _struct-MetaLease:
|
||||
@ -1284,7 +1284,7 @@ Notes
|
||||
`````
|
||||
* Total size: 40 bytes
|
||||
|
||||
JavaDoc: http://{{ i2pconv('idk.i2p/javadoc-i2p') }}/net/i2p/data/MetaLease.html
|
||||
JavaDoc: http://{{ i2pconv('echelon.i2p/javadoc') }}/net/i2p/data/MetaLease.html
|
||||
|
||||
|
||||
|
||||
@ -1401,7 +1401,7 @@ Notes
|
||||
is included in the leaseset2 header.
|
||||
|
||||
|
||||
JavaDoc: http://{{ i2pconv('idk.i2p/javadoc-i2p') }}/net/i2p/data/MetaLeaseSet.html
|
||||
JavaDoc: http://{{ i2pconv('echelon.i2p/javadoc') }}/net/i2p/data/MetaLeaseSet.html
|
||||
|
||||
|
||||
|
||||
@ -1526,7 +1526,7 @@ Notes
|
||||
|
||||
.. _EncryptedLeaseSet: {{ site_url('docs/spec/encryptedleaseset') }}
|
||||
|
||||
JavaDoc: http://{{ i2pconv('idk.i2p/javadoc-i2p') }}/net/i2p/data/EncryptedLeaseSet.html
|
||||
JavaDoc: http://{{ i2pconv('echelon.i2p/javadoc') }}/net/i2p/data/EncryptedLeaseSet.html
|
||||
|
||||
|
||||
|
||||
@ -1600,7 +1600,7 @@ Notes
|
||||
present in most router addresses: "host" (an IPv4 or IPv6 address or host
|
||||
name) and "port".
|
||||
|
||||
JavaDoc: http://{{ i2pconv('idk.i2p/javadoc-i2p') }}/net/i2p/data/router/RouterAddress.html
|
||||
JavaDoc: http://{{ i2pconv('echelon.i2p/javadoc') }}/net/i2p/data/router/RouterAddress.html
|
||||
|
||||
.. _struct-RouterInfo:
|
||||
|
||||
@ -1708,7 +1708,7 @@ Notes
|
||||
so the signature is invariant.
|
||||
This is no longer required, and not worth implementing for backward compatibility.
|
||||
|
||||
JavaDoc: http://{{ i2pconv('idk.i2p/javadoc-i2p') }}/net/i2p/data/router/RouterInfo.html
|
||||
JavaDoc: http://{{ i2pconv('echelon.i2p/javadoc') }}/net/i2p/data/router/RouterInfo.html
|
||||
|
||||
.. _struct-DeliveryInstructions:
|
||||
|
||||
|
@ -2,7 +2,6 @@
|
||||
Configuration File Specification
|
||||
================================
|
||||
.. meta::
|
||||
:category: Formats
|
||||
:lastupdated: March 2020
|
||||
:accuratefor: 0.9.45
|
||||
|
||||
@ -125,12 +124,6 @@ uninstallargs, and classpath lines, for plugins only:
|
||||
$PLUGIN
|
||||
This plugin's directory (e.g. ~/.i2p/plugins/foo)
|
||||
|
||||
$OS
|
||||
The operating system name (e.g. "linux")
|
||||
|
||||
$ARCH
|
||||
The architecture name (e.g. "amd64")
|
||||
|
||||
All properties except "main" are optional. Lines starting with "#" are
|
||||
comments.
|
||||
|
||||
@ -493,7 +486,7 @@ References
|
||||
==========
|
||||
|
||||
.. [DATAHELPER]
|
||||
http://{{ i2pconv('idk.i2p/javadoc-i2p') }}/net/i2p/data/DataHelper.html
|
||||
http://{{ i2pconv('echelon.i2p/javadoc') }}/net/i2p/data/DataHelper.html
|
||||
|
||||
.. [Mapping]
|
||||
{{ ctags_url('Mapping') }}
|
||||
|
@ -1,6 +1,7 @@
|
||||
=============================
|
||||
ECIES-X25519 Router Messages
|
||||
=============================
|
||||
|
||||
.. meta::
|
||||
:category: Protocols
|
||||
:lastupdated: 2021-01
|
||||
|
@ -2,7 +2,6 @@
|
||||
Access Filter Format Specification
|
||||
==================================
|
||||
.. meta::
|
||||
:category: Formats
|
||||
:lastupdated: April 2019
|
||||
:accuratefor: 0.9.40
|
||||
|
||||
|
@ -2,7 +2,6 @@
|
||||
GeoIP File Specification
|
||||
========================
|
||||
.. meta::
|
||||
:category: Formats
|
||||
:lastupdated: December 2013
|
||||
:accuratefor: 0.9.9
|
||||
|
||||
|
@ -3,8 +3,8 @@ I2CP Specification
|
||||
==================
|
||||
.. meta::
|
||||
:category: Protocols
|
||||
:lastupdated: 2021-12
|
||||
:accuratefor: 0.9.52
|
||||
:lastupdated: 2020-11
|
||||
:accuratefor: 0.9.48
|
||||
|
||||
.. contents::
|
||||
|
||||
@ -226,7 +226,7 @@ information to communicate correctly with old routers. Clients and routers
|
||||
should not send messages that are unsupported by the other side, as they
|
||||
generally disconnect the session upon reception of an unsupported message.
|
||||
|
||||
The exchanged version information is the "core" API version or I2CP protocol
|
||||
The exchanged version information is the "core" version or I2CP protocol
|
||||
version, and is not necessarily the router version.
|
||||
|
||||
A basic summary of the I2CP protocol versions is as follows. For details, see
|
||||
@ -373,8 +373,6 @@ Notes
|
||||
The payload is in a gzip format as specified on the I2CP Overview page
|
||||
[I2CP-FORMAT]_.
|
||||
|
||||
Actual message length limit is about 64 KB.
|
||||
|
||||
.. _struct-SessionConfig:
|
||||
|
||||
Session Config
|
||||
@ -406,7 +404,7 @@ Offline Signatures
|
||||
* If the [Destination]_ is offline signed, the [Mapping]_ must contain
|
||||
the three options i2cp.leaseSetOfflineExpiration, i2cp.leaseSetTransientPublicKey,
|
||||
and i2cp.leaseSetOfflineSignature.
|
||||
The [Signature]_ is then generated by the transient [SigningPrivateKey]_ and is verified
|
||||
The [Signature]_ is then by the transient [SigningPrivateKey]_ and is verified
|
||||
with the [SigningPublicKey]_ specified in i2cp.leaseSetTransientPublicKey.
|
||||
See [I2CP-OPTIONS]_ for details.
|
||||
|
||||
@ -426,7 +424,6 @@ Contents
|
||||
|
||||
Notes
|
||||
`````
|
||||
Session ID 0xffff is used to indicate "no session", for example for hostname lookups.
|
||||
|
||||
|
||||
Messages
|
||||
@ -666,7 +663,8 @@ Notes
|
||||
The PrivateKeys match each of the [PublicKey]_ from the LeaseSet.
|
||||
The PrivateKeys are necessary for decrypting garlic routed messages.
|
||||
|
||||
See proposal 123 for more information on Encrypted LeaseSets.
|
||||
The contents and format for EncryptedLeaseSet are preliminary and subject to change.
|
||||
See proposal 123 for more information.
|
||||
|
||||
The contents and format for MetaLeaseSet are preliminary and subject to change.
|
||||
There is no protocol specified for administration of multiple routers.
|
||||
@ -830,7 +828,7 @@ Sent from Client to Router. The router responds with a SetDateMessage_.
|
||||
|
||||
Contents
|
||||
````````
|
||||
1. I2CP API Version [String]_
|
||||
1. I2CP Version [String]_
|
||||
2. Authentication [Mapping]_ (optional, as of release 0.9.11)
|
||||
|
||||
Notes
|
||||
@ -1246,7 +1244,7 @@ Description
|
||||
Request that a client authorize the inclusion of a particular set of inbound
|
||||
tunnels.
|
||||
|
||||
Sent from Router to Client. The client responds with a CreateLeaseSetMessage_ or CreateLeaseSet2Message_.
|
||||
Sent from Router to Client. The client responds with a CreateLeaseSetMessage_.
|
||||
|
||||
Contents
|
||||
````````
|
||||
@ -1510,7 +1508,7 @@ handshake to notify the client of a clock shift.
|
||||
Contents
|
||||
````````
|
||||
1. [Date]_
|
||||
2. I2CP API Version [String]_
|
||||
2. I2CP Version [String]_
|
||||
|
||||
Notes
|
||||
`````
|
||||
@ -1547,7 +1545,7 @@ References
|
||||
{{ site_url('docs/protocol/i2cp', True) }}#options
|
||||
|
||||
.. [I2CP-JAVADOCS]
|
||||
http://{{ i2pconv('idk.i2p/javadoc-i2p') }}/net/i2p/data/i2cp/package-summary.html
|
||||
http://{{ i2pconv('echelon.i2p/javadoc') }}/net/i2p/data/i2cp/package-summary.html
|
||||
|
||||
.. [Integer]
|
||||
{{ ctags_url('Integer') }}
|
||||
@ -1569,7 +1567,7 @@ References
|
||||
{{ ctags_url('MetaLeaseSet') }}
|
||||
|
||||
.. [MSM-JAVADOCS]
|
||||
http://{{ i2pconv('idk.i2p/javadoc-i2p') }}/net/i2p/data/i2cp/MessageStatusMessage.html
|
||||
http://{{ i2pconv('echelon.i2p/javadoc') }}/net/i2p/data/i2cp/MessageStatusMessage.html
|
||||
|
||||
.. [PrivateKey]
|
||||
{{ ctags_url('PrivateKey') }}
|
||||
|
@ -3,8 +3,8 @@ I2NP Specification
|
||||
==================
|
||||
.. meta::
|
||||
:category: Protocols
|
||||
:lastupdated: 2022-06
|
||||
:accuratefor: 0.9.54
|
||||
:lastupdated: 2021-07
|
||||
:accuratefor: 0.9.51
|
||||
|
||||
.. contents::
|
||||
|
||||
@ -1085,7 +1085,7 @@ tag :: 8 byte reply_tag
|
||||
|
||||
|
||||
ECIES to ECIES (0.9.49)
|
||||
`````````````````````````````
|
||||
-----------------------------
|
||||
|
||||
ECIES destination or router sends a lookup to a ECIES router.
|
||||
Supported as of 0.9.49.
|
||||
@ -1098,7 +1098,7 @@ The requester is anonymous.
|
||||
|
||||
|
||||
ECIES to ECIES (future)
|
||||
`````````````````````````````
|
||||
-----------------------------
|
||||
|
||||
This option is not yet fully defined.
|
||||
See [Prop156]_.
|
||||
|
@ -3,8 +3,8 @@ NTCP 2
|
||||
======
|
||||
.. meta::
|
||||
:category: Transports
|
||||
:lastupdated: 2022-01
|
||||
:accuratefor: 0.9.53
|
||||
:lastupdated: 2021-03
|
||||
:accuratefor: 0.9.50
|
||||
|
||||
.. contents::
|
||||
|
||||
@ -1991,36 +1991,6 @@ Variants, Fallbacks, and General Issues
|
||||
Alice may not retry using NTCP 1.
|
||||
|
||||
|
||||
Clock Skew Guidelines
|
||||
======================
|
||||
|
||||
Peer timestamps are included in the first two handshake messages, Session Request and Session Created.
|
||||
A clock skew between two peers of greater than +/- 60 seconds is generally fatal.
|
||||
If Bob thinks that his local clock is bad, he may adjust his clock using the
|
||||
calculated skew, or some external source.
|
||||
Otherwise, Bob should reply with a Session Created even if the maximum skew is exceeded,
|
||||
rather than simply closing the connection. This allows Alice to get Bob's timestamp and
|
||||
calculate the skew, and take action if necessary.
|
||||
Bob does not have Alice's router identity at this point, but
|
||||
to conserve resources,
|
||||
it may be desirable for Bob to ban incoming connections from Alice's IP for some period of time,
|
||||
or after repeated connection attempts with an excessive skew.
|
||||
|
||||
Alice should adjust the calculated clock skew by subtracting half the RTT.
|
||||
If Alice thinks that her local clock is bad, she may adjust her clock using the
|
||||
calculated skew, or some external source.
|
||||
If Alice thinks that Bob's clock is bad, she may ban Bob for some period of time.
|
||||
In either case, Alice should close the connection.
|
||||
|
||||
If Alice does reply with Session Confirmed
|
||||
(probably because the skew is very close to the 60s limit,
|
||||
and the Alice and Bob calculations are not exactly the same due to RTT),
|
||||
Bob should adjust the calculated clock skew by subtracting half the RTT.
|
||||
If the adjusted clock skew exceeds the maximum, Bob should then reply with
|
||||
a Disconnect message containing a clock skew reason code, and close
|
||||
the connection. At this point, Bob has Alice's router identity,
|
||||
and may ban Alice for some period of time.
|
||||
|
||||
|
||||
References
|
||||
==========
|
||||
|
@ -2,9 +2,8 @@
|
||||
Plugin Specification
|
||||
====================
|
||||
.. meta::
|
||||
:category: Design
|
||||
:lastupdated: 2022-01
|
||||
:accuratefor: 0.9.53
|
||||
:lastupdated: November 2019
|
||||
:accuratefor: 0.9.43
|
||||
|
||||
.. contents::
|
||||
|
||||
@ -120,11 +119,6 @@ router console if present:
|
||||
The update checker will check bytes 41-56 at this URL
|
||||
to determine whether a newer version is available
|
||||
|
||||
As of 1.7.0(0.9.53), it is possible to use the $OS and $ARCH
|
||||
variables in the URL. For example, on Windows/amd64, the URL
|
||||
http://foo.i2p/foo-$OS-$ARCH.xpi2p would be transformed into:
|
||||
http://foo.i2p/foo-windows-amd64.xpi2p.
|
||||
|
||||
Not recommended. Do not use unless you previously distributed
|
||||
plugins in the xpi2p format, and even then, routers know how
|
||||
to update with the su3 URL, as of 0.9.15.
|
||||
@ -138,11 +132,6 @@ router console if present:
|
||||
|
||||
The location of the su3-format update file, as of 0.9.15
|
||||
|
||||
As of 1.7.0(0.9.53), it is possible to use the $OS and $ARCH
|
||||
variables in the URL. For example, on Windows/amd64, the URL
|
||||
http://foo.i2p/foo-$OS-$ARCH.xpi2p would be transformed into:
|
||||
http://foo.i2p/foo-windows-amd64.xpi2p.
|
||||
|
||||
description
|
||||
in English
|
||||
|
||||
@ -182,10 +171,7 @@ console:
|
||||
|
||||
Only for webapps.
|
||||
|
||||
A path to a 32x32 image, e.g. /icon.png
|
||||
As of 1.7.0 (API 0.9.53), if consoleLinkURL is specified,
|
||||
the path is relative to that URL. Otherwise it is relative
|
||||
to the webapp name.
|
||||
A path within the webapp to a 32x32 image, e.g. /icon.png
|
||||
Applies to all webapps in the plugin.
|
||||
|
||||
icon-code
|
||||
@ -297,9 +283,8 @@ console/
|
||||
jars in $PLUGIN/lib/ or $I2P/lib for the webapp classpath, with
|
||||
``webapps.warname.classpath=$PLUGIN/lib/foo.jar,$I2P/lib/bar.jar``
|
||||
|
||||
NOTE: Prior to release 1.7.0 (API 0.9.53), the classpath line was only
|
||||
loaded if the warname was the same as the plugin name.
|
||||
As of API 0.9.53, classpath setting will work for any warname.
|
||||
NOTE: Currently, the classpath line is only loaded if the warname is the
|
||||
same as the plugin name.
|
||||
|
||||
NOTE: Prior to router version 0.7.12-9, the router looked for
|
||||
``plugin.warname.startOnLoad`` instead of
|
||||
@ -359,12 +344,6 @@ stopped.
|
||||
$PLUGIN
|
||||
this plugin's installation dir (typically ~/.i2p/plugins/appname)
|
||||
|
||||
$OS
|
||||
the host operating system in the form `windows`, `linux`, `mac`
|
||||
|
||||
$ARCH
|
||||
the host architecture in the form `386`, `amd64`, `arm64`
|
||||
|
||||
(See important notes below about running shell scripts or external
|
||||
programs)
|
||||
|
||||
@ -504,16 +483,12 @@ Shell script and external program notes
|
||||
To run shell scripts or other external programs, see [ZZZ-141]_.
|
||||
|
||||
To work on both Windows and Linux, write a small Java class that checks the OS
|
||||
type, then runs ShellCommand on either the .bat or a .sh file you provide. A
|
||||
generalized solution for this was added in I2P 1.7.0/0.9.53, the "ShellService"
|
||||
which performs state tracking for a single command and communicates with the
|
||||
ClientAppManager.
|
||||
type, then runs ShellCommand on either the .bat or a .sh file you provide.
|
||||
|
||||
External programs won't be stopped when the router stops, and a second copy
|
||||
will fire up when the router starts. This can usually be mitigated using
|
||||
a ShellService to perform state tracking. If that is unsuitable to your use case,
|
||||
you could write a wrapper class or shell script that does the usual storage of
|
||||
the PID in a PID file, and check for it on start.
|
||||
will fire up when the router starts. To work around this, you could write a
|
||||
wrapper class or shell script that does the usual storage of the PID in a PID
|
||||
file, and check for it on start.
|
||||
|
||||
|
||||
Other plugin guidelines
|
||||
@ -539,8 +514,7 @@ Other plugin guidelines
|
||||
uninstallation, the uninstallargs hook could ask.
|
||||
|
||||
* $CWD may be anywhere; do not assume it is in a particular place, do not
|
||||
attempt to read or write files relative to $CWD. For a ShellService, it is
|
||||
always the same as $PLUGIN.
|
||||
attempt to read or write files relative to $CWD.
|
||||
|
||||
* Java programs should find out where they are with the directory getters in
|
||||
I2PAppContext.
|
||||
@ -567,7 +541,7 @@ Other plugin guidelines
|
||||
* As an alternative to stopargs in clients.config, a Java client may register a
|
||||
shutdown hook with I2PAppContext.addShutdownTask(). But this wouldn't shut
|
||||
down a plugin when upgrading, so stopargs is recommended. Also, set all
|
||||
created threads to daemon mode. This can also be enabled with a ShellService.
|
||||
created threads to daemon mode.
|
||||
|
||||
* Do not include classes duplicating those in the standard installation. Extend
|
||||
the classes if necessary.
|
||||
|
@ -2014,7 +2014,7 @@ Private Key File Changes Required
|
||||
|
||||
The private key file (eepPriv.dat) format is not an official part of our specifications
|
||||
but it is documented in the Java I2P javadocs
|
||||
http://idk.i2p/javadoc-i2p/net/i2p/data/PrivateKeyFile.html
|
||||
http://echelon.i2p/javadoc/net/i2p/data/PrivateKeyFile.html
|
||||
and other implementations do support it.
|
||||
This enables portability of private keys to different implementations.
|
||||
|
||||
|
@ -5,20 +5,12 @@ Tunnel Build Message Options
|
||||
:author: zzz
|
||||
:created: 2018-01-14
|
||||
:thread: http://zzz.i2p/topics/2500
|
||||
:lastupdated: 2022-01-28
|
||||
:status: Rejected
|
||||
:lastupdated: 2018-01-20
|
||||
:status: Open
|
||||
|
||||
.. contents::
|
||||
|
||||
|
||||
Note
|
||||
====
|
||||
This proposal was not implemented as specified,
|
||||
however, the ECIES long and short build messages (proposals 152 and 157)
|
||||
were designed with extensible options fields.
|
||||
See [SPEC]_ for the official specification.
|
||||
|
||||
|
||||
Overview
|
||||
========
|
||||
|
||||
@ -103,11 +95,3 @@ The unused space in the Tunnel Build Records are filled with random data and cur
|
||||
The space can be converted to contain options without migration issues.
|
||||
In the build message, the presence of options is indicated in the flags byte.
|
||||
In the build reply message, the presence of options is indicated by a multi-byte magic number.
|
||||
|
||||
|
||||
|
||||
References
|
||||
==========
|
||||
|
||||
.. [SPEC]
|
||||
{{ spec_url('tunnel-creation-ecies') }}
|
||||
|
@ -1,6 +1,7 @@
|
||||
=============
|
||||
ECIES Tunnels
|
||||
=============
|
||||
|
||||
.. meta::
|
||||
:author: chisana, zzz, orignal
|
||||
:created: 2019-07-04
|
||||
|
@ -1,6 +1,7 @@
|
||||
==============================
|
||||
ChaCha Tunnel Layer Encryption
|
||||
==============================
|
||||
|
||||
.. meta::
|
||||
:author: chisana
|
||||
:created: 2019-08-04
|
||||
|
@ -6,7 +6,7 @@ ECIES Routers
|
||||
:created: 2020-09-01
|
||||
:thread: http://zzz.i2p/topics/2950
|
||||
:lastupdated: 2021-07-31
|
||||
:status: Closed
|
||||
:status: Open
|
||||
:target: 0.9.51
|
||||
|
||||
.. contents::
|
||||
|
@ -6,7 +6,7 @@ Smaller Tunnel Build Messages
|
||||
:created: 2020-10-09
|
||||
:thread: http://zzz.i2p/topics/2957
|
||||
:lastupdated: 2021-07-31
|
||||
:status: Closed
|
||||
:status: Open
|
||||
:target: 0.9.51
|
||||
|
||||
.. contents::
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,402 +0,0 @@
|
||||
================================
|
||||
UDP Trackers
|
||||
================================
|
||||
.. meta::
|
||||
:author: zzz
|
||||
:created: 2022-01-03
|
||||
:thread: http://zzz.i2p/topics/1634
|
||||
:lastupdated: 2022-01-17
|
||||
:status: Open
|
||||
:target: 0.9.54
|
||||
|
||||
.. contents::
|
||||
|
||||
|
||||
Overview
|
||||
========
|
||||
|
||||
This proposal is for implemention of UDP trackers in I2P.
|
||||
|
||||
|
||||
Motivation
|
||||
==========
|
||||
|
||||
As the user base in general and the number of bittorrent users specifically continues to grow,
|
||||
we need to make trackers and announces more efficient so that trackers are not overwhelemed.
|
||||
|
||||
Bittorrent proposed UDP trackers in BEP 15 [BEP15]_ in 2008, and the vast majority
|
||||
of trackers on clearnet are now UDP-only.
|
||||
|
||||
A preliminary proposal for UDP trackers in I2P was posted on our bittorrent spec page [SPEC]_
|
||||
in May 2014; this predated our formal proposal process, and it was never implemented.
|
||||
This proposal simplifies the 2014 version.
|
||||
|
||||
It is difficult to calculate the bandwidth savings of datagrams vs. streaming protocol.
|
||||
A repliable request is about the same size as a streaming SYN, but the payload
|
||||
is about 500 bytes smaller because the HTTP GET has a huge 600 byte
|
||||
URL parameter string.
|
||||
The raw reply is much smaller than a streaming SYN ACK, providing significant reduction
|
||||
for a tracker's outbound traffic.
|
||||
|
||||
Additionally, there should be implementation-specific memory reductions,
|
||||
as datagrams require much less in-memory state than a streaming connection.
|
||||
|
||||
|
||||
|
||||
Design
|
||||
============
|
||||
|
||||
This proposal uses both repliable and raw datagrams,
|
||||
as defined in [DATAGRAMS]_.
|
||||
|
||||
|
||||
BEP 15
|
||||
-------
|
||||
|
||||
The message flow in [BEP15]_ is as follows:
|
||||
|
||||
.. raw:: html
|
||||
|
||||
{% highlight %}
|
||||
Client Tracker
|
||||
Connect Req. ------------->
|
||||
<-------------- Connect Resp.
|
||||
Announce Req. ------------->
|
||||
<-------------- Announce Resp.
|
||||
Announce Req. ------------->
|
||||
<-------------- Announce Resp.
|
||||
{% endhighlight %}
|
||||
|
||||
The connect phase is required to prevent IP address spoofing.
|
||||
The tracker returns a connection ID that the client uses in subsequent announces.
|
||||
This connection ID expires in one minute at the client, and in two minutes at the tracker.
|
||||
This is not necessary in I2P because of repliable datagrams.
|
||||
|
||||
We propose two mechanisms for I2P, compatibility mode and fast mode.
|
||||
|
||||
|
||||
Compatibility Mode
|
||||
-------------------------
|
||||
|
||||
In compatibility mode, we keep the same message flow as BEP 15,
|
||||
for ease of adoption in existing UDP-capable client code bases:
|
||||
|
||||
.. raw:: html
|
||||
|
||||
{% highlight %}
|
||||
Client Tracker
|
||||
Connect Req. -------------> (Repliable)
|
||||
<-------------- Connect Resp. (Raw)
|
||||
Announce Req. -------------> (Raw)
|
||||
<-------------- Announce Resp. (Raw)
|
||||
Announce Req. -------------> (Raw)
|
||||
<-------------- Announce Resp. (Raw)
|
||||
...
|
||||
{% endhighlight %}
|
||||
|
||||
This mode is also useful if the client plans to send multiple announces
|
||||
within one minute to a single tracker, as only the connect
|
||||
message must be repliable.
|
||||
|
||||
|
||||
I2P Fast Mode
|
||||
-------------------------
|
||||
|
||||
In fast mode, we omit the connect phase, as it is not required to prevent address spoofing.
|
||||
This significantly simplifies the client-side implementation.
|
||||
|
||||
.. raw:: html
|
||||
|
||||
{% highlight %}
|
||||
Client Tracker
|
||||
Announce Req. -------------> (Repliable)
|
||||
<-------------- Announce Resp. (Raw)
|
||||
{% endhighlight %}
|
||||
|
||||
This mode omits a round-trip, but requires every announce request to be repliable.
|
||||
|
||||
|
||||
|
||||
Specification
|
||||
=============
|
||||
|
||||
Repliable datagrams use I2CP protocol 17; raw datagrams use I2CP protocol 18.
|
||||
Requests may be repliable or raw. Responses are always raw.
|
||||
|
||||
|
||||
Connect Request
|
||||
-----------------
|
||||
|
||||
Client to tracker.
|
||||
16 bytes. Must be repliable. Same as in [BEP15]_.
|
||||
|
||||
|
||||
.. raw:: html
|
||||
|
||||
{% highlight %}
|
||||
Offset Size Name Value
|
||||
0 64-bit integer protocol_id 0x41727101980 // magic constant
|
||||
8 32-bit integer action 0 // connect
|
||||
12 32-bit integer transaction_id
|
||||
{% endhighlight %}
|
||||
|
||||
|
||||
|
||||
Connect Response
|
||||
-----------------
|
||||
|
||||
Tracker to client.
|
||||
16 bytes. Must be raw. Same as in [BEP15]_.
|
||||
|
||||
|
||||
.. raw:: html
|
||||
|
||||
{% highlight %}
|
||||
Offset Size Name Value
|
||||
0 32-bit integer action 0 // connect
|
||||
4 32-bit integer transaction_id
|
||||
8 64-bit integer connection_id
|
||||
{% endhighlight %}
|
||||
|
||||
The response MUST be sent to the I2CP "to port" that was received as the request "from port".
|
||||
|
||||
|
||||
|
||||
|
||||
Announce Request
|
||||
-----------------
|
||||
|
||||
Client to tracker.
|
||||
98 bytes. Same as in [BEP15]_ except as noted below.
|
||||
|
||||
If preceded by a connect request/response, must be raw,
|
||||
with the connection_id received in the connect response.
|
||||
|
||||
|
||||
If NOT preceded by a connect request/response, must be repliable,
|
||||
and the connection_id is ignored.
|
||||
|
||||
|
||||
.. raw:: html
|
||||
|
||||
{% highlight %}
|
||||
Offset Size Name Value
|
||||
0 64-bit integer connection_id
|
||||
8 32-bit integer action 1 // announce
|
||||
12 32-bit integer transaction_id
|
||||
16 20-byte string info_hash
|
||||
36 20-byte string peer_id
|
||||
56 64-bit integer downloaded
|
||||
64 64-bit integer left
|
||||
72 64-bit integer uploaded
|
||||
80 32-bit integer event 0 // 0: none; 1: completed; 2: started; 3: stopped
|
||||
84 32-bit integer IP address 0 // default
|
||||
88 32-bit integer key
|
||||
92 32-bit integer num_want -1 // default
|
||||
96 16-bit integer port
|
||||
98 TBD additional data TBD
|
||||
{% endhighlight %}
|
||||
|
||||
Changes from [BEP15]_:
|
||||
|
||||
- connection_id is ignored if repliable
|
||||
- IP address is ignored
|
||||
- key is ignored
|
||||
- port is probably ignored
|
||||
- Explicitly indidate that the protocol is extensible,
|
||||
with possible additional data starting at port 98.
|
||||
|
||||
The response MUST be sent to the I2CP "to port" that was received as the request "from port".
|
||||
Do not use the port from the announce request.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Announce Response
|
||||
-----------------
|
||||
|
||||
Tracker to client.
|
||||
20+ bytes. Must be raw. Same as in [BEP15]_ except as noted below.
|
||||
|
||||
|
||||
|
||||
.. raw:: html
|
||||
|
||||
{% highlight %}
|
||||
Offset Size Name Value
|
||||
0 32-bit integer action 1 // announce
|
||||
4 32-bit integer transaction_id
|
||||
8 32-bit integer interval
|
||||
12 32-bit integer leechers
|
||||
16 32-bit integer seeders
|
||||
20 16-bit integer count of hashes to follow
|
||||
22 + 32 * n 32-byte hash binary hashes
|
||||
...
|
||||
22 + 32 * c TBD additional data TBD
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
Changes from [BEP15]_:
|
||||
|
||||
- Add a hash count before the hashes, so that the response format
|
||||
is extensible with additional data after the hashes.
|
||||
- Instead of 6-byte IPv4+port or 18-byte IPv6+port, we return
|
||||
a multiple of 32-byte "compact responses" with the SHA-256 binary peer hashes.
|
||||
As with TCP compact responses, we do not include a port.
|
||||
- Explicitly indidate that the protocol is extensible,
|
||||
with possible additional data starting after the hashes
|
||||
|
||||
The response MUST be sent to the I2CP "to port" that was received as the request "from port".
|
||||
Do not use the port from the announce request.
|
||||
|
||||
I2P datagrams have a very large maximum size of about 16 KB;
|
||||
however, for reliable delivery, datagrams larger than 4 KB should be avoided.
|
||||
For bandwidth efficiency, trackers should probably limit the maximum peers
|
||||
to about 50.
|
||||
|
||||
|
||||
Scrape
|
||||
----------
|
||||
|
||||
Scrape request/response from [BEP15]_ is not required by this proposal,
|
||||
but may be implemented if desired, no changes required.
|
||||
The scrape request is always repliable (unless there is a previous connect request/response)
|
||||
and the scrape response is always raw.
|
||||
|
||||
|
||||
Error Response
|
||||
------------------
|
||||
|
||||
Error response from [BEP15]_ is not required by this proposal,
|
||||
but may be implemented if desired, no changes required.
|
||||
The error response is always raw.
|
||||
|
||||
|
||||
Announce URL
|
||||
------------
|
||||
|
||||
As in clearnet, UDP announce URLs are of the form "udp://host:port/path".
|
||||
The path is ignored and may be empty.
|
||||
If the ":port" part is omitted, use an I2CP port of 0.
|
||||
|
||||
|
||||
|
||||
Issues
|
||||
=======
|
||||
|
||||
- Repliable datagrams do not support offline signatures.
|
||||
That requires a separate proposal.
|
||||
- This proposal does not support blinded destinations,
|
||||
but may be extended to do so. See below.
|
||||
- This proposal offers two modes at the client's option.
|
||||
An existing clearnet tracker such as "opentracker" would require more modifications
|
||||
to support the fast mode. There is no way in the announce URL to indicate
|
||||
support for only one mode.
|
||||
- Compatibility mode may not be necessary, pending feedback from BiglyBT and
|
||||
other developers. However, it would still save a lot of bandwidth
|
||||
if it is used for several announces within a minute.
|
||||
Repliable announces are about 450 bytes larger than raw announces.
|
||||
|
||||
|
||||
Extensions
|
||||
=============
|
||||
|
||||
Extension bits or a version field are not included.
|
||||
Clients and trackers should not assume packets to be of a certain size.
|
||||
This way, additional fields can be added without breaking compatibility.
|
||||
|
||||
The announce response is modified to include a count of peer hashes,
|
||||
so that the response may be easily extended with additional information.
|
||||
|
||||
If blinded destination support is required, we can either add the
|
||||
blinded 35-byte address to the end of the announce request, or define a new blinded announce request message.
|
||||
The set of blinded 35-byte peer addresses could be added to the end of the announce reply.
|
||||
|
||||
|
||||
|
||||
Implementation guidelines
|
||||
==========================
|
||||
|
||||
Clients
|
||||
--------
|
||||
|
||||
For a given tracker hostname, a client should prefer UDP over HTTP URLs,
|
||||
and should not announce to both.
|
||||
|
||||
Clients wihout existing BEP 15 support should implement
|
||||
fast mode only, as it is much simpler.
|
||||
Clients with existing BEP 15 support should require only small modifications.
|
||||
Evaluate both fast and compatibility modes and choose
|
||||
whatever is best for the existing code base.
|
||||
|
||||
If a client support DHT or other datagram protocols, it should probably
|
||||
select a different port as the request "from port" so that the replies
|
||||
come back to that port and are not mixed up with DHT messages.
|
||||
The client only receives raw datagrams as replies.
|
||||
Trackers will never send a repliable datagram to the client.
|
||||
|
||||
Clients with a default list of opentrackers should update the list to
|
||||
add UDP URLs after the known opentrackers are known to support UDP.
|
||||
|
||||
Clients may or may not implement retransmission of requests.
|
||||
Retransmissions, if implemented, should use an initial timeout
|
||||
of at least 15 seconds, and double the timeout for each retransmission
|
||||
(exponential backoff).
|
||||
|
||||
|
||||
Trackers
|
||||
---------
|
||||
|
||||
Trackers must implement both compatibility mode and fast mode.
|
||||
Trackers with existing BEP 15 support should require only small modifications.
|
||||
This proposal differs from the 2014 proposal, in that the tracker
|
||||
must support reception of repliable and raw datagrams on the same port.
|
||||
|
||||
For an integrated application (router and client in one process, for example the ZzzOT Java plugin),
|
||||
it should be straightforward to implement and route the streaming and datagram traffic separately.
|
||||
|
||||
For an external tracker application that currently uses an HTTP server tunnel to receive
|
||||
announce requests, the implementation could be quite difficult.
|
||||
A specialized tunnel could be developed to translate datagrams to local HTTP requests/responses.
|
||||
Or, a specialized tunnel that handles both HTTP requests and datagrams could be designed
|
||||
that would forward the datagrams to the external process.
|
||||
These design decisions will depend heavily on the specific router and tracker implementations,
|
||||
and are outside the scope of this proposal.
|
||||
|
||||
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Existing clients do not support UDP announce URLs and ignore them.
|
||||
|
||||
Existing trackers do not support reception of repliable or raw datagrams, they will be dropped.
|
||||
|
||||
This proposal is completely optional. Neither clients nor trackers are required to implement it at any time.
|
||||
|
||||
|
||||
|
||||
Rollout
|
||||
=======
|
||||
|
||||
The first implementations are expected to be in ZzzOT and i2psnark.
|
||||
They will be used for testing and verification of this proposal.
|
||||
|
||||
Other implementations will follow as desired after the testing and verification are complete.
|
||||
|
||||
|
||||
|
||||
|
||||
References
|
||||
==========
|
||||
|
||||
.. [BEP15]
|
||||
http://www.bittorrent.org/beps/bep_0015.html
|
||||
|
||||
.. [DATAGRAMS]
|
||||
{{ spec_url('datagrams') }}
|
||||
|
||||
.. [SPEC]
|
||||
{{ site_url('docs/applications/bittorrent', True) }}
|
@ -2,7 +2,6 @@
|
||||
Red25519 Signature Scheme
|
||||
=========================
|
||||
.. meta::
|
||||
:category: Design
|
||||
:lastupdated: 2020-08
|
||||
:accuratefor: 0.9.47
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user