[[I2P]]
 

I2P

I2P (Invisible Internet Project or Invisible Internet Protocol) – anonymous overlay decentralized peer-to-peer network. Overlay – works on top of other networks, for example, the regular Internet; decentralized – distributed, without a single point of failure: one node falls, half of the network, or 3 users remain in the entire network – I2P will still function. I2P is a peer-to-peer network because all participants have equal rights and opportunities: each user of the hidden network builds his tunnels through other participants and is himself a potential link in the chain of another user. At the same time, natural network activity does not compromise the subscriber in front of the home provider or participants in the hidden network.

i2p-over-ygg.jpg I2P outperforms Tor by anonymity parameters, but does not have an output proxy to the regular Internet by default. The I2P network is completely decentralized and open source. There are two web clients: Java (first released in 2003) and i2pd in C ++ (first released in 2014). The C ++ I2P router outperforms its predecessor in speed and stability and is highly recommended. The main discussion of i2pd development is on the #dev channel on the ILITA. When working through Yggdrasil, the I2P network does not form a separate segment, but remains unified: users from the regular Internet are also available. A schematic of the interaction of Yggdrasil-only routers with other network participants is shown in the illustration.

Details about the mechanism of operation of the I2P network and the history of the appearance of the alternative i2pd client are described in the video (en): YouTube.com, Open.Tube, Intranet repository.

Installing

The easiest and most correct option is to download the package for your operating system from the official releases page. Also i2pd exists in the standard repositories of some unix-like operating systems like Debian or Ubuntu, and is available for installation via the short line sudo apt-get install i2pd, but this installation method is not recommended, since there are always very outdated versions in the default repositories.
However, there is an up-to-date community repository, adding which to your system, you can forget about rotten packages and update in a familiar and convenient way. For comprehensive installation information, see documentation i2pd.
Below are instructions for Debian and Ubuntu using the user R4SAS repository in the clearnet:

# Ubuntu
sudo add-apt-repository ppa:purplei2p/i2pd
sudo apt-get update
sudo apt-get install i2pd

# Debian
sudo apt-get install apt-transport-https
wget -q -O - https://repo.i2pd.xyz/.help/add_repo | sudo bash -s -
apt-get update
sudo apt-get install i2pd

The same, but with access via Yggdrasil, i.e. intranet repository:

# Debian
wget -q -O - http://[321:c99a:91a1:cd2c::4]/.help-ygg/add_repo | sudo bash -s -
sudo apt-get update
sudo apt-get install i2pd

The community supports a Firefox-based I2P browser similar in concept to the Tor browser. You can download the browser from releases page of the corresponding git repository of the PurpleI2P team (distributed only for Windows). The package of a portable browser may not contain the latest version of i2pd, so you will probably need to manually replace the executable file i2pd.exe to use the current version.

I2P over Yggdrasil

Starting from version 2.36.0 i2pd has a mode of operation that excludes connections via the regular Internet. Below is an example of a router configuration that communicates with a hidden I2P network exclusively through other Yggdrasil routers. By default, the configuration file is located in /etc/i2pd/i2pd.conf or ~/.i2pd/i2pd.conf, and for Windows OS: %AppData%\i2pd\i2pd.conf. For the I2P router to work in “Portable” mode, when all data is stored in the directory with the executable file, you need to create the “i2pd.conf” file in the same folder where the program binary file is located.

daemon=true # note: remove it if you running on Windows!
ipv4=false
ipv6=false
ssu=false
ntcp2.enabled=false
meshnets.yggdrasil=true  

If you want the I2P router to publish the address from your Yggdrasil subnet used on the device, add the line:

meshnets.yggaddress=your_local_yggdrasil_address

At the first start, i2pd will contact the start server inside the Yggdrasil network, which will give away several routers sufficient to get started. Then, the router's network base will start automatically replenishing. Thus, the use of I2P will do without a single call to the clearnet.

Autostart

An I2P router (i2pd) at system startup (in the example Debian) can start earlier than the Yggdrasil service. This leads to a forced manual restart of i2pd. The yggdrasil interface is not detected by the I2P router until the Yggdrasil service starts. There are two main ways to solve this problem (use whichever you like):

1) After starting Yggdrasil, set the delay before starting the dependent services:

  1. mkdir /etc/systemd/system/i2pd.service.d
  2. nano /etc/systemd/system/i2pd.service.d/override.conf
  3. [Unit]
    After=network.target yggdrasil.service

    Ctrl+O – save changes to the file, Ctrl+X - exit from nano editor

  4. mkdir /etc/systemd/system/yggdrasil.service.d
  5. nano /etc/systemd/system/yggdrasil.service.d/override.conf
  6. [Service]
    # adding post-up delay to bring up yggdrasil tunnel interface before starting other services which depends on ygg
    ExecStartPost=/bin/sleep 5

    Ctrl+O – save changes to the file, Ctrl+X - exit from nano editor

2) Set i2pd start timer:

  1. Create file /etc/systemd/system/i2pd.timer
    sudo nano /etc/systemd/system/i2pd.timer
  2. Complete the timer file as follows:
    [Unit]
    Description=i2pd service timer
    After=yggdrasil.service
    
    [Timer]
    OnActiveSec=10
    
    [Install]
    WantedBy=multi-user.target

    Ctrl+O – save changes to the file, Ctrl+X - exit from nano editor

  3. sudo systemctl disable i2pd.service
  4. sudo systemctl enable i2pd.timer

Network support

How can the average user contribute to the development of the I2P network? This question is asked by many enthusiasts. And here's the answer:

  1. Enable all existing network interfaces for greater network connectivity
    ipv4=true
    ipv6=true
    meshnets.yggdrasil=true
  2. And also enable the floodfill mode - a kind of I2P dispatcher (the load on the processor and network channel may periodically increase):
     floodfill=true 

Please note that these settings are primarily relevant for server administrators or home users who have a dedicated IP address. In any case, keeping the I2P router on for as long as possible is a good contribution to the overall power of the network. A network client running even on a smartphone (!) Can receive “probe” tunnels created by other participants to explore the network and have extremely low traffic.

References

Monitoring the number of Yggdrasil routers in the I2P network
Git repository
Releases page for download i2pd
Documentation
Java-router (client without Yggdrasil support)

You could leave a comment if you were logged in.
en/i2p.txt · Last modified: 2023/10/10 18:06 by 127.0.0.1
 
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki