mirror of
https://github.com/markqvist/Reticulum.git
synced 2025-05-02 06:36:14 -04:00
Moved docs section contributed by @4c3e
This commit is contained in:
parent
e3ea61c944
commit
b56830b36e
5 changed files with 112 additions and 5 deletions
|
@ -71,6 +71,62 @@ you want more information, you can read the :ref:`Building Networks<networks-mai
|
|||
and :ref:`Interfaces<interfaces-main>` chapters of this manual.
|
||||
|
||||
|
||||
Bridging Over the Internet
|
||||
=============================================
|
||||
Reticulum currently offers two interfaces for connecting nodes over the internet:
|
||||
`TCP <https://markqvist.github.io/Reticulum/manual/interfaces.html#tcp-server-interface>`_ and `I2P <https://markqvist.github.io/Reticulum/manual/interfaces.html#i2p-interface>`_. Each interface offers a different set of features, and Reticulum
|
||||
users should carefully choose the interface which best suites their needs.
|
||||
|
||||
The ``TCPServerInterface`` allows users to host a node accessible over TCP/IP. This
|
||||
method is generally faster, lower latency, and more energy efficient than using ``I2PInterface``,
|
||||
however it leaks considerable metadata about the server host.
|
||||
|
||||
Direct TCP client connections are able to see your node's IP address and may be able
|
||||
to use this information to determine your location or identity. Adversaries
|
||||
inspecting your network's internet packets may be able to record packet metadata
|
||||
like time of transmission and packet size. By default TCP does not encrypt traffic,
|
||||
so an adversary may be able to use packet inspection to learn that a system is running
|
||||
Reticulum, and what other IP adresses connect to it. Hosting a node via TCP server also
|
||||
requires a public IP address.
|
||||
|
||||
The ``I2PInterface`` routes messages through the `Invisible Internet Protocol
|
||||
(I2P) <https://geti2p.net/en/>`_. To properly use this interface, users must also run an I2P daemon in
|
||||
parallel to ``rnsd``. For always-on nodes it is recommended to use `i2pd <https://i2pd.website/>`_ because it
|
||||
generally runs more efficiently.
|
||||
|
||||
By default, I2P will fully encrypt all traffic sent over the network, and
|
||||
obfuscate both the sender's and receiver's IP addresses. Running an I2P node
|
||||
will also relay other I2P user's encrypted packets, which will use extra
|
||||
bandwidth and compute power, but also makes timing attacks and other forms of
|
||||
deep-packet-inspection much more difficult. Similar to RNS, I2P uses cryptographic
|
||||
public keys as destination addresses, which allows users to host nodes on non-static IPs.
|
||||
|
||||
In general it is recommended to use an I2P node if you are hosting your node
|
||||
publicly.
|
||||
|
||||
There is a experimental public testnet you can join by adding the following
|
||||
interfaces to your ``.reticulum/config`` file:
|
||||
|
||||
.. code::
|
||||
|
||||
# For connecting over TCP/IP:
|
||||
|
||||
[[RNS Testnet Frankfurt]]
|
||||
type = TCPClientInterface
|
||||
interface_enabled = yes
|
||||
outgoing = True
|
||||
target_host = frankfurt.rns.unsigned.io
|
||||
target_port = 4965
|
||||
|
||||
|
||||
# For connecting over I2P:
|
||||
|
||||
[[RNS Testnet I2P Node A]]
|
||||
type = I2PInterface
|
||||
interface_enabled = yes
|
||||
peers = ykzlw5ujbaqc2xkec4cpvgyxj257wcrmmgkuxqmqcur7cq3w3lha.b32.i2p
|
||||
|
||||
|
||||
Develop a Program with Reticulum
|
||||
===========================================
|
||||
If you want to develop programs that use Reticulum, the easiest way to get
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue