mirror of
https://github.com/markqvist/reticulum_website.git
synced 2025-06-08 15:12:58 -04:00
Updated github build
This commit is contained in:
parent
43ff262f83
commit
46c89f95cd
42 changed files with 641 additions and 351 deletions
16
LICENSE
16
LICENSE
|
@ -1,6 +1,6 @@
|
||||||
MIT License, unless otherwise noted
|
Reticulum License
|
||||||
|
|
||||||
Copyright (c) 2022 Mark Qvist / unsigned.io
|
Copyright (c) 2016-2025 Mark Qvist
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -9,8 +9,16 @@ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
furnished to do so, subject to the following conditions:
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
- The Software shall not be used in any kind of system which includes amongst
|
||||||
copies or substantial portions of the Software.
|
its functions the ability to purposefully do harm to human beings.
|
||||||
|
|
||||||
|
- The Software shall not be used, directly or indirectly, in the creation of
|
||||||
|
an artificial intelligence, machine learning or language model training
|
||||||
|
dataset, including but not limited to any use that contributes to the
|
||||||
|
training or development of such a model or algorithm.
|
||||||
|
|
||||||
|
- The above copyright notice and this permission notice shall be included in
|
||||||
|
all copies or substantial portions of the Software.
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
<li><a href="https://www.python.org">Python</a></li>
|
<li><a href="https://www.python.org">Python</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<p>The protocol design and reference implementation for Reticulum was carried out between 2014 and 2022 by Mark Qvist.</p>
|
<p>The protocol design and reference implementation for Reticulum was carried out between 2014 and 2022 by Mark Qvist.</p>
|
||||||
<p>The <a href="https://github.com/markqvist/reticulum">Python reference implementation of Reticulum</a> and this website is licensed under the <a href="license.html">MIT License</a>. Please <a href="donate.html">donate</a> to support the continued development.</p>
|
<p>The <a href="https://github.com/markqvist/reticulum">Python reference implementation of Reticulum</a> and this website is licensed under the <a href="license.html">Reticulum License</a>. Please <a href="donate.html">donate</a> to support the continued development.</p>
|
||||||
<hr />
|
<hr />
|
||||||
<p><center>The Reticulum Protocol is the shared property of all people,<br/>I contribute it to the public domain.<br/><br/>Dedicated with hope and belief in the future<br/>freedom and prosperity of all,<br/>on Earth and beyond.<br/><br/>Thank You</center></p>
|
<p><center>The Reticulum Protocol is the shared property of all people,<br/>I contribute it to the public domain.<br/><br/>Dedicated with hope and belief in the future<br/>freedom and prosperity of all,<br/>on Earth and beyond.<br/><br/>Thank You</center></p>
|
||||||
<hr />
|
<hr />
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
<li><a href="https://www.python.org">Python</a></li>
|
<li><a href="https://www.python.org">Python</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<p>Das Protokolldesign und die Referenzimplementierung für Reticulum wurden zwischen 2014 und 2022 von Mark Qvist durchgeführt.</p>
|
<p>Das Protokolldesign und die Referenzimplementierung für Reticulum wurden zwischen 2014 und 2022 von Mark Qvist durchgeführt.</p>
|
||||||
<p>Die <a href="https://github.com/markqvist/reticulum">Python Referenzimplementierung von Reticulum</a> und diese Website ist lizenziert unter der <a href="license.html">MIT License</a>. Bitte <a href="donate_de.html">Spenden</a> sie zur Unterstützung der weiteren Entwicklung.</p>
|
<p>Die <a href="https://github.com/markqvist/reticulum">Python Referenzimplementierung von Reticulum</a> und diese Website ist lizenziert unter der <a href="license.html">Reticulum License</a>. Bitte <a href="donate_de.html">Spenden</a> sie zur Unterstützung der weiteren Entwicklung.</p>
|
||||||
<hr />
|
<hr />
|
||||||
<p><center>Das Reticulum Protokoll ist das gemeinsame Eigentum aller Menschen,<br/>Ich stelle es der Öffentlichkeit zur Verfügung.<br/><br/>Engagiert mit Hoffnung und Glauben an die Zukunft<br/>Freiheit und Wohlstand für alle,<br/>auf der Erde und darüber hinaus.<br/><br/>Dankeschön</center></p>
|
<p><center>Das Reticulum Protokoll ist das gemeinsame Eigentum aller Menschen,<br/>Ich stelle es der Öffentlichkeit zur Verfügung.<br/><br/>Engagiert mit Hoffnung und Glauben an die Zukunft<br/>Freiheit und Wohlstand für alle,<br/>auf der Erde und darüber hinaus.<br/><br/>Dankeschön</center></p>
|
||||||
<hr />
|
<hr />
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
<li><a href="https://www.python.org">Python</a></li>
|
<li><a href="https://www.python.org">Python</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<p>El diseño del protocolo y la implementación de referencia para Reticulum se llevaron a cabo entre 2014 y 2024 por Mark Qvist.</p>
|
<p>El diseño del protocolo y la implementación de referencia para Reticulum se llevaron a cabo entre 2014 y 2024 por Mark Qvist.</p>
|
||||||
<p>La <a href="https://github.com/markqvist/reticulum">referencia de la implementación de Reticulum en Python</a> y este sitio están licenciados bajo la <a href="license_es.html">Licencia MIT</a>. Por favor, <a href="donate_es.html">dona</a> para apoyar el desarrollo.</p>
|
<p>La <a href="https://github.com/markqvist/reticulum">referencia de la implementación de Reticulum en Python</a> y este sitio están licenciados bajo la <a href="license_es.html">Licencia Reticulum</a>. Por favor, <a href="donate_es.html">dona</a> para apoyar el desarrollo.</p>
|
||||||
<hr />
|
<hr />
|
||||||
<p><center>El Protocolo de Reticulum es propiedad compartida de todas las personas,<br/>Lo contribuyo al dominio público.<br/><br/>Dedicado con esperanza y fe en el futuro<br/>libertad y prosperidad para todos,<br/>en la Tierra y más allá.<br/><br/>Gracias</center></p>
|
<p><center>El Protocolo de Reticulum es propiedad compartida de todas las personas,<br/>Lo contribuyo al dominio público.<br/><br/>Dedicado con esperanza y fe en el futuro<br/>libertad y prosperidad para todos,<br/>en la Tierra y más allá.<br/><br/>Gracias</center></p>
|
||||||
<hr />
|
<hr />
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
<li><a href="https://www.python.org">Python</a></li>
|
<li><a href="https://www.python.org">Python</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<p>Reticulumのプロトコルデザインおよびリファレンス実装は、2014年から2022年までMark Qvistによって実施されました。</p>
|
<p>Reticulumのプロトコルデザインおよびリファレンス実装は、2014年から2022年までMark Qvistによって実施されました。</p>
|
||||||
<p><a href="https://github.com/markqvist/reticulum">ReticulumのPythonリファレンス実装</a>およびこのウェブサイトは、<a href="license.html">MITライセンス</a>の下でライセンスされています。継続的な開発をサポートするために、<a href="donate_jp.html">寄付</a>をお願いします。</p>
|
<p><a href="https://github.com/markqvist/reticulum">ReticulumのPythonリファレンス実装</a>およびこのウェブサイトは、<a href="license.html">Reticulumライセンス</a>の下でライセンスされています。継続的な開発をサポートするために、<a href="donate_jp.html">寄付</a>をお願いします。</p>
|
||||||
<hr />
|
<hr />
|
||||||
<p><center>Reticulumプロトコルはすべての人々の共有財産です。<br/>私はそれをパブリックドメインに寄贈します。<br/><br/>未来の自由と繁栄に対する希望と信念を込めて<br/>地球とその先に<br/>すべての人々へ感謝します。</center></p>
|
<p><center>Reticulumプロトコルはすべての人々の共有財産です。<br/>私はそれをパブリックドメインに寄贈します。<br/><br/>未来の自由と繁栄に対する希望と信念を込めて<br/>地球とその先に<br/>すべての人々へ感謝します。</center></p>
|
||||||
<hr />
|
<hr />
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
<li><a href="https://www.python.org">Python</a></li>
|
<li><a href="https://www.python.org">Python</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<p>Het protocolontwerp en de referentie-implementatie voor Reticulum werden tussen 2014 en 2022 uitgevoerd door Mark Qvist.</p>
|
<p>Het protocolontwerp en de referentie-implementatie voor Reticulum werden tussen 2014 en 2022 uitgevoerd door Mark Qvist.</p>
|
||||||
<p>De <a href="https://github.com/markqvist/reticulum">Python-referentie-implementatie van Reticulum</a> en deze website zijn gelicentieerd onder de <a href="license.html">MIT License</a>. <a href="donate_nl.html">Doneer</a> om de voortdurende ontwikkeling te ondersteunen.</p>
|
<p>De <a href="https://github.com/markqvist/reticulum">Python-referentie-implementatie van Reticulum</a> en deze website zijn gelicentieerd onder de <a href="license.html">Reticulum License</a>. <a href="donate_nl.html">Doneer</a> om de voortdurende ontwikkeling te ondersteunen.</p>
|
||||||
<hr />
|
<hr />
|
||||||
<p><center>Het Reticulum Protocol is het gedeelde eigendom van alle mensen,<br/>Ik draag het bij aan het publieke domein.<br/><br/>Toegewijd met hoop en geloof in de toekomst<br/>vrijheid en welvaart van allemaal,<br/>op aarde en daarbuiten.<br/><br/>Bedankt</center></p>
|
<p><center>Het Reticulum Protocol is het gedeelde eigendom van alle mensen,<br/>Ik draag het bij aan het publieke domein.<br/><br/>Toegewijd met hoop en geloof in de toekomst<br/>vrijheid en welvaart van allemaal,<br/>op aarde en daarbuiten.<br/><br/>Bedankt</center></p>
|
||||||
<hr />
|
<hr />
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
<li><a href="https://www.python.org">Python</a></li>
|
<li><a href="https://www.python.org">Python</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<p>Projekt protokołu i wdrożenie referencyjne dla Reticulum zostało zrealizowane w latach 2014-2022 przez Marka Qvista.</p>
|
<p>Projekt protokołu i wdrożenie referencyjne dla Reticulum zostało zrealizowane w latach 2014-2022 przez Marka Qvista.</p>
|
||||||
<p><a href="https://github.com/markqvist/reticulum">Implementacja referencji dla języka Python</a> oraz ta strona są opubliowanie na <a href="license.html">Licencji MIT</a>. Proszę przekaż <a href="donate_pl.html">darowiznę</a>, żeby wesprzeć dalszy rozwój projektu.</p>
|
<p><a href="https://github.com/markqvist/reticulum">Implementacja referencji dla języka Python</a> oraz ta strona są opubliowanie na <a href="license.html">Licencji Reticulum</a>. Proszę przekaż <a href="donate_pl.html">darowiznę</a>, żeby wesprzeć dalszy rozwój projektu.</p>
|
||||||
<hr />
|
<hr />
|
||||||
<p><center>Protokół Reticulum jest wspólną własnością wszystkich ludzi,<br/>Przekazuję go do domeny publicznej.<br/><br/>Dedykowany z nadzieją i wiarą w przyszłość<br/>wolność i dobrobyt wszystkich,<br/>na Ziemi i poza nią.<br/><br/>Dziękuję</center></p>
|
<p><center>Protokół Reticulum jest wspólną własnością wszystkich ludzi,<br/>Przekazuję go do domeny publicznej.<br/><br/>Dedykowany z nadzieją i wiarą w przyszłość<br/>wolność i dobrobyt wszystkich,<br/>na Ziemi i poza nią.<br/><br/>Dziękuję</center></p>
|
||||||
<hr />
|
<hr />
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
<li><a href="https://www.python.org">Python</a></li>
|
<li><a href="https://www.python.org">Python</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<p>O design do protocolo e implementação de referência foram desenvolvidos entre 2014 e 2022 por Mark Qvist.</p>
|
<p>O design do protocolo e implementação de referência foram desenvolvidos entre 2014 e 2022 por Mark Qvist.</p>
|
||||||
<p>A <a href="https://github.com/markqvist/reticulum">implementação Python referencial do Reticulum</a> e seu site utilizam a <a href="https://reticulum.network/license.html">licença MIT</a>. Por favor considere uma <a href="donate.html">doação</a> para ajudar a continuar o projeto.</p>
|
<p>A <a href="https://github.com/markqvist/reticulum">implementação Python referencial do Reticulum</a> e seu site utilizam a <a href="https://reticulum.network/license.html">licença Reticulum</a>. Por favor considere uma <a href="donate.html">doação</a> para ajudar a continuar o projeto.</p>
|
||||||
<hr />
|
<hr />
|
||||||
<p><center>O Protocolo Reticulum é de propriedade de todas as pessoas,<br/>Eu contribuo para o domínio público.<br/><br/>Dedicado com a esperança e crença na liberdade futura e prosperidade para todos,<br/>na Terra e além.<br/><br/>Obrigado</center></p>
|
<p><center>O Protocolo Reticulum é de propriedade de todas as pessoas,<br/>Eu contribuo para o domínio público.<br/><br/>Dedicado com a esperança e crença na liberdade futura e prosperidade para todos,<br/>na Terra e além.<br/><br/>Obrigado</center></p>
|
||||||
<hr />
|
<hr />
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
<li><a href="https://www.python.org">Python</a></li>
|
<li><a href="https://www.python.org">Python</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<p>Reticulum'un protokol tasarımı ve referans uygulaması, 2014 ile 2022 yılları arasında Mark Qvist tarafından gerçekleştirildi.</p>
|
<p>Reticulum'un protokol tasarımı ve referans uygulaması, 2014 ile 2022 yılları arasında Mark Qvist tarafından gerçekleştirildi.</p>
|
||||||
<p><a href="https://github.com/markqvist/reticulum">Reticulum'un Python referans uygulaması</a> ve bu web sitesi <a href="license.html">MIT Lisansı</a> altında lisanslanmıştır. Lütfen devam eden geliştirmeyi desteklemek için <a href="donate_tr.html">bağış</a> yapın.</p>
|
<p><a href="https://github.com/markqvist/reticulum">Reticulum'un Python referans uygulaması</a> ve bu web sitesi <a href="license.html">Reticulum Lisansı</a> altında lisanslanmıştır. Lütfen devam eden geliştirmeyi desteklemek için <a href="donate_tr.html">bağış</a> yapın.</p>
|
||||||
<hr />
|
<hr />
|
||||||
<p><center>Reticulum Protokolü, tüm insanların ortak mülkiyetidir,<br/>O toplumsal alana katkıda bulunmak için üretildi.<br/><br/>Gelecekteki özgürlük ve refah<br/>umut ve inancıyla oluşturuldu,<br/>Dünya ve ötesinde.<br/><br/>Hepinize Teşekkür Ederim</center></p>
|
<p><center>Reticulum Protokolü, tüm insanların ortak mülkiyetidir,<br/>O toplumsal alana katkıda bulunmak için üretildi.<br/><br/>Gelecekteki özgürlük ve refah<br/>umut ve inancıyla oluşturuldu,<br/>Dünya ve ötesinde.<br/><br/>Hepinize Teşekkür Ederim</center></p>
|
||||||
<hr />
|
<hr />
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
<li><a href="https://www.python.org">Python</a></li>
|
<li><a href="https://www.python.org">Python</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<p>Reticulum 的协议设计与参考实现是由 Mark Qvist 于 2014-2022 进行的。</p>
|
<p>Reticulum 的协议设计与参考实现是由 Mark Qvist 于 2014-2022 进行的。</p>
|
||||||
<p>Reticulum 的 <a href="https://github.com/markqvist/reticulum">Python 参考实现</a> 以及这个网站均为 <a href="license.html">MIT 授权</a>。若想支持 Reticulum 的开发,欢迎<a href="donate_zh-cn.html">捐赠</a>。</p>
|
<p>Reticulum 的 <a href="https://github.com/markqvist/reticulum">Python 参考实现</a> 以及这个网站均为 <a href="license.html">Reticulum 授权</a>。若想支持 Reticulum 的开发,欢迎<a href="donate_zh-cn.html">捐赠</a>。</p>
|
||||||
<hr />
|
<hr />
|
||||||
<p><center>Reticulum 协议是人类的共有财产<br/>我将其贡献至公有领域<br/><br/>带着期许与信念面向未来<br/>看那自由与繁荣之花<br/>开满世间大地<br/><br/>谢谢各位</center></p>
|
<p><center>Reticulum 协议是人类的共有财产<br/>我将其贡献至公有领域<br/><br/>带着期许与信念面向未来<br/>看那自由与繁荣之花<br/>开满世间大地<br/><br/>谢谢各位</center></p>
|
||||||
<hr />
|
<hr />
|
||||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -125,7 +125,7 @@ Linux, macOS and Windows.
|
||||||
:align: center
|
:align: center
|
||||||
:target: _images/sideband_devices.webp
|
:target: _images/sideband_devices.webp
|
||||||
|
|
||||||
.. only:: latexpdf
|
.. only:: latex
|
||||||
|
|
||||||
.. image:: screenshots/sideband_devices.png
|
.. image:: screenshots/sideband_devices.png
|
||||||
:align: center
|
:align: center
|
||||||
|
@ -149,7 +149,7 @@ functionality, and a range of other interesting functions.
|
||||||
:align: center
|
:align: center
|
||||||
:target: _images/meshchat_1.webp
|
:target: _images/meshchat_1.webp
|
||||||
|
|
||||||
.. only:: latexpdf
|
.. only:: latex
|
||||||
|
|
||||||
.. image:: screenshots/meshchat_1.png
|
.. image:: screenshots/meshchat_1.png
|
||||||
:align: center
|
:align: center
|
||||||
|
|
|
@ -88,7 +88,8 @@ to the configuration.
|
||||||
Supported Boards and Devices
|
Supported Boards and Devices
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
To create one or more RNodes, you will need to obtain supported development
|
To create one or more RNodes, you will need to obtain supported development
|
||||||
boards. The following boards are supported by the auto-installer.
|
boards or completed devices. The following boards and devices are supported
|
||||||
|
by the auto-installer.
|
||||||
|
|
||||||
------------
|
------------
|
||||||
|
|
||||||
|
@ -98,7 +99,7 @@ boards. The following boards are supported by the auto-installer.
|
||||||
|
|
||||||
LilyGO T-Beam Supreme
|
LilyGO T-Beam Supreme
|
||||||
"""""""""""""
|
"""""""""""""
|
||||||
- **Transceiver IC** Semtech SX1262, SX1268
|
- **Transceiver IC** Semtech SX1262 or SX1268
|
||||||
- **Device Platform** ESP32
|
- **Device Platform** ESP32
|
||||||
- **Manufacturer** `LilyGO <https://lilygo.cn>`_
|
- **Manufacturer** `LilyGO <https://lilygo.cn>`_
|
||||||
|
|
||||||
|
@ -110,7 +111,7 @@ LilyGO T-Beam Supreme
|
||||||
|
|
||||||
LilyGO T-Beam
|
LilyGO T-Beam
|
||||||
"""""""""""""
|
"""""""""""""
|
||||||
- **Transceiver IC** Semtech SX1262, SX1268, SX1276 and SX1278
|
- **Transceiver IC** Semtech SX1262, SX1268, SX1276 or SX1278
|
||||||
- **Device Platform** ESP32
|
- **Device Platform** ESP32
|
||||||
- **Manufacturer** `LilyGO <https://lilygo.cn>`_
|
- **Manufacturer** `LilyGO <https://lilygo.cn>`_
|
||||||
|
|
||||||
|
@ -122,7 +123,7 @@ LilyGO T-Beam
|
||||||
|
|
||||||
LilyGO T3S3
|
LilyGO T3S3
|
||||||
"""""""""""
|
"""""""""""
|
||||||
- **Transceiver IC** Semtech SX1262, SX1268, SX1276 and SX1278
|
- **Transceiver IC** Semtech SX1262, SX1268, SX1276 or SX1278
|
||||||
- **Device Platform** ESP32
|
- **Device Platform** ESP32
|
||||||
- **Manufacturer** `LilyGO <https://lilygo.cn>`_
|
- **Manufacturer** `LilyGO <https://lilygo.cn>`_
|
||||||
|
|
||||||
|
@ -134,19 +135,31 @@ LilyGO T3S3
|
||||||
|
|
||||||
RAK4631-based Boards
|
RAK4631-based Boards
|
||||||
""""""""""""""""""""
|
""""""""""""""""""""
|
||||||
- **Transceiver IC** Semtech SX1262, SX1268
|
- **Transceiver IC** Semtech SX1262 or SX1268
|
||||||
- **Device Platform** nRF52
|
- **Device Platform** nRF52
|
||||||
- **Manufacturer** `RAK Wireless <https://www.rakwireless.com>`_
|
- **Manufacturer** `RAK Wireless <https://www.rakwireless.com>`_
|
||||||
|
|
||||||
------------
|
------------
|
||||||
|
|
||||||
|
.. image:: graphics/board_opencomxl.png
|
||||||
|
:width: 45%
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
OpenCom XL
|
||||||
|
""""""""""""""""""""
|
||||||
|
- **Transceiver ICs** Semtech SX1262 and SX1280 (dual transceiver)
|
||||||
|
- **Device Platform** nRF52
|
||||||
|
- **Manufacturer** `RAK Wireless <https://liberatedsystems.co.uk/>`_
|
||||||
|
|
||||||
|
------------
|
||||||
|
|
||||||
.. image:: graphics/board_rnodev2.png
|
.. image:: graphics/board_rnodev2.png
|
||||||
:width: 68%
|
:width: 68%
|
||||||
:align: center
|
:align: center
|
||||||
|
|
||||||
Unsigned RNode v2.x
|
Unsigned RNode v2.x
|
||||||
"""""""""""""""""""
|
"""""""""""""""""""
|
||||||
- **Transceiver IC** Semtech SX1276 and SX1278
|
- **Transceiver IC** Semtech SX1276 or SX1278
|
||||||
- **Device Platform** ESP32
|
- **Device Platform** ESP32
|
||||||
- **Manufacturer** `unsigned.io <https://unsigned.io>`_
|
- **Manufacturer** `unsigned.io <https://unsigned.io>`_
|
||||||
|
|
||||||
|
@ -158,7 +171,7 @@ Unsigned RNode v2.x
|
||||||
|
|
||||||
LilyGO LoRa32 v2.1
|
LilyGO LoRa32 v2.1
|
||||||
""""""""""""""""""
|
""""""""""""""""""
|
||||||
- **Transceiver IC** Semtech SX1276 and SX1278
|
- **Transceiver IC** Semtech SX1276 or SX1278
|
||||||
- **Device Platform** ESP32
|
- **Device Platform** ESP32
|
||||||
- **Manufacturer** `LilyGO <https://lilygo.cn>`_
|
- **Manufacturer** `LilyGO <https://lilygo.cn>`_
|
||||||
|
|
||||||
|
@ -170,7 +183,7 @@ LilyGO LoRa32 v2.1
|
||||||
|
|
||||||
LilyGO LoRa32 v2.0
|
LilyGO LoRa32 v2.0
|
||||||
""""""""""""""""""
|
""""""""""""""""""
|
||||||
- **Transceiver IC** Semtech SX1276 and SX1278
|
- **Transceiver IC** Semtech SX1276 or SX1278
|
||||||
- **Device Platform** ESP32
|
- **Device Platform** ESP32
|
||||||
- **Manufacturer** `LilyGO <https://lilygo.cn>`_
|
- **Manufacturer** `LilyGO <https://lilygo.cn>`_
|
||||||
|
|
||||||
|
@ -182,7 +195,7 @@ LilyGO LoRa32 v2.0
|
||||||
|
|
||||||
LilyGO LoRa32 v1.0
|
LilyGO LoRa32 v1.0
|
||||||
""""""""""""""""""
|
""""""""""""""""""
|
||||||
- **Transceiver IC** Semtech SX1276 and SX1278
|
- **Transceiver IC** Semtech SX1276 or SX1278
|
||||||
- **Device Platform** ESP32
|
- **Device Platform** ESP32
|
||||||
- **Manufacturer** `LilyGO <https://lilygo.cn>`_
|
- **Manufacturer** `LilyGO <https://lilygo.cn>`_
|
||||||
|
|
||||||
|
@ -194,19 +207,43 @@ LilyGO LoRa32 v1.0
|
||||||
|
|
||||||
LilyGO T-Deck
|
LilyGO T-Deck
|
||||||
"""""""""""""
|
"""""""""""""
|
||||||
- **Transceiver IC** Semtech SX1262, SX1268
|
- **Transceiver IC** Semtech SX1262 or SX1268
|
||||||
- **Device Platform** ESP32
|
- **Device Platform** ESP32
|
||||||
- **Manufacturer** `LilyGO <https://lilygo.cn>`_
|
- **Manufacturer** `LilyGO <https://lilygo.cn>`_
|
||||||
|
|
||||||
------------
|
------------
|
||||||
|
|
||||||
|
.. image:: graphics/board_techo.png
|
||||||
|
:width: 45%
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
LilyGO T-Echo
|
||||||
|
"""""""""""""
|
||||||
|
- **Transceiver IC** Semtech SX1262 or SX1268
|
||||||
|
- **Device Platform** nRF52
|
||||||
|
- **Manufacturer** `LilyGO <https://lilygo.cn>`_
|
||||||
|
|
||||||
|
------------
|
||||||
|
|
||||||
|
.. image:: graphics/board_t114.png
|
||||||
|
:width: 58%
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
Heltec T114
|
||||||
|
"""""""""""
|
||||||
|
- **Transceiver IC** Semtech SX1262 or SX1268
|
||||||
|
- **Device Platform** ESP32
|
||||||
|
- **Manufacturer** `Heltec Automation <https://heltec.org>`_
|
||||||
|
|
||||||
|
------------
|
||||||
|
|
||||||
.. image:: graphics/board_heltec32v30.png
|
.. image:: graphics/board_heltec32v30.png
|
||||||
:width: 58%
|
:width: 58%
|
||||||
:align: center
|
:align: center
|
||||||
|
|
||||||
Heltec LoRa32 v3.0
|
Heltec LoRa32 v3.0
|
||||||
""""""""""""""""""
|
""""""""""""""""""
|
||||||
- **Transceiver IC** Semtech SX1262 and SX1268
|
- **Transceiver IC** Semtech SX1262 or SX1268
|
||||||
- **Device Platform** ESP32
|
- **Device Platform** ESP32
|
||||||
- **Manufacturer** `Heltec Automation <https://heltec.org>`_
|
- **Manufacturer** `Heltec Automation <https://heltec.org>`_
|
||||||
|
|
||||||
|
@ -218,24 +255,12 @@ Heltec LoRa32 v3.0
|
||||||
|
|
||||||
Heltec LoRa32 v2.0
|
Heltec LoRa32 v2.0
|
||||||
""""""""""""""""""
|
""""""""""""""""""
|
||||||
- **Transceiver IC** Semtech SX1276 and SX1278
|
- **Transceiver IC** Semtech SX1276 or SX1278
|
||||||
- **Device Platform** ESP32
|
- **Device Platform** ESP32
|
||||||
- **Manufacturer** `Heltec Automation <https://heltec.org>`_
|
- **Manufacturer** `Heltec Automation <https://heltec.org>`_
|
||||||
|
|
||||||
------------
|
------------
|
||||||
|
|
||||||
.. image:: graphics/board_rnode.png
|
|
||||||
:width: 50%
|
|
||||||
:align: center
|
|
||||||
|
|
||||||
Unsigned RNode v1.x
|
|
||||||
"""""""""""""""""""
|
|
||||||
- **Transceiver IC** Semtech SX1276 and SX1278
|
|
||||||
- **Device Platform** AVR ATmega1284p
|
|
||||||
- **Manufacturer** `unsigned.io <https://unsigned.io>`_
|
|
||||||
|
|
||||||
------------
|
|
||||||
|
|
||||||
.. _rnode-installation:
|
.. _rnode-installation:
|
||||||
|
|
||||||
Installation
|
Installation
|
||||||
|
|
|
@ -34,12 +34,26 @@ example for basic interface code to build upon.
|
||||||
Auto Interface
|
Auto Interface
|
||||||
==============
|
==============
|
||||||
|
|
||||||
The Auto Interface enables communication with other discoverable Reticulum
|
The ``AutoInterface`` enables communication with other discoverable Reticulum
|
||||||
nodes over autoconfigured IPv6 and UDP. It does not need any functional IP
|
nodes over any kind of local Ethernet or WiFi-based medium. Even though it uses IPv6 for peer
|
||||||
infrastructure like routers or DHCP servers, but will require at least some
|
discovery, and UDP for packet transport, it **does not** need any functional IP
|
||||||
sort of switching medium between peers (a wired switch, a hub, a WiFi access
|
infrastructure like routers or DHCP servers, on your physical network.
|
||||||
point or similar), and that link-local IPv6 is enabled in your operating
|
|
||||||
system, which should be enabled by default in almost all OSes.
|
As long as there is at least some sort of switching medium present between peers (a
|
||||||
|
wired switch, a hub, a WiFi access point or similar, or simply two devices connected
|
||||||
|
directly by Ethernet cable), it will work without any configuration, setup or intermediary devices.
|
||||||
|
|
||||||
|
For ``AutoInterface`` peer discovery to work, it's also required that link-local
|
||||||
|
IPv6 support is available on your system, which it should be by default in all
|
||||||
|
current operating systems, both desktop and mobile.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
Almost all current Ethernet and WiFi hardware will work without any kind
|
||||||
|
of configuration or setup with ``AutoInterface``, but a small subset of
|
||||||
|
devices turn on options that limit device-to-device communication by default,
|
||||||
|
resulting in ``AutoInterface`` peer discovery being blocked. This issue is
|
||||||
|
most commonly seen on very cheap, ISP-supplied WiFi routers, and can sometimes
|
||||||
|
be turned off in the router configuration.
|
||||||
|
|
||||||
.. code::
|
.. code::
|
||||||
|
|
||||||
|
@ -48,40 +62,34 @@ system, which should be enabled by default in almost all OSes.
|
||||||
# tion with all other reachable devices on all
|
# tion with all other reachable devices on all
|
||||||
# usable physical ethernet-based devices that
|
# usable physical ethernet-based devices that
|
||||||
# are available on the system.
|
# are available on the system.
|
||||||
|
|
||||||
[[Default Interface]]
|
[[Default Interface]]
|
||||||
type = AutoInterface
|
type = AutoInterface
|
||||||
interface_enabled = True
|
enabled = yes
|
||||||
|
|
||||||
# This example demonstrates an more specifically
|
# This example demonstrates an more specifically
|
||||||
# configured Auto Interface, that only uses spe-
|
# configured Auto Interface, that only uses spe-
|
||||||
# cific physical interfaces, and has a number of
|
# cific physical interfaces, and has a number of
|
||||||
# other configuration options set.
|
# other configuration options set.
|
||||||
|
|
||||||
[[Default Interface]]
|
[[Default Interface]]
|
||||||
type = AutoInterface
|
type = AutoInterface
|
||||||
interface_enabled = True
|
enabled = yes
|
||||||
|
|
||||||
# You can create multiple isolated Reticulum
|
# You can create multiple isolated Reticulum
|
||||||
# networks on the same physical LAN by
|
# networks on the same physical LAN by
|
||||||
# specifying different Group IDs.
|
# specifying different Group IDs.
|
||||||
|
|
||||||
group_id = reticulum
|
group_id = reticulum
|
||||||
|
|
||||||
# You can also choose the multicast address type:
|
# You can also choose the multicast address type:
|
||||||
# temporary (default, Temporary Multicast Address)
|
# temporary (default, Temporary Multicast Address)
|
||||||
# or permanent (Permanent Multicast Address)
|
# or permanent (Permanent Multicast Address)
|
||||||
|
|
||||||
multicast_address_type = permanent
|
multicast_address_type = permanent
|
||||||
|
|
||||||
# You can also select specifically which
|
# You can also select specifically which
|
||||||
# kernel networking devices to use.
|
# kernel networking devices to use.
|
||||||
|
|
||||||
devices = wlan0,eth1
|
devices = wlan0,eth1
|
||||||
|
|
||||||
# Or let AutoInterface use all suitable
|
# Or let AutoInterface use all suitable
|
||||||
# devices except for a list of ignored ones.
|
# devices except for a list of ignored ones.
|
||||||
|
|
||||||
ignored_devices = tun0,eth0
|
ignored_devices = tun0,eth0
|
||||||
|
|
||||||
|
|
||||||
|
@ -95,7 +103,7 @@ the discovery scope by setting it to one of ``link``, ``admin``, ``site``,
|
||||||
|
|
||||||
[[Default Interface]]
|
[[Default Interface]]
|
||||||
type = AutoInterface
|
type = AutoInterface
|
||||||
interface_enabled = True
|
enabled = yes
|
||||||
|
|
||||||
# Configure global discovery
|
# Configure global discovery
|
||||||
|
|
||||||
|
@ -108,73 +116,114 @@ the discovery scope by setting it to one of ``link``, ``admin``, ``site``,
|
||||||
data_port = 49555
|
data_port = 49555
|
||||||
|
|
||||||
|
|
||||||
.. _interfaces-i2p:
|
.. _interfaces-backbone:
|
||||||
|
|
||||||
I2P Interface
|
Backbone Interface
|
||||||
=============
|
====================
|
||||||
|
|
||||||
The I2P interface lets you connect Reticulum instances over the
|
The Backbone interface is a very fast and resource efficient interface type, primarily
|
||||||
`Invisible Internet Protocol <https://i2pd.website>`_. This can be
|
intended for interconnecting Reticulum instances over many different types of mediums.
|
||||||
especially useful in cases where you want to host a globally reachable
|
It uses a kernel-event I/O backend, and can handle thousands of interfaces and/or clients
|
||||||
Reticulum instance, but do not have access to any public IP addresses,
|
with relatively low system resource utilisation. **This interface type is currently only
|
||||||
have a frequently changing IP address, or have firewalls blocking
|
supported on Linux and Android**.
|
||||||
inbound traffic.
|
|
||||||
|
|
||||||
Using the I2P interface, you will get a globally reachable, portable
|
|
||||||
and persistent I2P address that your Reticulum instance can be reached
|
|
||||||
at.
|
|
||||||
|
|
||||||
To use the I2P interface, you must have an I2P router running
|
|
||||||
on your system. The easiest way to achieve this is to download and
|
|
||||||
install the `latest release <https://github.com/PurpleI2P/i2pd/releases/latest>`_
|
|
||||||
of the ``i2pd`` package. For more details about I2P, see the
|
|
||||||
`geti2p.net website <https://geti2p.net/en/about/intro>`_.
|
|
||||||
|
|
||||||
When an I2P router is running on your system, you can simply add
|
|
||||||
an I2P interface to Reticulum:
|
|
||||||
|
|
||||||
.. code::
|
|
||||||
|
|
||||||
[[I2P]]
|
|
||||||
type = I2PInterface
|
|
||||||
interface_enabled = yes
|
|
||||||
connectable = yes
|
|
||||||
|
|
||||||
On the first start, Reticulum will generate a new I2P address for the
|
|
||||||
interface and start listening for inbound traffic on it. This can take
|
|
||||||
a while the first time, especially if your I2P router was also just
|
|
||||||
started, and is not yet well-connected to the I2P network. When ready,
|
|
||||||
you should see I2P base32 address printed to your log file. You can
|
|
||||||
also inspect the status of the interface using the ``rnstatus`` utility.
|
|
||||||
|
|
||||||
To connect to other Reticulum instances over I2P, just add a comma-separated
|
|
||||||
list of I2P base32 addresses to the ``peers`` option of the interface:
|
|
||||||
|
|
||||||
.. code::
|
|
||||||
|
|
||||||
[[I2P]]
|
|
||||||
type = I2PInterface
|
|
||||||
interface_enabled = yes
|
|
||||||
connectable = yes
|
|
||||||
peers = 5urvjicpzi7q3ybztsef4i5ow2aq4soktfj7zedz53s47r54jnqq.b32.i2p
|
|
||||||
|
|
||||||
It can take anywhere from a few seconds to a few minutes to establish
|
|
||||||
I2P connections to the desired peers, so Reticulum handles the process
|
|
||||||
in the background, and will output relevant events to the log.
|
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
While the I2P interface is the simplest way to use
|
The Backbone Interface is fully compatible with the ``TCPServerInterface`` and ``TCPClientInterface``
|
||||||
Reticulum over I2P, it is also possible to tunnel the TCP server and
|
types, and they can be used interchangably, and cross-connect with each other. On systems that support
|
||||||
client interfaces over I2P manually. This can be useful in situations
|
``BackboneInterface``, it is generally recommended to use it, unless you need specific options or
|
||||||
where more control is needed, but requires manual tunnel setup through
|
features that the TCP server and client interfaces provide.
|
||||||
the I2P daemon configuration.
|
|
||||||
|
|
||||||
It is important to note that the two methods are *interchangably compatible*.
|
While the goal is to support *all* socket types and I/O devices provided by the underlying
|
||||||
You can use the I2PInterface to connect to a TCPServerInterface that
|
operating system, the initial release only provides support for TCP connections over IPv4
|
||||||
was manually tunneled over I2P, for example. This offers a high degree
|
and IPv6.
|
||||||
of flexibility in network setup, while retaining ease of use in simpler
|
|
||||||
use-cases.
|
|
||||||
|
|
||||||
|
For all types of connections over a ``BackboneInterface``, Reticulum will gracefully
|
||||||
|
handle intermittency, link loss, and connections that come and go.
|
||||||
|
|
||||||
|
Listeners
|
||||||
|
---------
|
||||||
|
|
||||||
|
The following examples illustrates various ways to set up ``BackboneInterface`` listeners.
|
||||||
|
|
||||||
|
.. code::
|
||||||
|
|
||||||
|
# This example demonstrates a backbone interface
|
||||||
|
# that listens for incoming connections on the
|
||||||
|
# specified IP address and port number.
|
||||||
|
[[Backbone Listener]]
|
||||||
|
type = BackboneInterface
|
||||||
|
enabled = yes
|
||||||
|
listen_on = 0.0.0.0
|
||||||
|
port = 4242
|
||||||
|
|
||||||
|
# Alternatively you can bind to a specific IP
|
||||||
|
[[Backbone Listener]]
|
||||||
|
type = BackboneInterface
|
||||||
|
enabled = yes
|
||||||
|
listen_on = 10.0.0.88
|
||||||
|
port = 4242
|
||||||
|
|
||||||
|
# Or a specific network device
|
||||||
|
[[Backbone Listener]]
|
||||||
|
type = BackboneInterface
|
||||||
|
enabled = yes
|
||||||
|
device = eth0
|
||||||
|
port = 4242
|
||||||
|
|
||||||
|
If you are using the interface on a device which has both IPv4 and IPv6 addresses available,
|
||||||
|
you can use the ``prefer_ipv6`` option to bind to the IPv6 address:
|
||||||
|
|
||||||
|
.. code::
|
||||||
|
|
||||||
|
# This example demonstrates a backbone interface
|
||||||
|
# listening on the IPv6 address of a specified
|
||||||
|
# kernel networking device.
|
||||||
|
[[Backbone Listener]]
|
||||||
|
type = BackboneInterface
|
||||||
|
enabled = yes
|
||||||
|
prefer_ipv6 = yes
|
||||||
|
device = eth0
|
||||||
|
port = 4242
|
||||||
|
|
||||||
|
To use the ``BackboneInterface`` over `Yggdrasil <https://yggdrasil-network.github.io/>`_, you
|
||||||
|
can simply specify the Yggdrasil ``tun`` device and a listening port, like so:
|
||||||
|
|
||||||
|
.. code::
|
||||||
|
|
||||||
|
# This example demonstrates a backbone interface
|
||||||
|
# listening for connections over Yggdrasil.
|
||||||
|
[[Yggdrasil Backbone Interface]]
|
||||||
|
type = BackboneInterface
|
||||||
|
enabled = yes
|
||||||
|
device = tun0
|
||||||
|
port = 4343
|
||||||
|
|
||||||
|
Connecting Remotes
|
||||||
|
------------------
|
||||||
|
The following examples illustrates various ways to connect to remote ``BackboneInterface`` listeners.
|
||||||
|
As noted above, ``BackboneInterface`` interfaces can also connect to remote ``TCPServerInterface``,
|
||||||
|
and as such these interface types can be used interchangably.
|
||||||
|
|
||||||
|
.. code::
|
||||||
|
|
||||||
|
# Here's an example of a backbone interface that
|
||||||
|
# connects to a remote listener.
|
||||||
|
[[Backbone Remote]]
|
||||||
|
type = BackboneInterface
|
||||||
|
enabled = yes
|
||||||
|
remote = amsterdam.connect.reticulum.network
|
||||||
|
target_port = 4251
|
||||||
|
|
||||||
|
To connect to remotes over `Yggdrasil <https://yggdrasil-network.github.io/>`_, simply
|
||||||
|
specify the target Yggdrasil IPv6 address and port, like so:
|
||||||
|
|
||||||
|
.. code::
|
||||||
|
|
||||||
|
[[Yggdrasil Remote]]
|
||||||
|
type = BackboneInterface
|
||||||
|
enabled = yes
|
||||||
|
target_host = 201:5d78:af73:5caf:a4de:a79f:3278:71e5
|
||||||
|
target_port = 4343
|
||||||
|
|
||||||
.. _interfaces-tcps:
|
.. _interfaces-tcps:
|
||||||
|
|
||||||
|
@ -188,28 +237,27 @@ configured, other Reticulum peers can connect to it with a TCP Client interface.
|
||||||
.. code::
|
.. code::
|
||||||
|
|
||||||
# This example demonstrates a TCP server interface.
|
# This example demonstrates a TCP server interface.
|
||||||
# It will listen for incoming connections on the
|
# It will listen for incoming connections on all IP
|
||||||
# specified IP address and port number.
|
# interfaces on port 4242.
|
||||||
|
|
||||||
[[TCP Server Interface]]
|
[[TCP Server Interface]]
|
||||||
type = TCPServerInterface
|
type = TCPServerInterface
|
||||||
interface_enabled = True
|
enabled = yes
|
||||||
|
|
||||||
# This configuration will listen on all IP
|
|
||||||
# interfaces on port 4242
|
|
||||||
|
|
||||||
listen_ip = 0.0.0.0
|
listen_ip = 0.0.0.0
|
||||||
listen_port = 4242
|
listen_port = 4242
|
||||||
|
|
||||||
# Alternatively you can bind to a specific IP
|
# Alternatively you can bind to a specific IP
|
||||||
|
[[TCP Server Interface]]
|
||||||
|
type = TCPServerInterface
|
||||||
|
enabled = yes
|
||||||
|
listen_ip = 10.0.0.88
|
||||||
|
listen_port = 4242
|
||||||
|
|
||||||
# listen_ip = 10.0.0.88
|
# Or a specific network device
|
||||||
# listen_port = 4242
|
[[TCP Server Interface]]
|
||||||
|
type = TCPServerInterface
|
||||||
# Or a specific network device
|
enabled = yes
|
||||||
|
device = eth0
|
||||||
# device = eth0
|
listen_port = 4242
|
||||||
# port = 4242
|
|
||||||
|
|
||||||
If you are using the interface on a device which has both IPv4 and IPv6 addresses available,
|
If you are using the interface on a device which has both IPv4 and IPv6 addresses available,
|
||||||
you can use the ``prefer_ipv6`` option to bind to the IPv6 address:
|
you can use the ``prefer_ipv6`` option to bind to the IPv6 address:
|
||||||
|
@ -222,11 +270,10 @@ you can use the ``prefer_ipv6`` option to bind to the IPv6 address:
|
||||||
|
|
||||||
[[TCP Server Interface]]
|
[[TCP Server Interface]]
|
||||||
type = TCPServerInterface
|
type = TCPServerInterface
|
||||||
interface_enabled = True
|
enabled = yes
|
||||||
|
prefer_ipv6 = True
|
||||||
device = eth0
|
device = eth0
|
||||||
port = 4242
|
port = 4242
|
||||||
prefer_ipv6 = True
|
|
||||||
|
|
||||||
To use the TCP Server Interface over `Yggdrasil <https://yggdrasil-network.github.io/>`_, you
|
To use the TCP Server Interface over `Yggdrasil <https://yggdrasil-network.github.io/>`_, you
|
||||||
can simply specify the Yggdrasil ``tun`` device and a listening port, like so:
|
can simply specify the Yggdrasil ``tun`` device and a listening port, like so:
|
||||||
|
@ -234,10 +281,10 @@ can simply specify the Yggdrasil ``tun`` device and a listening port, like so:
|
||||||
.. code::
|
.. code::
|
||||||
|
|
||||||
[[Yggdrasil TCP Server Interface]]
|
[[Yggdrasil TCP Server Interface]]
|
||||||
type = TCPServerInterface
|
type = TCPServerInterface
|
||||||
interface_enabled = yes
|
enabled = yes
|
||||||
device = tun0
|
device = tun0
|
||||||
listen_port = 4343
|
listen_port = 4343
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
The TCP interfaces support tunneling over I2P, but to do so reliably,
|
The TCP interfaces support tunneling over I2P, but to do so reliably,
|
||||||
|
@ -246,11 +293,11 @@ can simply specify the Yggdrasil ``tun`` device and a listening port, like so:
|
||||||
.. code::
|
.. code::
|
||||||
|
|
||||||
[[TCP Server on I2P]]
|
[[TCP Server on I2P]]
|
||||||
type = TCPServerInterface
|
type = TCPServerInterface
|
||||||
interface_enabled = yes
|
enabled = yes
|
||||||
listen_ip = 127.0.0.1
|
listen_ip = 127.0.0.1
|
||||||
listen_port = 5001
|
listen_port = 5001
|
||||||
i2p_tunneled = yes
|
i2p_tunneled = yes
|
||||||
|
|
||||||
In almost all cases, it is easier to use the dedicated ``I2PInterface``, but for complete
|
In almost all cases, it is easier to use the dedicated ``I2PInterface``, but for complete
|
||||||
control, and using I2P routers running on external systems, this option also exists.
|
control, and using I2P routers running on external systems, this option also exists.
|
||||||
|
@ -260,7 +307,7 @@ control, and using I2P routers running on external systems, this option also exi
|
||||||
TCP Client Interface
|
TCP Client Interface
|
||||||
====================
|
====================
|
||||||
|
|
||||||
To connect to a TCP server interface, you would naturally use the TCP client
|
To connect to a TCP server interface, you can use the TCP client
|
||||||
interface. Many TCP Client interfaces from different peers can connect to the
|
interface. Many TCP Client interfaces from different peers can connect to the
|
||||||
same TCP Server interface at the same time.
|
same TCP Server interface at the same time.
|
||||||
|
|
||||||
|
@ -272,10 +319,9 @@ and restore connectivity after a failure, once the other end of a TCP interface
|
||||||
|
|
||||||
# Here's an example of a TCP Client interface. The
|
# Here's an example of a TCP Client interface. The
|
||||||
# target_host can be a hostname or an IPv4 or IPv6 address.
|
# target_host can be a hostname or an IPv4 or IPv6 address.
|
||||||
|
|
||||||
[[TCP Client Interface]]
|
[[TCP Client Interface]]
|
||||||
type = TCPClientInterface
|
type = TCPClientInterface
|
||||||
interface_enabled = True
|
enabled = yes
|
||||||
target_host = 127.0.0.1
|
target_host = 127.0.0.1
|
||||||
target_port = 4242
|
target_port = 4242
|
||||||
|
|
||||||
|
@ -286,7 +332,7 @@ specify the target Yggdrasil IPv6 address and port, like so:
|
||||||
|
|
||||||
[[Yggdrasil TCP Client Interface]]
|
[[Yggdrasil TCP Client Interface]]
|
||||||
type = TCPClientInterface
|
type = TCPClientInterface
|
||||||
interface_enabled = yes
|
enabled = yes
|
||||||
target_host = 201:5d78:af73:5caf:a4de:a79f:3278:71e5
|
target_host = 201:5d78:af73:5caf:a4de:a79f:3278:71e5
|
||||||
target_port = 4343
|
target_port = 4343
|
||||||
|
|
||||||
|
@ -301,7 +347,7 @@ software-based soundmodems. To do this, use the ``kiss_framing`` option:
|
||||||
|
|
||||||
[[TCP KISS Interface]]
|
[[TCP KISS Interface]]
|
||||||
type = TCPClientInterface
|
type = TCPClientInterface
|
||||||
interface_enabled = True
|
enabled = yes
|
||||||
kiss_framing = True
|
kiss_framing = True
|
||||||
target_host = 127.0.0.1
|
target_host = 127.0.0.1
|
||||||
target_port = 8001
|
target_port = 8001
|
||||||
|
@ -321,7 +367,7 @@ intermittent TCP links.
|
||||||
|
|
||||||
[[TCP Client over I2P]]
|
[[TCP Client over I2P]]
|
||||||
type = TCPClientInterface
|
type = TCPClientInterface
|
||||||
interface_enabled = yes
|
enabled = yes
|
||||||
target_host = 127.0.0.1
|
target_host = 127.0.0.1
|
||||||
target_port = 5001
|
target_port = 5001
|
||||||
i2p_tunneled = yes
|
i2p_tunneled = yes
|
||||||
|
@ -351,7 +397,7 @@ with all other peers on a local area network.
|
||||||
|
|
||||||
[[UDP Interface]]
|
[[UDP Interface]]
|
||||||
type = UDPInterface
|
type = UDPInterface
|
||||||
interface_enabled = True
|
enabled = yes
|
||||||
|
|
||||||
listen_ip = 0.0.0.0
|
listen_ip = 0.0.0.0
|
||||||
listen_port = 4242
|
listen_port = 4242
|
||||||
|
@ -389,6 +435,74 @@ with all other peers on a local area network.
|
||||||
# forward_port = 4242
|
# forward_port = 4242
|
||||||
|
|
||||||
|
|
||||||
|
.. _interfaces-i2p:
|
||||||
|
|
||||||
|
I2P Interface
|
||||||
|
=============
|
||||||
|
|
||||||
|
The I2P interface lets you connect Reticulum instances over the
|
||||||
|
`Invisible Internet Protocol <https://i2pd.website>`_. This can be
|
||||||
|
especially useful in cases where you want to host a globally reachable
|
||||||
|
Reticulum instance, but do not have access to any public IP addresses,
|
||||||
|
have a frequently changing IP address, or have firewalls blocking
|
||||||
|
inbound traffic.
|
||||||
|
|
||||||
|
Using the I2P interface, you will get a globally reachable, portable
|
||||||
|
and persistent I2P address that your Reticulum instance can be reached
|
||||||
|
at.
|
||||||
|
|
||||||
|
To use the I2P interface, you must have an I2P router running
|
||||||
|
on your system. The easiest way to achieve this is to download and
|
||||||
|
install the `latest release <https://github.com/PurpleI2P/i2pd/releases/latest>`_
|
||||||
|
of the ``i2pd`` package. For more details about I2P, see the
|
||||||
|
`geti2p.net website <https://geti2p.net/en/about/intro>`_.
|
||||||
|
|
||||||
|
When an I2P router is running on your system, you can simply add
|
||||||
|
an I2P interface to Reticulum:
|
||||||
|
|
||||||
|
.. code::
|
||||||
|
|
||||||
|
[[I2P]]
|
||||||
|
type = I2PInterface
|
||||||
|
enabled = yes
|
||||||
|
connectable = yes
|
||||||
|
|
||||||
|
On the first start, Reticulum will generate a new I2P address for the
|
||||||
|
interface and start listening for inbound traffic on it. This can take
|
||||||
|
a while the first time, especially if your I2P router was also just
|
||||||
|
started, and is not yet well-connected to the I2P network. When ready,
|
||||||
|
you should see I2P base32 address printed to your log file. You can
|
||||||
|
also inspect the status of the interface using the ``rnstatus`` utility.
|
||||||
|
|
||||||
|
To connect to other Reticulum instances over I2P, just add a comma-separated
|
||||||
|
list of I2P base32 addresses to the ``peers`` option of the interface:
|
||||||
|
|
||||||
|
.. code::
|
||||||
|
|
||||||
|
[[I2P]]
|
||||||
|
type = I2PInterface
|
||||||
|
enabled = yes
|
||||||
|
connectable = yes
|
||||||
|
peers = 5urvjicpzi7q3ybztsef4i5ow2aq4soktfj7zedz53s47r54jnqq.b32.i2p
|
||||||
|
|
||||||
|
It can take anywhere from a few seconds to a few minutes to establish
|
||||||
|
I2P connections to the desired peers, so Reticulum handles the process
|
||||||
|
in the background, and will output relevant events to the log.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
While the I2P interface is the simplest way to use
|
||||||
|
Reticulum over I2P, it is also possible to tunnel the TCP server and
|
||||||
|
client interfaces over I2P manually. This can be useful in situations
|
||||||
|
where more control is needed, but requires manual tunnel setup through
|
||||||
|
the I2P daemon configuration.
|
||||||
|
|
||||||
|
It is important to note that the two methods are *interchangably compatible*.
|
||||||
|
You can use the I2PInterface to connect to a TCPServerInterface that
|
||||||
|
was manually tunneled over I2P, for example. This offers a high degree
|
||||||
|
of flexibility in network setup, while retaining ease of use in simpler
|
||||||
|
use-cases.
|
||||||
|
|
||||||
|
|
||||||
.. _interfaces-rnode:
|
.. _interfaces-rnode:
|
||||||
|
|
||||||
RNode LoRa Interface
|
RNode LoRa Interface
|
||||||
|
@ -411,7 +525,7 @@ can be used, and offers full control over LoRa parameters.
|
||||||
type = RNodeInterface
|
type = RNodeInterface
|
||||||
|
|
||||||
# Enable interface if you want use it!
|
# Enable interface if you want use it!
|
||||||
interface_enabled = True
|
enabled = yes
|
||||||
|
|
||||||
# Serial port for the device
|
# Serial port for the device
|
||||||
port = /dev/ttyUSB0
|
port = /dev/ttyUSB0
|
||||||
|
@ -503,7 +617,7 @@ Multi interface can be used to configure sub-interfaces individually.
|
||||||
type = RNodeMultiInterface
|
type = RNodeMultiInterface
|
||||||
|
|
||||||
# Enable interface if you want to use it!
|
# Enable interface if you want to use it!
|
||||||
interface_enabled = True
|
enabled = yes
|
||||||
|
|
||||||
# Serial port for the device
|
# Serial port for the device
|
||||||
port = /dev/ttyACM0
|
port = /dev/ttyACM0
|
||||||
|
@ -519,7 +633,7 @@ Multi interface can be used to configure sub-interfaces individually.
|
||||||
# A subinterface
|
# A subinterface
|
||||||
[[[High Datarate]]]
|
[[[High Datarate]]]
|
||||||
# Subinterfaces can be enabled and disabled in of themselves
|
# Subinterfaces can be enabled and disabled in of themselves
|
||||||
interface_enabled = True
|
enabled = yes
|
||||||
|
|
||||||
# Set frequency to 2.4GHz
|
# Set frequency to 2.4GHz
|
||||||
frequency = 2400000000
|
frequency = 2400000000
|
||||||
|
@ -561,7 +675,7 @@ Multi interface can be used to configure sub-interfaces individually.
|
||||||
|
|
||||||
[[[Low Datarate]]]
|
[[[Low Datarate]]]
|
||||||
# Subinterfaces can be enabled and disabled in of themselves
|
# Subinterfaces can be enabled and disabled in of themselves
|
||||||
interface_enabled = True
|
enabled = yes
|
||||||
|
|
||||||
# Set frequency to 865.6 MHz
|
# Set frequency to 865.6 MHz
|
||||||
frequency = 865600000
|
frequency = 865600000
|
||||||
|
@ -614,7 +728,7 @@ directly over a wire-pair, or for using devices such as data radios and lasers.
|
||||||
|
|
||||||
[[Serial Interface]]
|
[[Serial Interface]]
|
||||||
type = SerialInterface
|
type = SerialInterface
|
||||||
interface_enabled = True
|
enabled = yes
|
||||||
|
|
||||||
# Serial port for the device
|
# Serial port for the device
|
||||||
port = /dev/ttyUSB0
|
port = /dev/ttyUSB0
|
||||||
|
@ -639,7 +753,7 @@ custom hardware or other systems.
|
||||||
|
|
||||||
[[Pipe Interface]]
|
[[Pipe Interface]]
|
||||||
type = PipeInterface
|
type = PipeInterface
|
||||||
interface_enabled = True
|
enabled = yes
|
||||||
|
|
||||||
# External command to execute
|
# External command to execute
|
||||||
command = netcat -l 5757
|
command = netcat -l 5757
|
||||||
|
@ -670,7 +784,7 @@ for station identification purposes.
|
||||||
|
|
||||||
[[Packet Radio KISS Interface]]
|
[[Packet Radio KISS Interface]]
|
||||||
type = KISSInterface
|
type = KISSInterface
|
||||||
interface_enabled = True
|
enabled = yes
|
||||||
|
|
||||||
# Serial port for the device
|
# Serial port for the device
|
||||||
port = /dev/ttyUSB1
|
port = /dev/ttyUSB1
|
||||||
|
@ -744,7 +858,7 @@ beaconing functionality described above.
|
||||||
ssid = 0
|
ssid = 0
|
||||||
|
|
||||||
# Enable interface if you want use it!
|
# Enable interface if you want use it!
|
||||||
interface_enabled = True
|
enabled = yes
|
||||||
|
|
||||||
# Serial port for the device
|
# Serial port for the device
|
||||||
port = /dev/ttyUSB2
|
port = /dev/ttyUSB2
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
var DOCUMENTATION_OPTIONS = {
|
var DOCUMENTATION_OPTIONS = {
|
||||||
URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'),
|
URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'),
|
||||||
VERSION: '0.9.3 beta',
|
VERSION: '0.9.4 beta',
|
||||||
LANGUAGE: 'en',
|
LANGUAGE: 'en',
|
||||||
COLLAPSE_INDEX: false,
|
COLLAPSE_INDEX: false,
|
||||||
BUILDER: 'html',
|
BUILDER: 'html',
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
<link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="Support Reticulum" href="support.html" /><link rel="prev" title="Building Networks" href="networks.html" />
|
<link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="Support Reticulum" href="support.html" /><link rel="prev" title="Building Networks" href="networks.html" />
|
||||||
|
|
||||||
<meta name="generator" content="sphinx-5.3.0, furo 2022.09.29.dev1"/>
|
<meta name="generator" content="sphinx-5.3.0, furo 2022.09.29.dev1"/>
|
||||||
<title>Code Examples - Reticulum Network Stack 0.9.3 beta documentation</title>
|
<title>Code Examples - Reticulum Network Stack 0.9.4 beta documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=189ec851f9bb375a2509b67be1f64f0cf212b702" />
|
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=189ec851f9bb375a2509b67be1f64f0cf212b702" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
|
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
|
||||||
|
@ -141,7 +141,7 @@
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-center">
|
<div class="header-center">
|
||||||
<a href="index.html"><div class="brand">Reticulum Network Stack 0.9.3 beta documentation</div></a>
|
<a href="index.html"><div class="brand">Reticulum Network Stack 0.9.4 beta documentation</div></a>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-right">
|
<div class="header-right">
|
||||||
<div class="theme-toggle-container theme-toggle-header">
|
<div class="theme-toggle-container theme-toggle-header">
|
||||||
|
@ -167,7 +167,7 @@
|
||||||
<img class="sidebar-logo" src="_static/rns_logo_512.png" alt="Logo"/>
|
<img class="sidebar-logo" src="_static/rns_logo_512.png" alt="Logo"/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<span class="sidebar-brand-text">Reticulum Network Stack 0.9.3 beta documentation</span>
|
<span class="sidebar-brand-text">Reticulum Network Stack 0.9.4 beta documentation</span>
|
||||||
|
|
||||||
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
||||||
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
|
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
<link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" />
|
<link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" />
|
||||||
|
|
||||||
<meta name="generator" content="sphinx-5.3.0, furo 2022.09.29.dev1"/>
|
<meta name="generator" content="sphinx-5.3.0, furo 2022.09.29.dev1"/>
|
||||||
<title>An Explanation of Reticulum for Human Beings - Reticulum Network Stack 0.9.3 beta documentation</title>
|
<title>An Explanation of Reticulum for Human Beings - Reticulum Network Stack 0.9.4 beta documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=189ec851f9bb375a2509b67be1f64f0cf212b702" />
|
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=189ec851f9bb375a2509b67be1f64f0cf212b702" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
|
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
|
||||||
|
@ -141,7 +141,7 @@
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-center">
|
<div class="header-center">
|
||||||
<a href="index.html"><div class="brand">Reticulum Network Stack 0.9.3 beta documentation</div></a>
|
<a href="index.html"><div class="brand">Reticulum Network Stack 0.9.4 beta documentation</div></a>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-right">
|
<div class="header-right">
|
||||||
<div class="theme-toggle-container theme-toggle-header">
|
<div class="theme-toggle-container theme-toggle-header">
|
||||||
|
@ -167,7 +167,7 @@
|
||||||
<img class="sidebar-logo" src="_static/rns_logo_512.png" alt="Logo"/>
|
<img class="sidebar-logo" src="_static/rns_logo_512.png" alt="Logo"/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<span class="sidebar-brand-text">Reticulum Network Stack 0.9.3 beta documentation</span>
|
<span class="sidebar-brand-text">Reticulum Network Stack 0.9.4 beta documentation</span>
|
||||||
|
|
||||||
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
||||||
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
|
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
<meta name="viewport" content="width=device-width,initial-scale=1"/>
|
<meta name="viewport" content="width=device-width,initial-scale=1"/>
|
||||||
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="#" /><link rel="search" title="Search" href="search.html" />
|
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="#" /><link rel="search" title="Search" href="search.html" />
|
||||||
|
|
||||||
<meta name="generator" content="sphinx-5.3.0, furo 2022.09.29.dev1"/><title>Index - Reticulum Network Stack 0.9.3 beta documentation</title>
|
<meta name="generator" content="sphinx-5.3.0, furo 2022.09.29.dev1"/><title>Index - Reticulum Network Stack 0.9.4 beta documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=189ec851f9bb375a2509b67be1f64f0cf212b702" />
|
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=189ec851f9bb375a2509b67be1f64f0cf212b702" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
|
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
|
||||||
|
@ -139,7 +139,7 @@
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-center">
|
<div class="header-center">
|
||||||
<a href="index.html"><div class="brand">Reticulum Network Stack 0.9.3 beta documentation</div></a>
|
<a href="index.html"><div class="brand">Reticulum Network Stack 0.9.4 beta documentation</div></a>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-right">
|
<div class="header-right">
|
||||||
<div class="theme-toggle-container theme-toggle-header">
|
<div class="theme-toggle-container theme-toggle-header">
|
||||||
|
@ -165,7 +165,7 @@
|
||||||
<img class="sidebar-logo" src="_static/rns_logo_512.png" alt="Logo"/>
|
<img class="sidebar-logo" src="_static/rns_logo_512.png" alt="Logo"/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<span class="sidebar-brand-text">Reticulum Network Stack 0.9.3 beta documentation</span>
|
<span class="sidebar-brand-text">Reticulum Network Stack 0.9.4 beta documentation</span>
|
||||||
|
|
||||||
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
||||||
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
|
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
<link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="Using Reticulum on Your System" href="using.html" /><link rel="prev" title="What is Reticulum?" href="whatis.html" />
|
<link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="Using Reticulum on Your System" href="using.html" /><link rel="prev" title="What is Reticulum?" href="whatis.html" />
|
||||||
|
|
||||||
<meta name="generator" content="sphinx-5.3.0, furo 2022.09.29.dev1"/>
|
<meta name="generator" content="sphinx-5.3.0, furo 2022.09.29.dev1"/>
|
||||||
<title>Getting Started Fast - Reticulum Network Stack 0.9.3 beta documentation</title>
|
<title>Getting Started Fast - Reticulum Network Stack 0.9.4 beta documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=189ec851f9bb375a2509b67be1f64f0cf212b702" />
|
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=189ec851f9bb375a2509b67be1f64f0cf212b702" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
|
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
|
||||||
|
@ -141,7 +141,7 @@
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-center">
|
<div class="header-center">
|
||||||
<a href="index.html"><div class="brand">Reticulum Network Stack 0.9.3 beta documentation</div></a>
|
<a href="index.html"><div class="brand">Reticulum Network Stack 0.9.4 beta documentation</div></a>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-right">
|
<div class="header-right">
|
||||||
<div class="theme-toggle-container theme-toggle-header">
|
<div class="theme-toggle-container theme-toggle-header">
|
||||||
|
@ -167,7 +167,7 @@
|
||||||
<img class="sidebar-logo" src="_static/rns_logo_512.png" alt="Logo"/>
|
<img class="sidebar-logo" src="_static/rns_logo_512.png" alt="Logo"/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<span class="sidebar-brand-text">Reticulum Network Stack 0.9.3 beta documentation</span>
|
<span class="sidebar-brand-text">Reticulum Network Stack 0.9.4 beta documentation</span>
|
||||||
|
|
||||||
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
||||||
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
|
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
<link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="Configuring Interfaces" href="interfaces.html" /><link rel="prev" title="Understanding Reticulum" href="understanding.html" />
|
<link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="Configuring Interfaces" href="interfaces.html" /><link rel="prev" title="Understanding Reticulum" href="understanding.html" />
|
||||||
|
|
||||||
<meta name="generator" content="sphinx-5.3.0, furo 2022.09.29.dev1"/>
|
<meta name="generator" content="sphinx-5.3.0, furo 2022.09.29.dev1"/>
|
||||||
<title>Communications Hardware - Reticulum Network Stack 0.9.3 beta documentation</title>
|
<title>Communications Hardware - Reticulum Network Stack 0.9.4 beta documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=189ec851f9bb375a2509b67be1f64f0cf212b702" />
|
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=189ec851f9bb375a2509b67be1f64f0cf212b702" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
|
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
|
||||||
|
@ -141,7 +141,7 @@
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-center">
|
<div class="header-center">
|
||||||
<a href="index.html"><div class="brand">Reticulum Network Stack 0.9.3 beta documentation</div></a>
|
<a href="index.html"><div class="brand">Reticulum Network Stack 0.9.4 beta documentation</div></a>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-right">
|
<div class="header-right">
|
||||||
<div class="theme-toggle-container theme-toggle-header">
|
<div class="theme-toggle-container theme-toggle-header">
|
||||||
|
@ -167,7 +167,7 @@
|
||||||
<img class="sidebar-logo" src="_static/rns_logo_512.png" alt="Logo"/>
|
<img class="sidebar-logo" src="_static/rns_logo_512.png" alt="Logo"/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<span class="sidebar-brand-text">Reticulum Network Stack 0.9.3 beta documentation</span>
|
<span class="sidebar-brand-text">Reticulum Network Stack 0.9.4 beta documentation</span>
|
||||||
|
|
||||||
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
||||||
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
|
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
|
||||||
|
@ -290,14 +290,15 @@ to the configuration.</p>
|
||||||
<section id="supported-boards-and-devices">
|
<section id="supported-boards-and-devices">
|
||||||
<span id="rnode-supported"></span><h3>Supported Boards and Devices<a class="headerlink" href="#supported-boards-and-devices" title="Permalink to this heading">#</a></h3>
|
<span id="rnode-supported"></span><h3>Supported Boards and Devices<a class="headerlink" href="#supported-boards-and-devices" title="Permalink to this heading">#</a></h3>
|
||||||
<p>To create one or more RNodes, you will need to obtain supported development
|
<p>To create one or more RNodes, you will need to obtain supported development
|
||||||
boards. The following boards are supported by the auto-installer.</p>
|
boards or completed devices. The following boards and devices are supported
|
||||||
|
by the auto-installer.</p>
|
||||||
<hr class="docutils" />
|
<hr class="docutils" />
|
||||||
<a class="reference internal image-reference" href="_images/board_tbeam_supreme.png"><img alt="_images/board_tbeam_supreme.png" class="align-center" src="_images/board_tbeam_supreme.png" style="width: 75%;" />
|
<a class="reference internal image-reference" href="_images/board_tbeam_supreme.png"><img alt="_images/board_tbeam_supreme.png" class="align-center" src="_images/board_tbeam_supreme.png" style="width: 75%;" />
|
||||||
</a>
|
</a>
|
||||||
<section id="lilygo-t-beam-supreme">
|
<section id="lilygo-t-beam-supreme">
|
||||||
<h4>LilyGO T-Beam Supreme<a class="headerlink" href="#lilygo-t-beam-supreme" title="Permalink to this heading">#</a></h4>
|
<h4>LilyGO T-Beam Supreme<a class="headerlink" href="#lilygo-t-beam-supreme" title="Permalink to this heading">#</a></h4>
|
||||||
<ul class="simple">
|
<ul class="simple">
|
||||||
<li><p><strong>Transceiver IC</strong> Semtech SX1262, SX1268</p></li>
|
<li><p><strong>Transceiver IC</strong> Semtech SX1262 or SX1268</p></li>
|
||||||
<li><p><strong>Device Platform</strong> ESP32</p></li>
|
<li><p><strong>Device Platform</strong> ESP32</p></li>
|
||||||
<li><p><strong>Manufacturer</strong> <a class="reference external" href="https://lilygo.cn">LilyGO</a></p></li>
|
<li><p><strong>Manufacturer</strong> <a class="reference external" href="https://lilygo.cn">LilyGO</a></p></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
@ -308,7 +309,7 @@ boards. The following boards are supported by the auto-installer.</p>
|
||||||
<section id="lilygo-t-beam">
|
<section id="lilygo-t-beam">
|
||||||
<h4>LilyGO T-Beam<a class="headerlink" href="#lilygo-t-beam" title="Permalink to this heading">#</a></h4>
|
<h4>LilyGO T-Beam<a class="headerlink" href="#lilygo-t-beam" title="Permalink to this heading">#</a></h4>
|
||||||
<ul class="simple">
|
<ul class="simple">
|
||||||
<li><p><strong>Transceiver IC</strong> Semtech SX1262, SX1268, SX1276 and SX1278</p></li>
|
<li><p><strong>Transceiver IC</strong> Semtech SX1262, SX1268, SX1276 or SX1278</p></li>
|
||||||
<li><p><strong>Device Platform</strong> ESP32</p></li>
|
<li><p><strong>Device Platform</strong> ESP32</p></li>
|
||||||
<li><p><strong>Manufacturer</strong> <a class="reference external" href="https://lilygo.cn">LilyGO</a></p></li>
|
<li><p><strong>Manufacturer</strong> <a class="reference external" href="https://lilygo.cn">LilyGO</a></p></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
@ -319,7 +320,7 @@ boards. The following boards are supported by the auto-installer.</p>
|
||||||
<section id="lilygo-t3s3">
|
<section id="lilygo-t3s3">
|
||||||
<h4>LilyGO T3S3<a class="headerlink" href="#lilygo-t3s3" title="Permalink to this heading">#</a></h4>
|
<h4>LilyGO T3S3<a class="headerlink" href="#lilygo-t3s3" title="Permalink to this heading">#</a></h4>
|
||||||
<ul class="simple">
|
<ul class="simple">
|
||||||
<li><p><strong>Transceiver IC</strong> Semtech SX1262, SX1268, SX1276 and SX1278</p></li>
|
<li><p><strong>Transceiver IC</strong> Semtech SX1262, SX1268, SX1276 or SX1278</p></li>
|
||||||
<li><p><strong>Device Platform</strong> ESP32</p></li>
|
<li><p><strong>Device Platform</strong> ESP32</p></li>
|
||||||
<li><p><strong>Manufacturer</strong> <a class="reference external" href="https://lilygo.cn">LilyGO</a></p></li>
|
<li><p><strong>Manufacturer</strong> <a class="reference external" href="https://lilygo.cn">LilyGO</a></p></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
@ -330,18 +331,29 @@ boards. The following boards are supported by the auto-installer.</p>
|
||||||
<section id="rak4631-based-boards">
|
<section id="rak4631-based-boards">
|
||||||
<h4>RAK4631-based Boards<a class="headerlink" href="#rak4631-based-boards" title="Permalink to this heading">#</a></h4>
|
<h4>RAK4631-based Boards<a class="headerlink" href="#rak4631-based-boards" title="Permalink to this heading">#</a></h4>
|
||||||
<ul class="simple">
|
<ul class="simple">
|
||||||
<li><p><strong>Transceiver IC</strong> Semtech SX1262, SX1268</p></li>
|
<li><p><strong>Transceiver IC</strong> Semtech SX1262 or SX1268</p></li>
|
||||||
<li><p><strong>Device Platform</strong> nRF52</p></li>
|
<li><p><strong>Device Platform</strong> nRF52</p></li>
|
||||||
<li><p><strong>Manufacturer</strong> <a class="reference external" href="https://www.rakwireless.com">RAK Wireless</a></p></li>
|
<li><p><strong>Manufacturer</strong> <a class="reference external" href="https://www.rakwireless.com">RAK Wireless</a></p></li>
|
||||||
</ul>
|
</ul>
|
||||||
<hr class="docutils" />
|
<hr class="docutils" />
|
||||||
|
<a class="reference internal image-reference" href="_images/board_opencomxl.png"><img alt="_images/board_opencomxl.png" class="align-center" src="_images/board_opencomxl.png" style="width: 45%;" />
|
||||||
|
</a>
|
||||||
|
</section>
|
||||||
|
<section id="opencom-xl">
|
||||||
|
<h4>OpenCom XL<a class="headerlink" href="#opencom-xl" title="Permalink to this heading">#</a></h4>
|
||||||
|
<ul class="simple">
|
||||||
|
<li><p><strong>Transceiver ICs</strong> Semtech SX1262 and SX1280 (dual transceiver)</p></li>
|
||||||
|
<li><p><strong>Device Platform</strong> nRF52</p></li>
|
||||||
|
<li><p><strong>Manufacturer</strong> <a class="reference external" href="https://liberatedsystems.co.uk/">RAK Wireless</a></p></li>
|
||||||
|
</ul>
|
||||||
|
<hr class="docutils" />
|
||||||
<a class="reference internal image-reference" href="_images/board_rnodev2.png"><img alt="_images/board_rnodev2.png" class="align-center" src="_images/board_rnodev2.png" style="width: 68%;" />
|
<a class="reference internal image-reference" href="_images/board_rnodev2.png"><img alt="_images/board_rnodev2.png" class="align-center" src="_images/board_rnodev2.png" style="width: 68%;" />
|
||||||
</a>
|
</a>
|
||||||
</section>
|
</section>
|
||||||
<section id="unsigned-rnode-v2-x">
|
<section id="unsigned-rnode-v2-x">
|
||||||
<h4>Unsigned RNode v2.x<a class="headerlink" href="#unsigned-rnode-v2-x" title="Permalink to this heading">#</a></h4>
|
<h4>Unsigned RNode v2.x<a class="headerlink" href="#unsigned-rnode-v2-x" title="Permalink to this heading">#</a></h4>
|
||||||
<ul class="simple">
|
<ul class="simple">
|
||||||
<li><p><strong>Transceiver IC</strong> Semtech SX1276 and SX1278</p></li>
|
<li><p><strong>Transceiver IC</strong> Semtech SX1276 or SX1278</p></li>
|
||||||
<li><p><strong>Device Platform</strong> ESP32</p></li>
|
<li><p><strong>Device Platform</strong> ESP32</p></li>
|
||||||
<li><p><strong>Manufacturer</strong> <a class="reference external" href="https://unsigned.io">unsigned.io</a></p></li>
|
<li><p><strong>Manufacturer</strong> <a class="reference external" href="https://unsigned.io">unsigned.io</a></p></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
@ -352,7 +364,7 @@ boards. The following boards are supported by the auto-installer.</p>
|
||||||
<section id="lilygo-lora32-v2-1">
|
<section id="lilygo-lora32-v2-1">
|
||||||
<h4>LilyGO LoRa32 v2.1<a class="headerlink" href="#lilygo-lora32-v2-1" title="Permalink to this heading">#</a></h4>
|
<h4>LilyGO LoRa32 v2.1<a class="headerlink" href="#lilygo-lora32-v2-1" title="Permalink to this heading">#</a></h4>
|
||||||
<ul class="simple">
|
<ul class="simple">
|
||||||
<li><p><strong>Transceiver IC</strong> Semtech SX1276 and SX1278</p></li>
|
<li><p><strong>Transceiver IC</strong> Semtech SX1276 or SX1278</p></li>
|
||||||
<li><p><strong>Device Platform</strong> ESP32</p></li>
|
<li><p><strong>Device Platform</strong> ESP32</p></li>
|
||||||
<li><p><strong>Manufacturer</strong> <a class="reference external" href="https://lilygo.cn">LilyGO</a></p></li>
|
<li><p><strong>Manufacturer</strong> <a class="reference external" href="https://lilygo.cn">LilyGO</a></p></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
@ -363,7 +375,7 @@ boards. The following boards are supported by the auto-installer.</p>
|
||||||
<section id="lilygo-lora32-v2-0">
|
<section id="lilygo-lora32-v2-0">
|
||||||
<h4>LilyGO LoRa32 v2.0<a class="headerlink" href="#lilygo-lora32-v2-0" title="Permalink to this heading">#</a></h4>
|
<h4>LilyGO LoRa32 v2.0<a class="headerlink" href="#lilygo-lora32-v2-0" title="Permalink to this heading">#</a></h4>
|
||||||
<ul class="simple">
|
<ul class="simple">
|
||||||
<li><p><strong>Transceiver IC</strong> Semtech SX1276 and SX1278</p></li>
|
<li><p><strong>Transceiver IC</strong> Semtech SX1276 or SX1278</p></li>
|
||||||
<li><p><strong>Device Platform</strong> ESP32</p></li>
|
<li><p><strong>Device Platform</strong> ESP32</p></li>
|
||||||
<li><p><strong>Manufacturer</strong> <a class="reference external" href="https://lilygo.cn">LilyGO</a></p></li>
|
<li><p><strong>Manufacturer</strong> <a class="reference external" href="https://lilygo.cn">LilyGO</a></p></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
@ -374,7 +386,7 @@ boards. The following boards are supported by the auto-installer.</p>
|
||||||
<section id="lilygo-lora32-v1-0">
|
<section id="lilygo-lora32-v1-0">
|
||||||
<h4>LilyGO LoRa32 v1.0<a class="headerlink" href="#lilygo-lora32-v1-0" title="Permalink to this heading">#</a></h4>
|
<h4>LilyGO LoRa32 v1.0<a class="headerlink" href="#lilygo-lora32-v1-0" title="Permalink to this heading">#</a></h4>
|
||||||
<ul class="simple">
|
<ul class="simple">
|
||||||
<li><p><strong>Transceiver IC</strong> Semtech SX1276 and SX1278</p></li>
|
<li><p><strong>Transceiver IC</strong> Semtech SX1276 or SX1278</p></li>
|
||||||
<li><p><strong>Device Platform</strong> ESP32</p></li>
|
<li><p><strong>Device Platform</strong> ESP32</p></li>
|
||||||
<li><p><strong>Manufacturer</strong> <a class="reference external" href="https://lilygo.cn">LilyGO</a></p></li>
|
<li><p><strong>Manufacturer</strong> <a class="reference external" href="https://lilygo.cn">LilyGO</a></p></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
@ -385,18 +397,40 @@ boards. The following boards are supported by the auto-installer.</p>
|
||||||
<section id="lilygo-t-deck">
|
<section id="lilygo-t-deck">
|
||||||
<h4>LilyGO T-Deck<a class="headerlink" href="#lilygo-t-deck" title="Permalink to this heading">#</a></h4>
|
<h4>LilyGO T-Deck<a class="headerlink" href="#lilygo-t-deck" title="Permalink to this heading">#</a></h4>
|
||||||
<ul class="simple">
|
<ul class="simple">
|
||||||
<li><p><strong>Transceiver IC</strong> Semtech SX1262, SX1268</p></li>
|
<li><p><strong>Transceiver IC</strong> Semtech SX1262 or SX1268</p></li>
|
||||||
<li><p><strong>Device Platform</strong> ESP32</p></li>
|
<li><p><strong>Device Platform</strong> ESP32</p></li>
|
||||||
<li><p><strong>Manufacturer</strong> <a class="reference external" href="https://lilygo.cn">LilyGO</a></p></li>
|
<li><p><strong>Manufacturer</strong> <a class="reference external" href="https://lilygo.cn">LilyGO</a></p></li>
|
||||||
</ul>
|
</ul>
|
||||||
<hr class="docutils" />
|
<hr class="docutils" />
|
||||||
|
<a class="reference internal image-reference" href="_images/board_techo.png"><img alt="_images/board_techo.png" class="align-center" src="_images/board_techo.png" style="width: 45%;" />
|
||||||
|
</a>
|
||||||
|
</section>
|
||||||
|
<section id="lilygo-t-echo">
|
||||||
|
<h4>LilyGO T-Echo<a class="headerlink" href="#lilygo-t-echo" title="Permalink to this heading">#</a></h4>
|
||||||
|
<ul class="simple">
|
||||||
|
<li><p><strong>Transceiver IC</strong> Semtech SX1262 or SX1268</p></li>
|
||||||
|
<li><p><strong>Device Platform</strong> nRF52</p></li>
|
||||||
|
<li><p><strong>Manufacturer</strong> <a class="reference external" href="https://lilygo.cn">LilyGO</a></p></li>
|
||||||
|
</ul>
|
||||||
|
<hr class="docutils" />
|
||||||
|
<a class="reference internal image-reference" href="_images/board_t114.png"><img alt="_images/board_t114.png" class="align-center" src="_images/board_t114.png" style="width: 58%;" />
|
||||||
|
</a>
|
||||||
|
</section>
|
||||||
|
<section id="heltec-t114">
|
||||||
|
<h4>Heltec T114<a class="headerlink" href="#heltec-t114" title="Permalink to this heading">#</a></h4>
|
||||||
|
<ul class="simple">
|
||||||
|
<li><p><strong>Transceiver IC</strong> Semtech SX1262 or SX1268</p></li>
|
||||||
|
<li><p><strong>Device Platform</strong> ESP32</p></li>
|
||||||
|
<li><p><strong>Manufacturer</strong> <a class="reference external" href="https://heltec.org">Heltec Automation</a></p></li>
|
||||||
|
</ul>
|
||||||
|
<hr class="docutils" />
|
||||||
<a class="reference internal image-reference" href="_images/board_heltec32v30.png"><img alt="_images/board_heltec32v30.png" class="align-center" src="_images/board_heltec32v30.png" style="width: 58%;" />
|
<a class="reference internal image-reference" href="_images/board_heltec32v30.png"><img alt="_images/board_heltec32v30.png" class="align-center" src="_images/board_heltec32v30.png" style="width: 58%;" />
|
||||||
</a>
|
</a>
|
||||||
</section>
|
</section>
|
||||||
<section id="heltec-lora32-v3-0">
|
<section id="heltec-lora32-v3-0">
|
||||||
<h4>Heltec LoRa32 v3.0<a class="headerlink" href="#heltec-lora32-v3-0" title="Permalink to this heading">#</a></h4>
|
<h4>Heltec LoRa32 v3.0<a class="headerlink" href="#heltec-lora32-v3-0" title="Permalink to this heading">#</a></h4>
|
||||||
<ul class="simple">
|
<ul class="simple">
|
||||||
<li><p><strong>Transceiver IC</strong> Semtech SX1262 and SX1268</p></li>
|
<li><p><strong>Transceiver IC</strong> Semtech SX1262 or SX1268</p></li>
|
||||||
<li><p><strong>Device Platform</strong> ESP32</p></li>
|
<li><p><strong>Device Platform</strong> ESP32</p></li>
|
||||||
<li><p><strong>Manufacturer</strong> <a class="reference external" href="https://heltec.org">Heltec Automation</a></p></li>
|
<li><p><strong>Manufacturer</strong> <a class="reference external" href="https://heltec.org">Heltec Automation</a></p></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
@ -407,22 +441,11 @@ boards. The following boards are supported by the auto-installer.</p>
|
||||||
<section id="heltec-lora32-v2-0">
|
<section id="heltec-lora32-v2-0">
|
||||||
<h4>Heltec LoRa32 v2.0<a class="headerlink" href="#heltec-lora32-v2-0" title="Permalink to this heading">#</a></h4>
|
<h4>Heltec LoRa32 v2.0<a class="headerlink" href="#heltec-lora32-v2-0" title="Permalink to this heading">#</a></h4>
|
||||||
<ul class="simple">
|
<ul class="simple">
|
||||||
<li><p><strong>Transceiver IC</strong> Semtech SX1276 and SX1278</p></li>
|
<li><p><strong>Transceiver IC</strong> Semtech SX1276 or SX1278</p></li>
|
||||||
<li><p><strong>Device Platform</strong> ESP32</p></li>
|
<li><p><strong>Device Platform</strong> ESP32</p></li>
|
||||||
<li><p><strong>Manufacturer</strong> <a class="reference external" href="https://heltec.org">Heltec Automation</a></p></li>
|
<li><p><strong>Manufacturer</strong> <a class="reference external" href="https://heltec.org">Heltec Automation</a></p></li>
|
||||||
</ul>
|
</ul>
|
||||||
<hr class="docutils" />
|
<hr class="docutils" />
|
||||||
<a class="reference internal image-reference" href="_images/board_rnode.png"><img alt="_images/board_rnode.png" class="align-center" src="_images/board_rnode.png" style="width: 50%;" />
|
|
||||||
</a>
|
|
||||||
</section>
|
|
||||||
<section id="unsigned-rnode-v1-x">
|
|
||||||
<h4>Unsigned RNode v1.x<a class="headerlink" href="#unsigned-rnode-v1-x" title="Permalink to this heading">#</a></h4>
|
|
||||||
<ul class="simple">
|
|
||||||
<li><p><strong>Transceiver IC</strong> Semtech SX1276 and SX1278</p></li>
|
|
||||||
<li><p><strong>Device Platform</strong> AVR ATmega1284p</p></li>
|
|
||||||
<li><p><strong>Manufacturer</strong> <a class="reference external" href="https://unsigned.io">unsigned.io</a></p></li>
|
|
||||||
</ul>
|
|
||||||
<hr class="docutils" />
|
|
||||||
</section>
|
</section>
|
||||||
</section>
|
</section>
|
||||||
<section id="installation">
|
<section id="installation">
|
||||||
|
@ -569,14 +592,16 @@ can be used with Reticulum. This includes virtual software modems such as
|
||||||
<li><a class="reference internal" href="#lilygo-t-beam">LilyGO T-Beam</a></li>
|
<li><a class="reference internal" href="#lilygo-t-beam">LilyGO T-Beam</a></li>
|
||||||
<li><a class="reference internal" href="#lilygo-t3s3">LilyGO T3S3</a></li>
|
<li><a class="reference internal" href="#lilygo-t3s3">LilyGO T3S3</a></li>
|
||||||
<li><a class="reference internal" href="#rak4631-based-boards">RAK4631-based Boards</a></li>
|
<li><a class="reference internal" href="#rak4631-based-boards">RAK4631-based Boards</a></li>
|
||||||
|
<li><a class="reference internal" href="#opencom-xl">OpenCom XL</a></li>
|
||||||
<li><a class="reference internal" href="#unsigned-rnode-v2-x">Unsigned RNode v2.x</a></li>
|
<li><a class="reference internal" href="#unsigned-rnode-v2-x">Unsigned RNode v2.x</a></li>
|
||||||
<li><a class="reference internal" href="#lilygo-lora32-v2-1">LilyGO LoRa32 v2.1</a></li>
|
<li><a class="reference internal" href="#lilygo-lora32-v2-1">LilyGO LoRa32 v2.1</a></li>
|
||||||
<li><a class="reference internal" href="#lilygo-lora32-v2-0">LilyGO LoRa32 v2.0</a></li>
|
<li><a class="reference internal" href="#lilygo-lora32-v2-0">LilyGO LoRa32 v2.0</a></li>
|
||||||
<li><a class="reference internal" href="#lilygo-lora32-v1-0">LilyGO LoRa32 v1.0</a></li>
|
<li><a class="reference internal" href="#lilygo-lora32-v1-0">LilyGO LoRa32 v1.0</a></li>
|
||||||
<li><a class="reference internal" href="#lilygo-t-deck">LilyGO T-Deck</a></li>
|
<li><a class="reference internal" href="#lilygo-t-deck">LilyGO T-Deck</a></li>
|
||||||
|
<li><a class="reference internal" href="#lilygo-t-echo">LilyGO T-Echo</a></li>
|
||||||
|
<li><a class="reference internal" href="#heltec-t114">Heltec T114</a></li>
|
||||||
<li><a class="reference internal" href="#heltec-lora32-v3-0">Heltec LoRa32 v3.0</a></li>
|
<li><a class="reference internal" href="#heltec-lora32-v3-0">Heltec LoRa32 v3.0</a></li>
|
||||||
<li><a class="reference internal" href="#heltec-lora32-v2-0">Heltec LoRa32 v2.0</a></li>
|
<li><a class="reference internal" href="#heltec-lora32-v2-0">Heltec LoRa32 v2.0</a></li>
|
||||||
<li><a class="reference internal" href="#unsigned-rnode-v1-x">Unsigned RNode v1.x</a></li>
|
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li><a class="reference internal" href="#installation">Installation</a></li>
|
<li><a class="reference internal" href="#installation">Installation</a></li>
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
<link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="What is Reticulum?" href="whatis.html" />
|
<link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="What is Reticulum?" href="whatis.html" />
|
||||||
|
|
||||||
<meta name="generator" content="sphinx-5.3.0, furo 2022.09.29.dev1"/>
|
<meta name="generator" content="sphinx-5.3.0, furo 2022.09.29.dev1"/>
|
||||||
<title>Reticulum Network Stack 0.9.3 beta documentation</title>
|
<title>Reticulum Network Stack 0.9.4 beta documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=189ec851f9bb375a2509b67be1f64f0cf212b702" />
|
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=189ec851f9bb375a2509b67be1f64f0cf212b702" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
|
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
|
||||||
|
@ -141,7 +141,7 @@
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-center">
|
<div class="header-center">
|
||||||
<a href="#"><div class="brand">Reticulum Network Stack 0.9.3 beta documentation</div></a>
|
<a href="#"><div class="brand">Reticulum Network Stack 0.9.4 beta documentation</div></a>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-right">
|
<div class="header-right">
|
||||||
<div class="theme-toggle-container theme-toggle-header">
|
<div class="theme-toggle-container theme-toggle-header">
|
||||||
|
@ -167,7 +167,7 @@
|
||||||
<img class="sidebar-logo" src="_static/rns_logo_512.png" alt="Logo"/>
|
<img class="sidebar-logo" src="_static/rns_logo_512.png" alt="Logo"/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<span class="sidebar-brand-text">Reticulum Network Stack 0.9.3 beta documentation</span>
|
<span class="sidebar-brand-text">Reticulum Network Stack 0.9.4 beta documentation</span>
|
||||||
|
|
||||||
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
||||||
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
|
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
|
||||||
|
@ -342,10 +342,15 @@ to participate in the development of Reticulum itself.</p>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="interfaces.html">Configuring Interfaces</a><ul>
|
<li class="toctree-l1"><a class="reference internal" href="interfaces.html">Configuring Interfaces</a><ul>
|
||||||
<li class="toctree-l2"><a class="reference internal" href="interfaces.html#custom-interfaces">Custom Interfaces</a></li>
|
<li class="toctree-l2"><a class="reference internal" href="interfaces.html#custom-interfaces">Custom Interfaces</a></li>
|
||||||
<li class="toctree-l2"><a class="reference internal" href="interfaces.html#auto-interface">Auto Interface</a></li>
|
<li class="toctree-l2"><a class="reference internal" href="interfaces.html#auto-interface">Auto Interface</a></li>
|
||||||
<li class="toctree-l2"><a class="reference internal" href="interfaces.html#i2p-interface">I2P Interface</a></li>
|
<li class="toctree-l2"><a class="reference internal" href="interfaces.html#backbone-interface">Backbone Interface</a><ul>
|
||||||
|
<li class="toctree-l3"><a class="reference internal" href="interfaces.html#listeners">Listeners</a></li>
|
||||||
|
<li class="toctree-l3"><a class="reference internal" href="interfaces.html#connecting-remotes">Connecting Remotes</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
<li class="toctree-l2"><a class="reference internal" href="interfaces.html#tcp-server-interface">TCP Server Interface</a></li>
|
<li class="toctree-l2"><a class="reference internal" href="interfaces.html#tcp-server-interface">TCP Server Interface</a></li>
|
||||||
<li class="toctree-l2"><a class="reference internal" href="interfaces.html#tcp-client-interface">TCP Client Interface</a></li>
|
<li class="toctree-l2"><a class="reference internal" href="interfaces.html#tcp-client-interface">TCP Client Interface</a></li>
|
||||||
<li class="toctree-l2"><a class="reference internal" href="interfaces.html#udp-interface">UDP Interface</a></li>
|
<li class="toctree-l2"><a class="reference internal" href="interfaces.html#udp-interface">UDP Interface</a></li>
|
||||||
|
<li class="toctree-l2"><a class="reference internal" href="interfaces.html#i2p-interface">I2P Interface</a></li>
|
||||||
<li class="toctree-l2"><a class="reference internal" href="interfaces.html#rnode-lora-interface">RNode LoRa Interface</a></li>
|
<li class="toctree-l2"><a class="reference internal" href="interfaces.html#rnode-lora-interface">RNode LoRa Interface</a></li>
|
||||||
<li class="toctree-l2"><a class="reference internal" href="interfaces.html#rnode-multi-interface">RNode Multi Interface</a></li>
|
<li class="toctree-l2"><a class="reference internal" href="interfaces.html#rnode-multi-interface">RNode Multi Interface</a></li>
|
||||||
<li class="toctree-l2"><a class="reference internal" href="interfaces.html#serial-interface">Serial Interface</a></li>
|
<li class="toctree-l2"><a class="reference internal" href="interfaces.html#serial-interface">Serial Interface</a></li>
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
<link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="Building Networks" href="networks.html" /><link rel="prev" title="Communications Hardware" href="hardware.html" />
|
<link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="Building Networks" href="networks.html" /><link rel="prev" title="Communications Hardware" href="hardware.html" />
|
||||||
|
|
||||||
<meta name="generator" content="sphinx-5.3.0, furo 2022.09.29.dev1"/>
|
<meta name="generator" content="sphinx-5.3.0, furo 2022.09.29.dev1"/>
|
||||||
<title>Configuring Interfaces - Reticulum Network Stack 0.9.3 beta documentation</title>
|
<title>Configuring Interfaces - Reticulum Network Stack 0.9.4 beta documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=189ec851f9bb375a2509b67be1f64f0cf212b702" />
|
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=189ec851f9bb375a2509b67be1f64f0cf212b702" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
|
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
|
||||||
|
@ -141,7 +141,7 @@
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-center">
|
<div class="header-center">
|
||||||
<a href="index.html"><div class="brand">Reticulum Network Stack 0.9.3 beta documentation</div></a>
|
<a href="index.html"><div class="brand">Reticulum Network Stack 0.9.4 beta documentation</div></a>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-right">
|
<div class="header-right">
|
||||||
<div class="theme-toggle-container theme-toggle-header">
|
<div class="theme-toggle-container theme-toggle-header">
|
||||||
|
@ -167,7 +167,7 @@
|
||||||
<img class="sidebar-logo" src="_static/rns_logo_512.png" alt="Logo"/>
|
<img class="sidebar-logo" src="_static/rns_logo_512.png" alt="Logo"/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<span class="sidebar-brand-text">Reticulum Network Stack 0.9.3 beta documentation</span>
|
<span class="sidebar-brand-text">Reticulum Network Stack 0.9.4 beta documentation</span>
|
||||||
|
|
||||||
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
||||||
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
|
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
|
||||||
|
@ -242,51 +242,58 @@ example for basic interface code to build upon.</p>
|
||||||
</section>
|
</section>
|
||||||
<section id="auto-interface">
|
<section id="auto-interface">
|
||||||
<span id="interfaces-auto"></span><h2>Auto Interface<a class="headerlink" href="#auto-interface" title="Permalink to this heading">#</a></h2>
|
<span id="interfaces-auto"></span><h2>Auto Interface<a class="headerlink" href="#auto-interface" title="Permalink to this heading">#</a></h2>
|
||||||
<p>The Auto Interface enables communication with other discoverable Reticulum
|
<p>The <code class="docutils literal notranslate"><span class="pre">AutoInterface</span></code> enables communication with other discoverable Reticulum
|
||||||
nodes over autoconfigured IPv6 and UDP. It does not need any functional IP
|
nodes over any kind of local Ethernet or WiFi-based medium. Even though it uses IPv6 for peer
|
||||||
infrastructure like routers or DHCP servers, but will require at least some
|
discovery, and UDP for packet transport, it <strong>does not</strong> need any functional IP
|
||||||
sort of switching medium between peers (a wired switch, a hub, a WiFi access
|
infrastructure like routers or DHCP servers, on your physical network.</p>
|
||||||
point or similar), and that link-local IPv6 is enabled in your operating
|
<p>As long as there is at least some sort of switching medium present between peers (a
|
||||||
system, which should be enabled by default in almost all OSes.</p>
|
wired switch, a hub, a WiFi access point or similar, or simply two devices connected
|
||||||
|
directly by Ethernet cable), it will work without any configuration, setup or intermediary devices.</p>
|
||||||
|
<p>For <code class="docutils literal notranslate"><span class="pre">AutoInterface</span></code> peer discovery to work, it’s also required that link-local
|
||||||
|
IPv6 support is available on your system, which it should be by default in all
|
||||||
|
current operating systems, both desktop and mobile.</p>
|
||||||
|
<div class="admonition note">
|
||||||
|
<p class="admonition-title">Note</p>
|
||||||
|
<p>Almost all current Ethernet and WiFi hardware will work without any kind
|
||||||
|
of configuration or setup with <code class="docutils literal notranslate"><span class="pre">AutoInterface</span></code>, but a small subset of
|
||||||
|
devices turn on options that limit device-to-device communication by default,
|
||||||
|
resulting in <code class="docutils literal notranslate"><span class="pre">AutoInterface</span></code> peer discovery being blocked. This issue is
|
||||||
|
most commonly seen on very cheap, ISP-supplied WiFi routers, and can sometimes
|
||||||
|
be turned off in the router configuration.</p>
|
||||||
|
</div>
|
||||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1"># This example demonstrates a bare-minimum setup</span>
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1"># This example demonstrates a bare-minimum setup</span>
|
||||||
<span class="c1"># of an Auto Interface. It will allow communica-</span>
|
<span class="c1"># of an Auto Interface. It will allow communica-</span>
|
||||||
<span class="c1"># tion with all other reachable devices on all</span>
|
<span class="c1"># tion with all other reachable devices on all</span>
|
||||||
<span class="c1"># usable physical ethernet-based devices that</span>
|
<span class="c1"># usable physical ethernet-based devices that</span>
|
||||||
<span class="c1"># are available on the system.</span>
|
<span class="c1"># are available on the system.</span>
|
||||||
|
|
||||||
<span class="p">[[</span><span class="n">Default</span> <span class="n">Interface</span><span class="p">]]</span>
|
<span class="p">[[</span><span class="n">Default</span> <span class="n">Interface</span><span class="p">]]</span>
|
||||||
<span class="nb">type</span> <span class="o">=</span> <span class="n">AutoInterface</span>
|
<span class="nb">type</span> <span class="o">=</span> <span class="n">AutoInterface</span>
|
||||||
<span class="n">interface_enabled</span> <span class="o">=</span> <span class="kc">True</span>
|
<span class="n">enabled</span> <span class="o">=</span> <span class="n">yes</span>
|
||||||
|
|
||||||
<span class="c1"># This example demonstrates an more specifically</span>
|
<span class="c1"># This example demonstrates an more specifically</span>
|
||||||
<span class="c1"># configured Auto Interface, that only uses spe-</span>
|
<span class="c1"># configured Auto Interface, that only uses spe-</span>
|
||||||
<span class="c1"># cific physical interfaces, and has a number of</span>
|
<span class="c1"># cific physical interfaces, and has a number of</span>
|
||||||
<span class="c1"># other configuration options set.</span>
|
<span class="c1"># other configuration options set.</span>
|
||||||
|
|
||||||
<span class="p">[[</span><span class="n">Default</span> <span class="n">Interface</span><span class="p">]]</span>
|
<span class="p">[[</span><span class="n">Default</span> <span class="n">Interface</span><span class="p">]]</span>
|
||||||
<span class="nb">type</span> <span class="o">=</span> <span class="n">AutoInterface</span>
|
<span class="nb">type</span> <span class="o">=</span> <span class="n">AutoInterface</span>
|
||||||
<span class="n">interface_enabled</span> <span class="o">=</span> <span class="kc">True</span>
|
<span class="n">enabled</span> <span class="o">=</span> <span class="n">yes</span>
|
||||||
|
|
||||||
<span class="c1"># You can create multiple isolated Reticulum</span>
|
<span class="c1"># You can create multiple isolated Reticulum</span>
|
||||||
<span class="c1"># networks on the same physical LAN by</span>
|
<span class="c1"># networks on the same physical LAN by</span>
|
||||||
<span class="c1"># specifying different Group IDs.</span>
|
<span class="c1"># specifying different Group IDs.</span>
|
||||||
|
|
||||||
<span class="n">group_id</span> <span class="o">=</span> <span class="n">reticulum</span>
|
<span class="n">group_id</span> <span class="o">=</span> <span class="n">reticulum</span>
|
||||||
|
|
||||||
<span class="c1"># You can also choose the multicast address type:</span>
|
<span class="c1"># You can also choose the multicast address type:</span>
|
||||||
<span class="c1"># temporary (default, Temporary Multicast Address)</span>
|
<span class="c1"># temporary (default, Temporary Multicast Address)</span>
|
||||||
<span class="c1"># or permanent (Permanent Multicast Address)</span>
|
<span class="c1"># or permanent (Permanent Multicast Address)</span>
|
||||||
|
|
||||||
<span class="n">multicast_address_type</span> <span class="o">=</span> <span class="n">permanent</span>
|
<span class="n">multicast_address_type</span> <span class="o">=</span> <span class="n">permanent</span>
|
||||||
|
|
||||||
<span class="c1"># You can also select specifically which</span>
|
<span class="c1"># You can also select specifically which</span>
|
||||||
<span class="c1"># kernel networking devices to use.</span>
|
<span class="c1"># kernel networking devices to use.</span>
|
||||||
|
|
||||||
<span class="n">devices</span> <span class="o">=</span> <span class="n">wlan0</span><span class="p">,</span><span class="n">eth1</span>
|
<span class="n">devices</span> <span class="o">=</span> <span class="n">wlan0</span><span class="p">,</span><span class="n">eth1</span>
|
||||||
|
|
||||||
<span class="c1"># Or let AutoInterface use all suitable</span>
|
<span class="c1"># Or let AutoInterface use all suitable</span>
|
||||||
<span class="c1"># devices except for a list of ignored ones.</span>
|
<span class="c1"># devices except for a list of ignored ones.</span>
|
||||||
|
|
||||||
<span class="n">ignored_devices</span> <span class="o">=</span> <span class="n">tun0</span><span class="p">,</span><span class="n">eth0</span>
|
<span class="n">ignored_devices</span> <span class="o">=</span> <span class="n">tun0</span><span class="p">,</span><span class="n">eth0</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -297,7 +304,7 @@ the discovery scope by setting it to one of <code class="docutils literal notran
|
||||||
<code class="docutils literal notranslate"><span class="pre">organisation</span></code> or <code class="docutils literal notranslate"><span class="pre">global</span></code>.</p>
|
<code class="docutils literal notranslate"><span class="pre">organisation</span></code> or <code class="docutils literal notranslate"><span class="pre">global</span></code>.</p>
|
||||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">[[</span><span class="n">Default</span> <span class="n">Interface</span><span class="p">]]</span>
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">[[</span><span class="n">Default</span> <span class="n">Interface</span><span class="p">]]</span>
|
||||||
<span class="nb">type</span> <span class="o">=</span> <span class="n">AutoInterface</span>
|
<span class="nb">type</span> <span class="o">=</span> <span class="n">AutoInterface</span>
|
||||||
<span class="n">interface_enabled</span> <span class="o">=</span> <span class="kc">True</span>
|
<span class="n">enabled</span> <span class="o">=</span> <span class="n">yes</span>
|
||||||
|
|
||||||
<span class="c1"># Configure global discovery</span>
|
<span class="c1"># Configure global discovery</span>
|
||||||
|
|
||||||
|
@ -311,61 +318,101 @@ the discovery scope by setting it to one of <code class="docutils literal notran
|
||||||
</pre></div>
|
</pre></div>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
<section id="i2p-interface">
|
<section id="backbone-interface">
|
||||||
<span id="interfaces-i2p"></span><h2>I2P Interface<a class="headerlink" href="#i2p-interface" title="Permalink to this heading">#</a></h2>
|
<span id="interfaces-backbone"></span><h2>Backbone Interface<a class="headerlink" href="#backbone-interface" title="Permalink to this heading">#</a></h2>
|
||||||
<p>The I2P interface lets you connect Reticulum instances over the
|
<p>The Backbone interface is a very fast and resource efficient interface type, primarily
|
||||||
<a class="reference external" href="https://i2pd.website">Invisible Internet Protocol</a>. This can be
|
intended for interconnecting Reticulum instances over many different types of mediums.
|
||||||
especially useful in cases where you want to host a globally reachable
|
It uses a kernel-event I/O backend, and can handle thousands of interfaces and/or clients
|
||||||
Reticulum instance, but do not have access to any public IP addresses,
|
with relatively low system resource utilisation. <strong>This interface type is currently only
|
||||||
have a frequently changing IP address, or have firewalls blocking
|
supported on Linux and Android</strong>.</p>
|
||||||
inbound traffic.</p>
|
|
||||||
<p>Using the I2P interface, you will get a globally reachable, portable
|
|
||||||
and persistent I2P address that your Reticulum instance can be reached
|
|
||||||
at.</p>
|
|
||||||
<p>To use the I2P interface, you must have an I2P router running
|
|
||||||
on your system. The easiest way to achieve this is to download and
|
|
||||||
install the <a class="reference external" href="https://github.com/PurpleI2P/i2pd/releases/latest">latest release</a>
|
|
||||||
of the <code class="docutils literal notranslate"><span class="pre">i2pd</span></code> package. For more details about I2P, see the
|
|
||||||
<a class="reference external" href="https://geti2p.net/en/about/intro">geti2p.net website</a>.</p>
|
|
||||||
<p>When an I2P router is running on your system, you can simply add
|
|
||||||
an I2P interface to Reticulum:</p>
|
|
||||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">[[</span><span class="n">I2P</span><span class="p">]]</span>
|
|
||||||
<span class="nb">type</span> <span class="o">=</span> <span class="n">I2PInterface</span>
|
|
||||||
<span class="n">interface_enabled</span> <span class="o">=</span> <span class="n">yes</span>
|
|
||||||
<span class="n">connectable</span> <span class="o">=</span> <span class="n">yes</span>
|
|
||||||
</pre></div>
|
|
||||||
</div>
|
|
||||||
<p>On the first start, Reticulum will generate a new I2P address for the
|
|
||||||
interface and start listening for inbound traffic on it. This can take
|
|
||||||
a while the first time, especially if your I2P router was also just
|
|
||||||
started, and is not yet well-connected to the I2P network. When ready,
|
|
||||||
you should see I2P base32 address printed to your log file. You can
|
|
||||||
also inspect the status of the interface using the <code class="docutils literal notranslate"><span class="pre">rnstatus</span></code> utility.</p>
|
|
||||||
<p>To connect to other Reticulum instances over I2P, just add a comma-separated
|
|
||||||
list of I2P base32 addresses to the <code class="docutils literal notranslate"><span class="pre">peers</span></code> option of the interface:</p>
|
|
||||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">[[</span><span class="n">I2P</span><span class="p">]]</span>
|
|
||||||
<span class="nb">type</span> <span class="o">=</span> <span class="n">I2PInterface</span>
|
|
||||||
<span class="n">interface_enabled</span> <span class="o">=</span> <span class="n">yes</span>
|
|
||||||
<span class="n">connectable</span> <span class="o">=</span> <span class="n">yes</span>
|
|
||||||
<span class="n">peers</span> <span class="o">=</span> <span class="mi">5</span><span class="n">urvjicpzi7q3ybztsef4i5ow2aq4soktfj7zedz53s47r54jnqq</span><span class="o">.</span><span class="n">b32</span><span class="o">.</span><span class="n">i2p</span>
|
|
||||||
</pre></div>
|
|
||||||
</div>
|
|
||||||
<p>It can take anywhere from a few seconds to a few minutes to establish
|
|
||||||
I2P connections to the desired peers, so Reticulum handles the process
|
|
||||||
in the background, and will output relevant events to the log.</p>
|
|
||||||
<div class="admonition note">
|
<div class="admonition note">
|
||||||
<p class="admonition-title">Note</p>
|
<p class="admonition-title">Note</p>
|
||||||
<p>While the I2P interface is the simplest way to use
|
<p>The Backbone Interface is fully compatible with the <code class="docutils literal notranslate"><span class="pre">TCPServerInterface</span></code> and <code class="docutils literal notranslate"><span class="pre">TCPClientInterface</span></code>
|
||||||
Reticulum over I2P, it is also possible to tunnel the TCP server and
|
types, and they can be used interchangably, and cross-connect with each other. On systems that support
|
||||||
client interfaces over I2P manually. This can be useful in situations
|
<code class="docutils literal notranslate"><span class="pre">BackboneInterface</span></code>, it is generally recommended to use it, unless you need specific options or
|
||||||
where more control is needed, but requires manual tunnel setup through
|
features that the TCP server and client interfaces provide.</p>
|
||||||
the I2P daemon configuration.</p>
|
|
||||||
</div>
|
</div>
|
||||||
<p>It is important to note that the two methods are <em>interchangably compatible</em>.
|
<p>While the goal is to support <em>all</em> socket types and I/O devices provided by the underlying
|
||||||
You can use the I2PInterface to connect to a TCPServerInterface that
|
operating system, the initial release only provides support for TCP connections over IPv4
|
||||||
was manually tunneled over I2P, for example. This offers a high degree
|
and IPv6.</p>
|
||||||
of flexibility in network setup, while retaining ease of use in simpler
|
<p>For all types of connections over a <code class="docutils literal notranslate"><span class="pre">BackboneInterface</span></code>, Reticulum will gracefully
|
||||||
use-cases.</p>
|
handle intermittency, link loss, and connections that come and go.</p>
|
||||||
|
<section id="listeners">
|
||||||
|
<h3>Listeners<a class="headerlink" href="#listeners" title="Permalink to this heading">#</a></h3>
|
||||||
|
<p>The following examples illustrates various ways to set up <code class="docutils literal notranslate"><span class="pre">BackboneInterface</span></code> listeners.</p>
|
||||||
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1"># This example demonstrates a backbone interface</span>
|
||||||
|
<span class="c1"># that listens for incoming connections on the</span>
|
||||||
|
<span class="c1"># specified IP address and port number.</span>
|
||||||
|
<span class="p">[[</span><span class="n">Backbone</span> <span class="n">Listener</span><span class="p">]]</span>
|
||||||
|
<span class="nb">type</span> <span class="o">=</span> <span class="n">BackboneInterface</span>
|
||||||
|
<span class="n">enabled</span> <span class="o">=</span> <span class="n">yes</span>
|
||||||
|
<span class="n">listen_on</span> <span class="o">=</span> <span class="mf">0.0.0.0</span>
|
||||||
|
<span class="n">port</span> <span class="o">=</span> <span class="mi">4242</span>
|
||||||
|
|
||||||
|
<span class="c1"># Alternatively you can bind to a specific IP</span>
|
||||||
|
<span class="p">[[</span><span class="n">Backbone</span> <span class="n">Listener</span><span class="p">]]</span>
|
||||||
|
<span class="nb">type</span> <span class="o">=</span> <span class="n">BackboneInterface</span>
|
||||||
|
<span class="n">enabled</span> <span class="o">=</span> <span class="n">yes</span>
|
||||||
|
<span class="n">listen_on</span> <span class="o">=</span> <span class="mf">10.0.0.88</span>
|
||||||
|
<span class="n">port</span> <span class="o">=</span> <span class="mi">4242</span>
|
||||||
|
|
||||||
|
<span class="c1"># Or a specific network device</span>
|
||||||
|
<span class="p">[[</span><span class="n">Backbone</span> <span class="n">Listener</span><span class="p">]]</span>
|
||||||
|
<span class="nb">type</span> <span class="o">=</span> <span class="n">BackboneInterface</span>
|
||||||
|
<span class="n">enabled</span> <span class="o">=</span> <span class="n">yes</span>
|
||||||
|
<span class="n">device</span> <span class="o">=</span> <span class="n">eth0</span>
|
||||||
|
<span class="n">port</span> <span class="o">=</span> <span class="mi">4242</span>
|
||||||
|
</pre></div>
|
||||||
|
</div>
|
||||||
|
<p>If you are using the interface on a device which has both IPv4 and IPv6 addresses available,
|
||||||
|
you can use the <code class="docutils literal notranslate"><span class="pre">prefer_ipv6</span></code> option to bind to the IPv6 address:</p>
|
||||||
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1"># This example demonstrates a backbone interface</span>
|
||||||
|
<span class="c1"># listening on the IPv6 address of a specified</span>
|
||||||
|
<span class="c1"># kernel networking device.</span>
|
||||||
|
<span class="p">[[</span><span class="n">Backbone</span> <span class="n">Listener</span><span class="p">]]</span>
|
||||||
|
<span class="nb">type</span> <span class="o">=</span> <span class="n">BackboneInterface</span>
|
||||||
|
<span class="n">enabled</span> <span class="o">=</span> <span class="n">yes</span>
|
||||||
|
<span class="n">prefer_ipv6</span> <span class="o">=</span> <span class="n">yes</span>
|
||||||
|
<span class="n">device</span> <span class="o">=</span> <span class="n">eth0</span>
|
||||||
|
<span class="n">port</span> <span class="o">=</span> <span class="mi">4242</span>
|
||||||
|
</pre></div>
|
||||||
|
</div>
|
||||||
|
<p>To use the <code class="docutils literal notranslate"><span class="pre">BackboneInterface</span></code> over <a class="reference external" href="https://yggdrasil-network.github.io/">Yggdrasil</a>, you
|
||||||
|
can simply specify the Yggdrasil <code class="docutils literal notranslate"><span class="pre">tun</span></code> device and a listening port, like so:</p>
|
||||||
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1"># This example demonstrates a backbone interface</span>
|
||||||
|
<span class="c1"># listening for connections over Yggdrasil.</span>
|
||||||
|
<span class="p">[[</span><span class="n">Yggdrasil</span> <span class="n">Backbone</span> <span class="n">Interface</span><span class="p">]]</span>
|
||||||
|
<span class="nb">type</span> <span class="o">=</span> <span class="n">BackboneInterface</span>
|
||||||
|
<span class="n">enabled</span> <span class="o">=</span> <span class="n">yes</span>
|
||||||
|
<span class="n">device</span> <span class="o">=</span> <span class="n">tun0</span>
|
||||||
|
<span class="n">port</span> <span class="o">=</span> <span class="mi">4343</span>
|
||||||
|
</pre></div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section id="connecting-remotes">
|
||||||
|
<h3>Connecting Remotes<a class="headerlink" href="#connecting-remotes" title="Permalink to this heading">#</a></h3>
|
||||||
|
<p>The following examples illustrates various ways to connect to remote <code class="docutils literal notranslate"><span class="pre">BackboneInterface</span></code> listeners.
|
||||||
|
As noted above, <code class="docutils literal notranslate"><span class="pre">BackboneInterface</span></code> interfaces can also connect to remote <code class="docutils literal notranslate"><span class="pre">TCPServerInterface</span></code>,
|
||||||
|
and as such these interface types can be used interchangably.</p>
|
||||||
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1"># Here's an example of a backbone interface that</span>
|
||||||
|
<span class="c1"># connects to a remote listener.</span>
|
||||||
|
<span class="p">[[</span><span class="n">Backbone</span> <span class="n">Remote</span><span class="p">]]</span>
|
||||||
|
<span class="nb">type</span> <span class="o">=</span> <span class="n">BackboneInterface</span>
|
||||||
|
<span class="n">enabled</span> <span class="o">=</span> <span class="n">yes</span>
|
||||||
|
<span class="n">remote</span> <span class="o">=</span> <span class="n">amsterdam</span><span class="o">.</span><span class="n">connect</span><span class="o">.</span><span class="n">reticulum</span><span class="o">.</span><span class="n">network</span>
|
||||||
|
<span class="n">target_port</span> <span class="o">=</span> <span class="mi">4251</span>
|
||||||
|
</pre></div>
|
||||||
|
</div>
|
||||||
|
<p>To connect to remotes over <a class="reference external" href="https://yggdrasil-network.github.io/">Yggdrasil</a>, simply
|
||||||
|
specify the target Yggdrasil IPv6 address and port, like so:</p>
|
||||||
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">[[</span><span class="n">Yggdrasil</span> <span class="n">Remote</span><span class="p">]]</span>
|
||||||
|
<span class="nb">type</span> <span class="o">=</span> <span class="n">BackboneInterface</span>
|
||||||
|
<span class="n">enabled</span> <span class="o">=</span> <span class="n">yes</span>
|
||||||
|
<span class="n">target_host</span> <span class="o">=</span> <span class="mi">201</span><span class="p">:</span><span class="mi">5</span><span class="n">d78</span><span class="p">:</span><span class="n">af73</span><span class="p">:</span><span class="mi">5</span><span class="n">caf</span><span class="p">:</span><span class="n">a4de</span><span class="p">:</span><span class="n">a79f</span><span class="p">:</span><span class="mi">3278</span><span class="p">:</span><span class="mf">71e5</span>
|
||||||
|
<span class="n">target_port</span> <span class="o">=</span> <span class="mi">4343</span>
|
||||||
|
</pre></div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
</section>
|
</section>
|
||||||
<section id="tcp-server-interface">
|
<section id="tcp-server-interface">
|
||||||
<span id="interfaces-tcps"></span><h2>TCP Server Interface<a class="headerlink" href="#tcp-server-interface" title="Permalink to this heading">#</a></h2>
|
<span id="interfaces-tcps"></span><h2>TCP Server Interface<a class="headerlink" href="#tcp-server-interface" title="Permalink to this heading">#</a></h2>
|
||||||
|
@ -373,28 +420,27 @@ use-cases.</p>
|
||||||
the Internet or private IPv4 and IPv6 networks. When a TCP server interface has been
|
the Internet or private IPv4 and IPv6 networks. When a TCP server interface has been
|
||||||
configured, other Reticulum peers can connect to it with a TCP Client interface.</p>
|
configured, other Reticulum peers can connect to it with a TCP Client interface.</p>
|
||||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1"># This example demonstrates a TCP server interface.</span>
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1"># This example demonstrates a TCP server interface.</span>
|
||||||
<span class="c1"># It will listen for incoming connections on the</span>
|
<span class="c1"># It will listen for incoming connections on all IP</span>
|
||||||
<span class="c1"># specified IP address and port number.</span>
|
<span class="c1"># interfaces on port 4242.</span>
|
||||||
|
|
||||||
<span class="p">[[</span><span class="n">TCP</span> <span class="n">Server</span> <span class="n">Interface</span><span class="p">]]</span>
|
<span class="p">[[</span><span class="n">TCP</span> <span class="n">Server</span> <span class="n">Interface</span><span class="p">]]</span>
|
||||||
<span class="nb">type</span> <span class="o">=</span> <span class="n">TCPServerInterface</span>
|
<span class="nb">type</span> <span class="o">=</span> <span class="n">TCPServerInterface</span>
|
||||||
<span class="n">interface_enabled</span> <span class="o">=</span> <span class="kc">True</span>
|
<span class="n">enabled</span> <span class="o">=</span> <span class="n">yes</span>
|
||||||
|
|
||||||
<span class="c1"># This configuration will listen on all IP</span>
|
|
||||||
<span class="c1"># interfaces on port 4242</span>
|
|
||||||
|
|
||||||
<span class="n">listen_ip</span> <span class="o">=</span> <span class="mf">0.0.0.0</span>
|
<span class="n">listen_ip</span> <span class="o">=</span> <span class="mf">0.0.0.0</span>
|
||||||
<span class="n">listen_port</span> <span class="o">=</span> <span class="mi">4242</span>
|
<span class="n">listen_port</span> <span class="o">=</span> <span class="mi">4242</span>
|
||||||
|
|
||||||
<span class="c1"># Alternatively you can bind to a specific IP</span>
|
<span class="c1"># Alternatively you can bind to a specific IP</span>
|
||||||
|
<span class="p">[[</span><span class="n">TCP</span> <span class="n">Server</span> <span class="n">Interface</span><span class="p">]]</span>
|
||||||
|
<span class="nb">type</span> <span class="o">=</span> <span class="n">TCPServerInterface</span>
|
||||||
|
<span class="n">enabled</span> <span class="o">=</span> <span class="n">yes</span>
|
||||||
|
<span class="n">listen_ip</span> <span class="o">=</span> <span class="mf">10.0.0.88</span>
|
||||||
|
<span class="n">listen_port</span> <span class="o">=</span> <span class="mi">4242</span>
|
||||||
|
|
||||||
<span class="c1"># listen_ip = 10.0.0.88</span>
|
<span class="c1"># Or a specific network device</span>
|
||||||
<span class="c1"># listen_port = 4242</span>
|
<span class="p">[[</span><span class="n">TCP</span> <span class="n">Server</span> <span class="n">Interface</span><span class="p">]]</span>
|
||||||
|
<span class="nb">type</span> <span class="o">=</span> <span class="n">TCPServerInterface</span>
|
||||||
<span class="c1"># Or a specific network device</span>
|
<span class="n">enabled</span> <span class="o">=</span> <span class="n">yes</span>
|
||||||
|
<span class="n">device</span> <span class="o">=</span> <span class="n">eth0</span>
|
||||||
<span class="c1"># device = eth0</span>
|
<span class="n">listen_port</span> <span class="o">=</span> <span class="mi">4242</span>
|
||||||
<span class="c1"># port = 4242</span>
|
|
||||||
</pre></div>
|
</pre></div>
|
||||||
</div>
|
</div>
|
||||||
<p>If you are using the interface on a device which has both IPv4 and IPv6 addresses available,
|
<p>If you are using the interface on a device which has both IPv4 and IPv6 addresses available,
|
||||||
|
@ -405,20 +451,19 @@ you can use the <code class="docutils literal notranslate"><span class="pre">pre
|
||||||
|
|
||||||
<span class="p">[[</span><span class="n">TCP</span> <span class="n">Server</span> <span class="n">Interface</span><span class="p">]]</span>
|
<span class="p">[[</span><span class="n">TCP</span> <span class="n">Server</span> <span class="n">Interface</span><span class="p">]]</span>
|
||||||
<span class="nb">type</span> <span class="o">=</span> <span class="n">TCPServerInterface</span>
|
<span class="nb">type</span> <span class="o">=</span> <span class="n">TCPServerInterface</span>
|
||||||
<span class="n">interface_enabled</span> <span class="o">=</span> <span class="kc">True</span>
|
<span class="n">enabled</span> <span class="o">=</span> <span class="n">yes</span>
|
||||||
|
<span class="n">prefer_ipv6</span> <span class="o">=</span> <span class="kc">True</span>
|
||||||
<span class="n">device</span> <span class="o">=</span> <span class="n">eth0</span>
|
<span class="n">device</span> <span class="o">=</span> <span class="n">eth0</span>
|
||||||
<span class="n">port</span> <span class="o">=</span> <span class="mi">4242</span>
|
<span class="n">port</span> <span class="o">=</span> <span class="mi">4242</span>
|
||||||
<span class="n">prefer_ipv6</span> <span class="o">=</span> <span class="kc">True</span>
|
|
||||||
</pre></div>
|
</pre></div>
|
||||||
</div>
|
</div>
|
||||||
<p>To use the TCP Server Interface over <a class="reference external" href="https://yggdrasil-network.github.io/">Yggdrasil</a>, you
|
<p>To use the TCP Server Interface over <a class="reference external" href="https://yggdrasil-network.github.io/">Yggdrasil</a>, you
|
||||||
can simply specify the Yggdrasil <code class="docutils literal notranslate"><span class="pre">tun</span></code> device and a listening port, like so:</p>
|
can simply specify the Yggdrasil <code class="docutils literal notranslate"><span class="pre">tun</span></code> device and a listening port, like so:</p>
|
||||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">[[</span><span class="n">Yggdrasil</span> <span class="n">TCP</span> <span class="n">Server</span> <span class="n">Interface</span><span class="p">]]</span>
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">[[</span><span class="n">Yggdrasil</span> <span class="n">TCP</span> <span class="n">Server</span> <span class="n">Interface</span><span class="p">]]</span>
|
||||||
<span class="nb">type</span> <span class="o">=</span> <span class="n">TCPServerInterface</span>
|
<span class="nb">type</span> <span class="o">=</span> <span class="n">TCPServerInterface</span>
|
||||||
<span class="n">interface_enabled</span> <span class="o">=</span> <span class="n">yes</span>
|
<span class="n">enabled</span> <span class="o">=</span> <span class="n">yes</span>
|
||||||
<span class="n">device</span> <span class="o">=</span> <span class="n">tun0</span>
|
<span class="n">device</span> <span class="o">=</span> <span class="n">tun0</span>
|
||||||
<span class="n">listen_port</span> <span class="o">=</span> <span class="mi">4343</span>
|
<span class="n">listen_port</span> <span class="o">=</span> <span class="mi">4343</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="admonition note">
|
<div class="admonition note">
|
||||||
|
@ -427,11 +472,11 @@ can simply specify the Yggdrasil <code class="docutils literal notranslate"><spa
|
||||||
you must use the i2p_tunneled option:</p>
|
you must use the i2p_tunneled option:</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">[[</span><span class="n">TCP</span> <span class="n">Server</span> <span class="n">on</span> <span class="n">I2P</span><span class="p">]]</span>
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">[[</span><span class="n">TCP</span> <span class="n">Server</span> <span class="n">on</span> <span class="n">I2P</span><span class="p">]]</span>
|
||||||
<span class="nb">type</span> <span class="o">=</span> <span class="n">TCPServerInterface</span>
|
<span class="nb">type</span> <span class="o">=</span> <span class="n">TCPServerInterface</span>
|
||||||
<span class="n">interface_enabled</span> <span class="o">=</span> <span class="n">yes</span>
|
<span class="n">enabled</span> <span class="o">=</span> <span class="n">yes</span>
|
||||||
<span class="n">listen_ip</span> <span class="o">=</span> <span class="mf">127.0.0.1</span>
|
<span class="n">listen_ip</span> <span class="o">=</span> <span class="mf">127.0.0.1</span>
|
||||||
<span class="n">listen_port</span> <span class="o">=</span> <span class="mi">5001</span>
|
<span class="n">listen_port</span> <span class="o">=</span> <span class="mi">5001</span>
|
||||||
<span class="n">i2p_tunneled</span> <span class="o">=</span> <span class="n">yes</span>
|
<span class="n">i2p_tunneled</span> <span class="o">=</span> <span class="n">yes</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
</div>
|
</div>
|
||||||
<p>In almost all cases, it is easier to use the dedicated <code class="docutils literal notranslate"><span class="pre">I2PInterface</span></code>, but for complete
|
<p>In almost all cases, it is easier to use the dedicated <code class="docutils literal notranslate"><span class="pre">I2PInterface</span></code>, but for complete
|
||||||
|
@ -439,7 +484,7 @@ control, and using I2P routers running on external systems, this option also exi
|
||||||
</section>
|
</section>
|
||||||
<section id="tcp-client-interface">
|
<section id="tcp-client-interface">
|
||||||
<span id="interfaces-tcpc"></span><h2>TCP Client Interface<a class="headerlink" href="#tcp-client-interface" title="Permalink to this heading">#</a></h2>
|
<span id="interfaces-tcpc"></span><h2>TCP Client Interface<a class="headerlink" href="#tcp-client-interface" title="Permalink to this heading">#</a></h2>
|
||||||
<p>To connect to a TCP server interface, you would naturally use the TCP client
|
<p>To connect to a TCP server interface, you can use the TCP client
|
||||||
interface. Many TCP Client interfaces from different peers can connect to the
|
interface. Many TCP Client interfaces from different peers can connect to the
|
||||||
same TCP Server interface at the same time.</p>
|
same TCP Server interface at the same time.</p>
|
||||||
<p>The TCP interface types can also tolerate intermittency in the IP link layer.
|
<p>The TCP interface types can also tolerate intermittency in the IP link layer.
|
||||||
|
@ -447,10 +492,9 @@ This means that Reticulum will gracefully handle IP links that go up and down,
|
||||||
and restore connectivity after a failure, once the other end of a TCP interface reappears.</p>
|
and restore connectivity after a failure, once the other end of a TCP interface reappears.</p>
|
||||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1"># Here's an example of a TCP Client interface. The</span>
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1"># Here's an example of a TCP Client interface. The</span>
|
||||||
<span class="c1"># target_host can be a hostname or an IPv4 or IPv6 address.</span>
|
<span class="c1"># target_host can be a hostname or an IPv4 or IPv6 address.</span>
|
||||||
|
|
||||||
<span class="p">[[</span><span class="n">TCP</span> <span class="n">Client</span> <span class="n">Interface</span><span class="p">]]</span>
|
<span class="p">[[</span><span class="n">TCP</span> <span class="n">Client</span> <span class="n">Interface</span><span class="p">]]</span>
|
||||||
<span class="nb">type</span> <span class="o">=</span> <span class="n">TCPClientInterface</span>
|
<span class="nb">type</span> <span class="o">=</span> <span class="n">TCPClientInterface</span>
|
||||||
<span class="n">interface_enabled</span> <span class="o">=</span> <span class="kc">True</span>
|
<span class="n">enabled</span> <span class="o">=</span> <span class="n">yes</span>
|
||||||
<span class="n">target_host</span> <span class="o">=</span> <span class="mf">127.0.0.1</span>
|
<span class="n">target_host</span> <span class="o">=</span> <span class="mf">127.0.0.1</span>
|
||||||
<span class="n">target_port</span> <span class="o">=</span> <span class="mi">4242</span>
|
<span class="n">target_port</span> <span class="o">=</span> <span class="mi">4242</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
@ -459,7 +503,7 @@ and restore connectivity after a failure, once the other end of a TCP interface
|
||||||
specify the target Yggdrasil IPv6 address and port, like so:</p>
|
specify the target Yggdrasil IPv6 address and port, like so:</p>
|
||||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">[[</span><span class="n">Yggdrasil</span> <span class="n">TCP</span> <span class="n">Client</span> <span class="n">Interface</span><span class="p">]]</span>
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">[[</span><span class="n">Yggdrasil</span> <span class="n">TCP</span> <span class="n">Client</span> <span class="n">Interface</span><span class="p">]]</span>
|
||||||
<span class="nb">type</span> <span class="o">=</span> <span class="n">TCPClientInterface</span>
|
<span class="nb">type</span> <span class="o">=</span> <span class="n">TCPClientInterface</span>
|
||||||
<span class="n">interface_enabled</span> <span class="o">=</span> <span class="n">yes</span>
|
<span class="n">enabled</span> <span class="o">=</span> <span class="n">yes</span>
|
||||||
<span class="n">target_host</span> <span class="o">=</span> <span class="mi">201</span><span class="p">:</span><span class="mi">5</span><span class="n">d78</span><span class="p">:</span><span class="n">af73</span><span class="p">:</span><span class="mi">5</span><span class="n">caf</span><span class="p">:</span><span class="n">a4de</span><span class="p">:</span><span class="n">a79f</span><span class="p">:</span><span class="mi">3278</span><span class="p">:</span><span class="mf">71e5</span>
|
<span class="n">target_host</span> <span class="o">=</span> <span class="mi">201</span><span class="p">:</span><span class="mi">5</span><span class="n">d78</span><span class="p">:</span><span class="n">af73</span><span class="p">:</span><span class="mi">5</span><span class="n">caf</span><span class="p">:</span><span class="n">a4de</span><span class="p">:</span><span class="n">a79f</span><span class="p">:</span><span class="mi">3278</span><span class="p">:</span><span class="mf">71e5</span>
|
||||||
<span class="n">target_port</span> <span class="o">=</span> <span class="mi">4343</span>
|
<span class="n">target_port</span> <span class="o">=</span> <span class="mi">4343</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
@ -472,7 +516,7 @@ software-based soundmodems. To do this, use the <code class="docutils literal no
|
||||||
|
|
||||||
<span class="p">[[</span><span class="n">TCP</span> <span class="n">KISS</span> <span class="n">Interface</span><span class="p">]]</span>
|
<span class="p">[[</span><span class="n">TCP</span> <span class="n">KISS</span> <span class="n">Interface</span><span class="p">]]</span>
|
||||||
<span class="nb">type</span> <span class="o">=</span> <span class="n">TCPClientInterface</span>
|
<span class="nb">type</span> <span class="o">=</span> <span class="n">TCPClientInterface</span>
|
||||||
<span class="n">interface_enabled</span> <span class="o">=</span> <span class="kc">True</span>
|
<span class="n">enabled</span> <span class="o">=</span> <span class="n">yes</span>
|
||||||
<span class="n">kiss_framing</span> <span class="o">=</span> <span class="kc">True</span>
|
<span class="n">kiss_framing</span> <span class="o">=</span> <span class="kc">True</span>
|
||||||
<span class="n">target_host</span> <span class="o">=</span> <span class="mf">127.0.0.1</span>
|
<span class="n">target_host</span> <span class="o">=</span> <span class="mf">127.0.0.1</span>
|
||||||
<span class="n">target_port</span> <span class="o">=</span> <span class="mi">8001</span>
|
<span class="n">target_port</span> <span class="o">=</span> <span class="mi">8001</span>
|
||||||
|
@ -491,7 +535,7 @@ you must use the i2p_tunneled option:</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">[[</span><span class="n">TCP</span> <span class="n">Client</span> <span class="n">over</span> <span class="n">I2P</span><span class="p">]]</span>
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">[[</span><span class="n">TCP</span> <span class="n">Client</span> <span class="n">over</span> <span class="n">I2P</span><span class="p">]]</span>
|
||||||
<span class="nb">type</span> <span class="o">=</span> <span class="n">TCPClientInterface</span>
|
<span class="nb">type</span> <span class="o">=</span> <span class="n">TCPClientInterface</span>
|
||||||
<span class="n">interface_enabled</span> <span class="o">=</span> <span class="n">yes</span>
|
<span class="n">enabled</span> <span class="o">=</span> <span class="n">yes</span>
|
||||||
<span class="n">target_host</span> <span class="o">=</span> <span class="mf">127.0.0.1</span>
|
<span class="n">target_host</span> <span class="o">=</span> <span class="mf">127.0.0.1</span>
|
||||||
<span class="n">target_port</span> <span class="o">=</span> <span class="mi">5001</span>
|
<span class="n">target_port</span> <span class="o">=</span> <span class="mi">5001</span>
|
||||||
<span class="n">i2p_tunneled</span> <span class="o">=</span> <span class="n">yes</span>
|
<span class="n">i2p_tunneled</span> <span class="o">=</span> <span class="n">yes</span>
|
||||||
|
@ -517,7 +561,7 @@ easier to use.</p>
|
||||||
|
|
||||||
<span class="p">[[</span><span class="n">UDP</span> <span class="n">Interface</span><span class="p">]]</span>
|
<span class="p">[[</span><span class="n">UDP</span> <span class="n">Interface</span><span class="p">]]</span>
|
||||||
<span class="nb">type</span> <span class="o">=</span> <span class="n">UDPInterface</span>
|
<span class="nb">type</span> <span class="o">=</span> <span class="n">UDPInterface</span>
|
||||||
<span class="n">interface_enabled</span> <span class="o">=</span> <span class="kc">True</span>
|
<span class="n">enabled</span> <span class="o">=</span> <span class="n">yes</span>
|
||||||
|
|
||||||
<span class="n">listen_ip</span> <span class="o">=</span> <span class="mf">0.0.0.0</span>
|
<span class="n">listen_ip</span> <span class="o">=</span> <span class="mf">0.0.0.0</span>
|
||||||
<span class="n">listen_port</span> <span class="o">=</span> <span class="mi">4242</span>
|
<span class="n">listen_port</span> <span class="o">=</span> <span class="mi">4242</span>
|
||||||
|
@ -556,6 +600,62 @@ easier to use.</p>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
<section id="i2p-interface">
|
||||||
|
<span id="interfaces-i2p"></span><h2>I2P Interface<a class="headerlink" href="#i2p-interface" title="Permalink to this heading">#</a></h2>
|
||||||
|
<p>The I2P interface lets you connect Reticulum instances over the
|
||||||
|
<a class="reference external" href="https://i2pd.website">Invisible Internet Protocol</a>. This can be
|
||||||
|
especially useful in cases where you want to host a globally reachable
|
||||||
|
Reticulum instance, but do not have access to any public IP addresses,
|
||||||
|
have a frequently changing IP address, or have firewalls blocking
|
||||||
|
inbound traffic.</p>
|
||||||
|
<p>Using the I2P interface, you will get a globally reachable, portable
|
||||||
|
and persistent I2P address that your Reticulum instance can be reached
|
||||||
|
at.</p>
|
||||||
|
<p>To use the I2P interface, you must have an I2P router running
|
||||||
|
on your system. The easiest way to achieve this is to download and
|
||||||
|
install the <a class="reference external" href="https://github.com/PurpleI2P/i2pd/releases/latest">latest release</a>
|
||||||
|
of the <code class="docutils literal notranslate"><span class="pre">i2pd</span></code> package. For more details about I2P, see the
|
||||||
|
<a class="reference external" href="https://geti2p.net/en/about/intro">geti2p.net website</a>.</p>
|
||||||
|
<p>When an I2P router is running on your system, you can simply add
|
||||||
|
an I2P interface to Reticulum:</p>
|
||||||
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">[[</span><span class="n">I2P</span><span class="p">]]</span>
|
||||||
|
<span class="nb">type</span> <span class="o">=</span> <span class="n">I2PInterface</span>
|
||||||
|
<span class="n">enabled</span> <span class="o">=</span> <span class="n">yes</span>
|
||||||
|
<span class="n">connectable</span> <span class="o">=</span> <span class="n">yes</span>
|
||||||
|
</pre></div>
|
||||||
|
</div>
|
||||||
|
<p>On the first start, Reticulum will generate a new I2P address for the
|
||||||
|
interface and start listening for inbound traffic on it. This can take
|
||||||
|
a while the first time, especially if your I2P router was also just
|
||||||
|
started, and is not yet well-connected to the I2P network. When ready,
|
||||||
|
you should see I2P base32 address printed to your log file. You can
|
||||||
|
also inspect the status of the interface using the <code class="docutils literal notranslate"><span class="pre">rnstatus</span></code> utility.</p>
|
||||||
|
<p>To connect to other Reticulum instances over I2P, just add a comma-separated
|
||||||
|
list of I2P base32 addresses to the <code class="docutils literal notranslate"><span class="pre">peers</span></code> option of the interface:</p>
|
||||||
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">[[</span><span class="n">I2P</span><span class="p">]]</span>
|
||||||
|
<span class="nb">type</span> <span class="o">=</span> <span class="n">I2PInterface</span>
|
||||||
|
<span class="n">enabled</span> <span class="o">=</span> <span class="n">yes</span>
|
||||||
|
<span class="n">connectable</span> <span class="o">=</span> <span class="n">yes</span>
|
||||||
|
<span class="n">peers</span> <span class="o">=</span> <span class="mi">5</span><span class="n">urvjicpzi7q3ybztsef4i5ow2aq4soktfj7zedz53s47r54jnqq</span><span class="o">.</span><span class="n">b32</span><span class="o">.</span><span class="n">i2p</span>
|
||||||
|
</pre></div>
|
||||||
|
</div>
|
||||||
|
<p>It can take anywhere from a few seconds to a few minutes to establish
|
||||||
|
I2P connections to the desired peers, so Reticulum handles the process
|
||||||
|
in the background, and will output relevant events to the log.</p>
|
||||||
|
<div class="admonition note">
|
||||||
|
<p class="admonition-title">Note</p>
|
||||||
|
<p>While the I2P interface is the simplest way to use
|
||||||
|
Reticulum over I2P, it is also possible to tunnel the TCP server and
|
||||||
|
client interfaces over I2P manually. This can be useful in situations
|
||||||
|
where more control is needed, but requires manual tunnel setup through
|
||||||
|
the I2P daemon configuration.</p>
|
||||||
|
</div>
|
||||||
|
<p>It is important to note that the two methods are <em>interchangably compatible</em>.
|
||||||
|
You can use the I2PInterface to connect to a TCPServerInterface that
|
||||||
|
was manually tunneled over I2P, for example. This offers a high degree
|
||||||
|
of flexibility in network setup, while retaining ease of use in simpler
|
||||||
|
use-cases.</p>
|
||||||
|
</section>
|
||||||
<section id="rnode-lora-interface">
|
<section id="rnode-lora-interface">
|
||||||
<span id="interfaces-rnode"></span><h2>RNode LoRa Interface<a class="headerlink" href="#rnode-lora-interface" title="Permalink to this heading">#</a></h2>
|
<span id="interfaces-rnode"></span><h2>RNode LoRa Interface<a class="headerlink" href="#rnode-lora-interface" title="Permalink to this heading">#</a></h2>
|
||||||
<p>To use Reticulum over LoRa, the <a class="reference external" href="https://unsigned.io/rnode/">RNode</a> interface
|
<p>To use Reticulum over LoRa, the <a class="reference external" href="https://unsigned.io/rnode/">RNode</a> interface
|
||||||
|
@ -573,7 +673,7 @@ relevant regulation for your location, and to make decisions accordingly.</p>
|
||||||
<span class="nb">type</span> <span class="o">=</span> <span class="n">RNodeInterface</span>
|
<span class="nb">type</span> <span class="o">=</span> <span class="n">RNodeInterface</span>
|
||||||
|
|
||||||
<span class="c1"># Enable interface if you want use it!</span>
|
<span class="c1"># Enable interface if you want use it!</span>
|
||||||
<span class="n">interface_enabled</span> <span class="o">=</span> <span class="kc">True</span>
|
<span class="n">enabled</span> <span class="o">=</span> <span class="n">yes</span>
|
||||||
|
|
||||||
<span class="c1"># Serial port for the device</span>
|
<span class="c1"># Serial port for the device</span>
|
||||||
<span class="n">port</span> <span class="o">=</span> <span class="o">/</span><span class="n">dev</span><span class="o">/</span><span class="n">ttyUSB0</span>
|
<span class="n">port</span> <span class="o">=</span> <span class="o">/</span><span class="n">dev</span><span class="o">/</span><span class="n">ttyUSB0</span>
|
||||||
|
@ -661,7 +761,7 @@ relevant regulation for your location, and to make decisions accordingly.</p>
|
||||||
<span class="nb">type</span> <span class="o">=</span> <span class="n">RNodeMultiInterface</span>
|
<span class="nb">type</span> <span class="o">=</span> <span class="n">RNodeMultiInterface</span>
|
||||||
|
|
||||||
<span class="c1"># Enable interface if you want to use it!</span>
|
<span class="c1"># Enable interface if you want to use it!</span>
|
||||||
<span class="n">interface_enabled</span> <span class="o">=</span> <span class="kc">True</span>
|
<span class="n">enabled</span> <span class="o">=</span> <span class="n">yes</span>
|
||||||
|
|
||||||
<span class="c1"># Serial port for the device</span>
|
<span class="c1"># Serial port for the device</span>
|
||||||
<span class="n">port</span> <span class="o">=</span> <span class="o">/</span><span class="n">dev</span><span class="o">/</span><span class="n">ttyACM0</span>
|
<span class="n">port</span> <span class="o">=</span> <span class="o">/</span><span class="n">dev</span><span class="o">/</span><span class="n">ttyACM0</span>
|
||||||
|
@ -677,7 +777,7 @@ relevant regulation for your location, and to make decisions accordingly.</p>
|
||||||
<span class="c1"># A subinterface</span>
|
<span class="c1"># A subinterface</span>
|
||||||
<span class="p">[[[</span><span class="n">High</span> <span class="n">Datarate</span><span class="p">]]]</span>
|
<span class="p">[[[</span><span class="n">High</span> <span class="n">Datarate</span><span class="p">]]]</span>
|
||||||
<span class="c1"># Subinterfaces can be enabled and disabled in of themselves</span>
|
<span class="c1"># Subinterfaces can be enabled and disabled in of themselves</span>
|
||||||
<span class="n">interface_enabled</span> <span class="o">=</span> <span class="kc">True</span>
|
<span class="n">enabled</span> <span class="o">=</span> <span class="n">yes</span>
|
||||||
|
|
||||||
<span class="c1"># Set frequency to 2.4GHz</span>
|
<span class="c1"># Set frequency to 2.4GHz</span>
|
||||||
<span class="n">frequency</span> <span class="o">=</span> <span class="mi">2400000000</span>
|
<span class="n">frequency</span> <span class="o">=</span> <span class="mi">2400000000</span>
|
||||||
|
@ -719,7 +819,7 @@ relevant regulation for your location, and to make decisions accordingly.</p>
|
||||||
|
|
||||||
<span class="p">[[[</span><span class="n">Low</span> <span class="n">Datarate</span><span class="p">]]]</span>
|
<span class="p">[[[</span><span class="n">Low</span> <span class="n">Datarate</span><span class="p">]]]</span>
|
||||||
<span class="c1"># Subinterfaces can be enabled and disabled in of themselves</span>
|
<span class="c1"># Subinterfaces can be enabled and disabled in of themselves</span>
|
||||||
<span class="n">interface_enabled</span> <span class="o">=</span> <span class="kc">True</span>
|
<span class="n">enabled</span> <span class="o">=</span> <span class="n">yes</span>
|
||||||
|
|
||||||
<span class="c1"># Set frequency to 865.6 MHz</span>
|
<span class="c1"># Set frequency to 865.6 MHz</span>
|
||||||
<span class="n">frequency</span> <span class="o">=</span> <span class="mi">865600000</span>
|
<span class="n">frequency</span> <span class="o">=</span> <span class="mi">865600000</span>
|
||||||
|
@ -768,7 +868,7 @@ serial port, that will transparently pass data. Useful for communicating
|
||||||
directly over a wire-pair, or for using devices such as data radios and lasers.</p>
|
directly over a wire-pair, or for using devices such as data radios and lasers.</p>
|
||||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">[[</span><span class="n">Serial</span> <span class="n">Interface</span><span class="p">]]</span>
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">[[</span><span class="n">Serial</span> <span class="n">Interface</span><span class="p">]]</span>
|
||||||
<span class="nb">type</span> <span class="o">=</span> <span class="n">SerialInterface</span>
|
<span class="nb">type</span> <span class="o">=</span> <span class="n">SerialInterface</span>
|
||||||
<span class="n">interface_enabled</span> <span class="o">=</span> <span class="kc">True</span>
|
<span class="n">enabled</span> <span class="o">=</span> <span class="n">yes</span>
|
||||||
|
|
||||||
<span class="c1"># Serial port for the device</span>
|
<span class="c1"># Serial port for the device</span>
|
||||||
<span class="n">port</span> <span class="o">=</span> <span class="o">/</span><span class="n">dev</span><span class="o">/</span><span class="n">ttyUSB0</span>
|
<span class="n">port</span> <span class="o">=</span> <span class="o">/</span><span class="n">dev</span><span class="o">/</span><span class="n">ttyUSB0</span>
|
||||||
|
@ -789,7 +889,7 @@ directly over a wire-pair, or for using devices such as data radios and lasers.<
|
||||||
custom hardware or other systems.</p>
|
custom hardware or other systems.</p>
|
||||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">[[</span><span class="n">Pipe</span> <span class="n">Interface</span><span class="p">]]</span>
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">[[</span><span class="n">Pipe</span> <span class="n">Interface</span><span class="p">]]</span>
|
||||||
<span class="nb">type</span> <span class="o">=</span> <span class="n">PipeInterface</span>
|
<span class="nb">type</span> <span class="o">=</span> <span class="n">PipeInterface</span>
|
||||||
<span class="n">interface_enabled</span> <span class="o">=</span> <span class="kc">True</span>
|
<span class="n">enabled</span> <span class="o">=</span> <span class="n">yes</span>
|
||||||
|
|
||||||
<span class="c1"># External command to execute</span>
|
<span class="c1"># External command to execute</span>
|
||||||
<span class="n">command</span> <span class="o">=</span> <span class="n">netcat</span> <span class="o">-</span><span class="n">l</span> <span class="mi">5757</span>
|
<span class="n">command</span> <span class="o">=</span> <span class="n">netcat</span> <span class="o">-</span><span class="n">l</span> <span class="mi">5757</span>
|
||||||
|
@ -816,7 +916,7 @@ relevant regulation for your location, and to make decisions accordingly.</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">[[</span><span class="n">Packet</span> <span class="n">Radio</span> <span class="n">KISS</span> <span class="n">Interface</span><span class="p">]]</span>
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">[[</span><span class="n">Packet</span> <span class="n">Radio</span> <span class="n">KISS</span> <span class="n">Interface</span><span class="p">]]</span>
|
||||||
<span class="nb">type</span> <span class="o">=</span> <span class="n">KISSInterface</span>
|
<span class="nb">type</span> <span class="o">=</span> <span class="n">KISSInterface</span>
|
||||||
<span class="n">interface_enabled</span> <span class="o">=</span> <span class="kc">True</span>
|
<span class="n">enabled</span> <span class="o">=</span> <span class="n">yes</span>
|
||||||
|
|
||||||
<span class="c1"># Serial port for the device</span>
|
<span class="c1"># Serial port for the device</span>
|
||||||
<span class="n">port</span> <span class="o">=</span> <span class="o">/</span><span class="n">dev</span><span class="o">/</span><span class="n">ttyUSB1</span>
|
<span class="n">port</span> <span class="o">=</span> <span class="o">/</span><span class="n">dev</span><span class="o">/</span><span class="n">ttyUSB1</span>
|
||||||
|
@ -885,7 +985,7 @@ relevant regulation for your location, and to make decisions accordingly.</p>
|
||||||
<span class="n">ssid</span> <span class="o">=</span> <span class="mi">0</span>
|
<span class="n">ssid</span> <span class="o">=</span> <span class="mi">0</span>
|
||||||
|
|
||||||
<span class="c1"># Enable interface if you want use it!</span>
|
<span class="c1"># Enable interface if you want use it!</span>
|
||||||
<span class="n">interface_enabled</span> <span class="o">=</span> <span class="kc">True</span>
|
<span class="n">enabled</span> <span class="o">=</span> <span class="n">yes</span>
|
||||||
|
|
||||||
<span class="c1"># Serial port for the device</span>
|
<span class="c1"># Serial port for the device</span>
|
||||||
<span class="n">port</span> <span class="o">=</span> <span class="o">/</span><span class="n">dev</span><span class="o">/</span><span class="n">ttyUSB2</span>
|
<span class="n">port</span> <span class="o">=</span> <span class="o">/</span><span class="n">dev</span><span class="o">/</span><span class="n">ttyUSB2</span>
|
||||||
|
@ -1304,10 +1404,15 @@ to <code class="docutils literal notranslate"><span class="pre">30</span></code>
|
||||||
<li><a class="reference internal" href="#">Configuring Interfaces</a><ul>
|
<li><a class="reference internal" href="#">Configuring Interfaces</a><ul>
|
||||||
<li><a class="reference internal" href="#custom-interfaces">Custom Interfaces</a></li>
|
<li><a class="reference internal" href="#custom-interfaces">Custom Interfaces</a></li>
|
||||||
<li><a class="reference internal" href="#auto-interface">Auto Interface</a></li>
|
<li><a class="reference internal" href="#auto-interface">Auto Interface</a></li>
|
||||||
<li><a class="reference internal" href="#i2p-interface">I2P Interface</a></li>
|
<li><a class="reference internal" href="#backbone-interface">Backbone Interface</a><ul>
|
||||||
|
<li><a class="reference internal" href="#listeners">Listeners</a></li>
|
||||||
|
<li><a class="reference internal" href="#connecting-remotes">Connecting Remotes</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
<li><a class="reference internal" href="#tcp-server-interface">TCP Server Interface</a></li>
|
<li><a class="reference internal" href="#tcp-server-interface">TCP Server Interface</a></li>
|
||||||
<li><a class="reference internal" href="#tcp-client-interface">TCP Client Interface</a></li>
|
<li><a class="reference internal" href="#tcp-client-interface">TCP Client Interface</a></li>
|
||||||
<li><a class="reference internal" href="#udp-interface">UDP Interface</a></li>
|
<li><a class="reference internal" href="#udp-interface">UDP Interface</a></li>
|
||||||
|
<li><a class="reference internal" href="#i2p-interface">I2P Interface</a></li>
|
||||||
<li><a class="reference internal" href="#rnode-lora-interface">RNode LoRa Interface</a></li>
|
<li><a class="reference internal" href="#rnode-lora-interface">RNode LoRa Interface</a></li>
|
||||||
<li><a class="reference internal" href="#rnode-multi-interface">RNode Multi Interface</a></li>
|
<li><a class="reference internal" href="#rnode-multi-interface">RNode Multi Interface</a></li>
|
||||||
<li><a class="reference internal" href="#serial-interface">Serial Interface</a></li>
|
<li><a class="reference internal" href="#serial-interface">Serial Interface</a></li>
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
<link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="Code Examples" href="examples.html" /><link rel="prev" title="Configuring Interfaces" href="interfaces.html" />
|
<link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="Code Examples" href="examples.html" /><link rel="prev" title="Configuring Interfaces" href="interfaces.html" />
|
||||||
|
|
||||||
<meta name="generator" content="sphinx-5.3.0, furo 2022.09.29.dev1"/>
|
<meta name="generator" content="sphinx-5.3.0, furo 2022.09.29.dev1"/>
|
||||||
<title>Building Networks - Reticulum Network Stack 0.9.3 beta documentation</title>
|
<title>Building Networks - Reticulum Network Stack 0.9.4 beta documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=189ec851f9bb375a2509b67be1f64f0cf212b702" />
|
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=189ec851f9bb375a2509b67be1f64f0cf212b702" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
|
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
|
||||||
|
@ -141,7 +141,7 @@
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-center">
|
<div class="header-center">
|
||||||
<a href="index.html"><div class="brand">Reticulum Network Stack 0.9.3 beta documentation</div></a>
|
<a href="index.html"><div class="brand">Reticulum Network Stack 0.9.4 beta documentation</div></a>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-right">
|
<div class="header-right">
|
||||||
<div class="theme-toggle-container theme-toggle-header">
|
<div class="theme-toggle-container theme-toggle-header">
|
||||||
|
@ -167,7 +167,7 @@
|
||||||
<img class="sidebar-logo" src="_static/rns_logo_512.png" alt="Logo"/>
|
<img class="sidebar-logo" src="_static/rns_logo_512.png" alt="Logo"/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<span class="sidebar-brand-text">Reticulum Network Stack 0.9.3 beta documentation</span>
|
<span class="sidebar-brand-text">Reticulum Network Stack 0.9.4 beta documentation</span>
|
||||||
|
|
||||||
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
||||||
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
|
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
|
||||||
|
|
Binary file not shown.
|
@ -6,7 +6,7 @@
|
||||||
<link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="prev" title="Support Reticulum" href="support.html" />
|
<link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="prev" title="Support Reticulum" href="support.html" />
|
||||||
|
|
||||||
<meta name="generator" content="sphinx-5.3.0, furo 2022.09.29.dev1"/>
|
<meta name="generator" content="sphinx-5.3.0, furo 2022.09.29.dev1"/>
|
||||||
<title>API Reference - Reticulum Network Stack 0.9.3 beta documentation</title>
|
<title>API Reference - Reticulum Network Stack 0.9.4 beta documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=189ec851f9bb375a2509b67be1f64f0cf212b702" />
|
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=189ec851f9bb375a2509b67be1f64f0cf212b702" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
|
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
|
||||||
|
@ -141,7 +141,7 @@
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-center">
|
<div class="header-center">
|
||||||
<a href="index.html"><div class="brand">Reticulum Network Stack 0.9.3 beta documentation</div></a>
|
<a href="index.html"><div class="brand">Reticulum Network Stack 0.9.4 beta documentation</div></a>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-right">
|
<div class="header-right">
|
||||||
<div class="theme-toggle-container theme-toggle-header">
|
<div class="theme-toggle-container theme-toggle-header">
|
||||||
|
@ -167,7 +167,7 @@
|
||||||
<img class="sidebar-logo" src="_static/rns_logo_512.png" alt="Logo"/>
|
<img class="sidebar-logo" src="_static/rns_logo_512.png" alt="Logo"/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<span class="sidebar-brand-text">Reticulum Network Stack 0.9.3 beta documentation</span>
|
<span class="sidebar-brand-text">Reticulum Network Stack 0.9.4 beta documentation</span>
|
||||||
|
|
||||||
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
||||||
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
|
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
|
||||||
|
@ -408,11 +408,19 @@ for addressable hashes and other purposes. Non-configurable.</p>
|
||||||
|
|
||||||
<dl class="py method">
|
<dl class="py method">
|
||||||
<dt class="sig sig-object py" id="RNS.Identity.recall">
|
<dt class="sig sig-object py" id="RNS.Identity.recall">
|
||||||
<em class="property"><span class="pre">static</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">recall</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">destination_hash</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#RNS.Identity.recall" title="Permalink to this definition">#</a></dt>
|
<em class="property"><span class="pre">static</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">recall</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">target_hash</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">from_identity_hash</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#RNS.Identity.recall" title="Permalink to this definition">#</a></dt>
|
||||||
<dd><p>Recall identity for a destination hash.</p>
|
<dd><p>Recall identity for a destination or identity hash. By default, this function
|
||||||
|
will return the identity associated with a given <em>destination</em> hash. As an
|
||||||
|
example, if you know the <code class="docutils literal notranslate"><span class="pre">lxmf.delivery</span></code> destination hash of an endpoint,
|
||||||
|
this function will return the associated underlying identity. You can also
|
||||||
|
search for an identity from a known <em>identity hash</em>, by setting the
|
||||||
|
<code class="docutils literal notranslate"><span class="pre">from_identity_hash</span></code> argument.</p>
|
||||||
<dl class="field-list simple">
|
<dl class="field-list simple">
|
||||||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||||||
<dd class="field-odd"><p><strong>destination_hash</strong> – Destination hash as <em>bytes</em>.</p>
|
<dd class="field-odd"><ul class="simple">
|
||||||
|
<li><p><strong>target_hash</strong> – Destination or identity hash as <em>bytes</em>.</p></li>
|
||||||
|
<li><p><strong>from_identity_hash</strong> – Whether to search based on identity hash instead of destination hash as <em>bool</em>.</p></li>
|
||||||
|
</ul>
|
||||||
</dd>
|
</dd>
|
||||||
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
||||||
<dd class="field-even"><p>An <a class="reference internal" href="#api-identity"><span class="std std-ref">RNS.Identity</span></a> instance that can be used to create an outgoing <a class="reference internal" href="#api-destination"><span class="std std-ref">RNS.Destination</span></a>, or <em>None</em> if the destination is unknown.</p>
|
<dd class="field-even"><p>An <a class="reference internal" href="#api-identity"><span class="std std-ref">RNS.Identity</span></a> instance that can be used to create an outgoing <a class="reference internal" href="#api-destination"><span class="std std-ref">RNS.Destination</span></a>, or <em>None</em> if the destination is unknown.</p>
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
<meta name="viewport" content="width=device-width,initial-scale=1"/>
|
<meta name="viewport" content="width=device-width,initial-scale=1"/>
|
||||||
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="#" />
|
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="#" />
|
||||||
|
|
||||||
<meta name="generator" content="sphinx-5.3.0, furo 2022.09.29.dev1"/><title>Search - Reticulum Network Stack 0.9.3 beta documentation</title><link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
<meta name="generator" content="sphinx-5.3.0, furo 2022.09.29.dev1"/><title>Search - Reticulum Network Stack 0.9.4 beta documentation</title><link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=189ec851f9bb375a2509b67be1f64f0cf212b702" />
|
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=189ec851f9bb375a2509b67be1f64f0cf212b702" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
|
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?digest=30d1aed668e5c3a91c3e3bf6a60b675221979f0e" />
|
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?digest=30d1aed668e5c3a91c3e3bf6a60b675221979f0e" />
|
||||||
|
@ -138,7 +138,7 @@
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-center">
|
<div class="header-center">
|
||||||
<a href="index.html"><div class="brand">Reticulum Network Stack 0.9.3 beta documentation</div></a>
|
<a href="index.html"><div class="brand">Reticulum Network Stack 0.9.4 beta documentation</div></a>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-right">
|
<div class="header-right">
|
||||||
<div class="theme-toggle-container theme-toggle-header">
|
<div class="theme-toggle-container theme-toggle-header">
|
||||||
|
@ -164,7 +164,7 @@
|
||||||
<img class="sidebar-logo" src="_static/rns_logo_512.png" alt="Logo"/>
|
<img class="sidebar-logo" src="_static/rns_logo_512.png" alt="Logo"/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<span class="sidebar-brand-text">Reticulum Network Stack 0.9.3 beta documentation</span>
|
<span class="sidebar-brand-text">Reticulum Network Stack 0.9.4 beta documentation</span>
|
||||||
|
|
||||||
</a><form class="sidebar-search-container" method="get" action="#" role="search">
|
</a><form class="sidebar-search-container" method="get" action="#" role="search">
|
||||||
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
|
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -6,7 +6,7 @@
|
||||||
<link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="API Reference" href="reference.html" /><link rel="prev" title="Code Examples" href="examples.html" />
|
<link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="API Reference" href="reference.html" /><link rel="prev" title="Code Examples" href="examples.html" />
|
||||||
|
|
||||||
<meta name="generator" content="sphinx-5.3.0, furo 2022.09.29.dev1"/>
|
<meta name="generator" content="sphinx-5.3.0, furo 2022.09.29.dev1"/>
|
||||||
<title>Support Reticulum - Reticulum Network Stack 0.9.3 beta documentation</title>
|
<title>Support Reticulum - Reticulum Network Stack 0.9.4 beta documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=189ec851f9bb375a2509b67be1f64f0cf212b702" />
|
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=189ec851f9bb375a2509b67be1f64f0cf212b702" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
|
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
|
||||||
|
@ -141,7 +141,7 @@
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-center">
|
<div class="header-center">
|
||||||
<a href="index.html"><div class="brand">Reticulum Network Stack 0.9.3 beta documentation</div></a>
|
<a href="index.html"><div class="brand">Reticulum Network Stack 0.9.4 beta documentation</div></a>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-right">
|
<div class="header-right">
|
||||||
<div class="theme-toggle-container theme-toggle-header">
|
<div class="theme-toggle-container theme-toggle-header">
|
||||||
|
@ -167,7 +167,7 @@
|
||||||
<img class="sidebar-logo" src="_static/rns_logo_512.png" alt="Logo"/>
|
<img class="sidebar-logo" src="_static/rns_logo_512.png" alt="Logo"/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<span class="sidebar-brand-text">Reticulum Network Stack 0.9.3 beta documentation</span>
|
<span class="sidebar-brand-text">Reticulum Network Stack 0.9.4 beta documentation</span>
|
||||||
|
|
||||||
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
||||||
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
|
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
<link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="Communications Hardware" href="hardware.html" /><link rel="prev" title="Using Reticulum on Your System" href="using.html" />
|
<link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="Communications Hardware" href="hardware.html" /><link rel="prev" title="Using Reticulum on Your System" href="using.html" />
|
||||||
|
|
||||||
<meta name="generator" content="sphinx-5.3.0, furo 2022.09.29.dev1"/>
|
<meta name="generator" content="sphinx-5.3.0, furo 2022.09.29.dev1"/>
|
||||||
<title>Understanding Reticulum - Reticulum Network Stack 0.9.3 beta documentation</title>
|
<title>Understanding Reticulum - Reticulum Network Stack 0.9.4 beta documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=189ec851f9bb375a2509b67be1f64f0cf212b702" />
|
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=189ec851f9bb375a2509b67be1f64f0cf212b702" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
|
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
|
||||||
|
@ -141,7 +141,7 @@
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-center">
|
<div class="header-center">
|
||||||
<a href="index.html"><div class="brand">Reticulum Network Stack 0.9.3 beta documentation</div></a>
|
<a href="index.html"><div class="brand">Reticulum Network Stack 0.9.4 beta documentation</div></a>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-right">
|
<div class="header-right">
|
||||||
<div class="theme-toggle-container theme-toggle-header">
|
<div class="theme-toggle-container theme-toggle-header">
|
||||||
|
@ -167,7 +167,7 @@
|
||||||
<img class="sidebar-logo" src="_static/rns_logo_512.png" alt="Logo"/>
|
<img class="sidebar-logo" src="_static/rns_logo_512.png" alt="Logo"/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<span class="sidebar-brand-text">Reticulum Network Stack 0.9.3 beta documentation</span>
|
<span class="sidebar-brand-text">Reticulum Network Stack 0.9.4 beta documentation</span>
|
||||||
|
|
||||||
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
||||||
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
|
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
<link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="Understanding Reticulum" href="understanding.html" /><link rel="prev" title="Getting Started Fast" href="gettingstartedfast.html" />
|
<link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="Understanding Reticulum" href="understanding.html" /><link rel="prev" title="Getting Started Fast" href="gettingstartedfast.html" />
|
||||||
|
|
||||||
<meta name="generator" content="sphinx-5.3.0, furo 2022.09.29.dev1"/>
|
<meta name="generator" content="sphinx-5.3.0, furo 2022.09.29.dev1"/>
|
||||||
<title>Using Reticulum on Your System - Reticulum Network Stack 0.9.3 beta documentation</title>
|
<title>Using Reticulum on Your System - Reticulum Network Stack 0.9.4 beta documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=189ec851f9bb375a2509b67be1f64f0cf212b702" />
|
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=189ec851f9bb375a2509b67be1f64f0cf212b702" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
|
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
|
||||||
|
@ -141,7 +141,7 @@
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-center">
|
<div class="header-center">
|
||||||
<a href="index.html"><div class="brand">Reticulum Network Stack 0.9.3 beta documentation</div></a>
|
<a href="index.html"><div class="brand">Reticulum Network Stack 0.9.4 beta documentation</div></a>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-right">
|
<div class="header-right">
|
||||||
<div class="theme-toggle-container theme-toggle-header">
|
<div class="theme-toggle-container theme-toggle-header">
|
||||||
|
@ -167,7 +167,7 @@
|
||||||
<img class="sidebar-logo" src="_static/rns_logo_512.png" alt="Logo"/>
|
<img class="sidebar-logo" src="_static/rns_logo_512.png" alt="Logo"/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<span class="sidebar-brand-text">Reticulum Network Stack 0.9.3 beta documentation</span>
|
<span class="sidebar-brand-text">Reticulum Network Stack 0.9.4 beta documentation</span>
|
||||||
|
|
||||||
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
||||||
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
|
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
<link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="Getting Started Fast" href="gettingstartedfast.html" /><link rel="prev" title="Reticulum Network Stack Manual" href="index.html" />
|
<link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="Getting Started Fast" href="gettingstartedfast.html" /><link rel="prev" title="Reticulum Network Stack Manual" href="index.html" />
|
||||||
|
|
||||||
<meta name="generator" content="sphinx-5.3.0, furo 2022.09.29.dev1"/>
|
<meta name="generator" content="sphinx-5.3.0, furo 2022.09.29.dev1"/>
|
||||||
<title>What is Reticulum? - Reticulum Network Stack 0.9.3 beta documentation</title>
|
<title>What is Reticulum? - Reticulum Network Stack 0.9.4 beta documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=189ec851f9bb375a2509b67be1f64f0cf212b702" />
|
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=189ec851f9bb375a2509b67be1f64f0cf212b702" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
|
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
|
||||||
|
@ -141,7 +141,7 @@
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-center">
|
<div class="header-center">
|
||||||
<a href="index.html"><div class="brand">Reticulum Network Stack 0.9.3 beta documentation</div></a>
|
<a href="index.html"><div class="brand">Reticulum Network Stack 0.9.4 beta documentation</div></a>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-right">
|
<div class="header-right">
|
||||||
<div class="theme-toggle-container theme-toggle-header">
|
<div class="theme-toggle-container theme-toggle-header">
|
||||||
|
@ -167,7 +167,7 @@
|
||||||
<img class="sidebar-logo" src="_static/rns_logo_512.png" alt="Logo"/>
|
<img class="sidebar-logo" src="_static/rns_logo_512.png" alt="Logo"/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<span class="sidebar-brand-text">Reticulum Network Stack 0.9.3 beta documentation</span>
|
<span class="sidebar-brand-text">Reticulum Network Stack 0.9.4 beta documentation</span>
|
||||||
|
|
||||||
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
||||||
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
|
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
|
||||||
|
|
|
@ -18,7 +18,7 @@ A number of other modules and projects are either part of, or used by Reticulum.
|
||||||
|
|
||||||
The protocol design and reference implementation for Reticulum was carried out between 2014 and 2022 by Mark Qvist.
|
The protocol design and reference implementation for Reticulum was carried out between 2014 and 2022 by Mark Qvist.
|
||||||
|
|
||||||
The [Python reference implementation of Reticulum](https://github.com/markqvist/reticulum) and this website is licensed under the [MIT License](license.html). Please <a href="donate.html">donate</a> to support the continued development.
|
The [Python reference implementation of Reticulum](https://github.com/markqvist/reticulum) and this website is licensed under the [Reticulum License](license.html). Please <a href="donate.html">donate</a> to support the continued development.
|
||||||
|
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,7 @@ Eine Reihe anderer Module und Projekte sind entweder Teil von Reticulum oder wer
|
||||||
|
|
||||||
Das Protokolldesign und die Referenzimplementierung für Reticulum wurden zwischen 2014 und 2022 von Mark Qvist durchgeführt.
|
Das Protokolldesign und die Referenzimplementierung für Reticulum wurden zwischen 2014 und 2022 von Mark Qvist durchgeführt.
|
||||||
|
|
||||||
Die [Python Referenzimplementierung von Reticulum](https://github.com/markqvist/reticulum) und diese Website ist lizenziert unter der [MIT License](license.html). Bitte <a href="donate_de.html">Spenden</a> sie zur Unterstützung der weiteren Entwicklung.
|
Die [Python Referenzimplementierung von Reticulum](https://github.com/markqvist/reticulum) und diese Website ist lizenziert unter der [Reticulum License](license.html). Bitte <a href="donate_de.html">Spenden</a> sie zur Unterstützung der weiteren Entwicklung.
|
||||||
|
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,7 @@ Otros módulos y proyectos forman parte o son utilizados por Reticulum. Nuestro
|
||||||
|
|
||||||
El diseño del protocolo y la implementación de referencia para Reticulum se llevaron a cabo entre 2014 y 2024 por Mark Qvist.
|
El diseño del protocolo y la implementación de referencia para Reticulum se llevaron a cabo entre 2014 y 2024 por Mark Qvist.
|
||||||
|
|
||||||
La [referencia de la implementación de Reticulum en Python](https://github.com/markqvist/reticulum) y este sitio están licenciados bajo la [Licencia MIT](license_es.html). Por favor, <a href="donate_es.html">dona</a> para apoyar el desarrollo.
|
La [referencia de la implementación de Reticulum en Python](https://github.com/markqvist/reticulum) y este sitio están licenciados bajo la [Licencia Reticulum](license_es.html). Por favor, <a href="donate_es.html">dona</a> para apoyar el desarrollo.
|
||||||
|
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,7 @@ Reticulumには他にも多くのモジュールやプロジェクトが含ま
|
||||||
|
|
||||||
Reticulumのプロトコルデザインおよびリファレンス実装は、2014年から2022年までMark Qvistによって実施されました。
|
Reticulumのプロトコルデザインおよびリファレンス実装は、2014年から2022年までMark Qvistによって実施されました。
|
||||||
|
|
||||||
[ReticulumのPythonリファレンス実装](https://github.com/markqvist/reticulum)およびこのウェブサイトは、[MITライセンス](license.html)の下でライセンスされています。継続的な開発をサポートするために、<a href="donate_jp.html">寄付</a>をお願いします。
|
[ReticulumのPythonリファレンス実装](https://github.com/markqvist/reticulum)およびこのウェブサイトは、[Reticulumライセンス](license.html)の下でライセンスされています。継続的な開発をサポートするために、<a href="donate_jp.html">寄付</a>をお願いします。
|
||||||
|
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,7 @@ Een aantal andere modules en projecten maken deel uit van of worden gebruikt doo
|
||||||
|
|
||||||
Het protocolontwerp en de referentie-implementatie voor Reticulum werden tussen 2014 en 2022 uitgevoerd door Mark Qvist.
|
Het protocolontwerp en de referentie-implementatie voor Reticulum werden tussen 2014 en 2022 uitgevoerd door Mark Qvist.
|
||||||
|
|
||||||
De [Python-referentie-implementatie van Reticulum](https://github.com/markqvist/reticulum) en deze website zijn gelicentieerd onder de [MIT License](license.html). <a href="donate_nl.html">Doneer</a> om de voortdurende ontwikkeling te ondersteunen.
|
De [Python-referentie-implementatie van Reticulum](https://github.com/markqvist/reticulum) en deze website zijn gelicentieerd onder de [Reticulum License](license.html). <a href="donate_nl.html">Doneer</a> om de voortdurende ontwikkeling te ondersteunen.
|
||||||
|
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,7 @@ Wiele innych modułów i projektów jest częścią lub jest wykorzystywanych pr
|
||||||
|
|
||||||
Projekt protokołu i wdrożenie referencyjne dla Reticulum zostało zrealizowane w latach 2014-2022 przez Marka Qvista.
|
Projekt protokołu i wdrożenie referencyjne dla Reticulum zostało zrealizowane w latach 2014-2022 przez Marka Qvista.
|
||||||
|
|
||||||
[Implementacja referencji dla języka Python](https://github.com/markqvist/reticulum) oraz ta strona są opubliowanie na [Licencji MIT](license.html). Proszę przekaż <a href="donate_pl.html">darowiznę</a>, żeby wesprzeć dalszy rozwój projektu.
|
[Implementacja referencji dla języka Python](https://github.com/markqvist/reticulum) oraz ta strona są opubliowanie na [Licencji Reticulum](license.html). Proszę przekaż <a href="donate_pl.html">darowiznę</a>, żeby wesprzeć dalszy rozwój projektu.
|
||||||
|
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,7 @@ Uma lista de outros modelos e projetos são parte disso ou utilizado no Reticulu
|
||||||
|
|
||||||
O design do protocolo e implementação de referência foram desenvolvidos entre 2014 e 2022 por Mark Qvist.
|
O design do protocolo e implementação de referência foram desenvolvidos entre 2014 e 2022 por Mark Qvist.
|
||||||
|
|
||||||
A [implementação Python referencial do Reticulum](https://github.com/markqvist/reticulum) e seu site utilizam a [licença MIT](https://reticulum.network/license.html). Por favor considere uma <a href="donate.html">doação</a> para ajudar a continuar o projeto.
|
A [implementação Python referencial do Reticulum](https://github.com/markqvist/reticulum) e seu site utilizam a [licença Reticulum](https://reticulum.network/license.html). Por favor considere uma <a href="donate.html">doação</a> para ajudar a continuar o projeto.
|
||||||
|
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,7 @@ Reticulum'a ait birçok diğer modül ve proje ya Reticulum'un bir parçasıdır
|
||||||
|
|
||||||
Reticulum'un protokol tasarımı ve referans uygulaması, 2014 ile 2022 yılları arasında Mark Qvist tarafından gerçekleştirildi.
|
Reticulum'un protokol tasarımı ve referans uygulaması, 2014 ile 2022 yılları arasında Mark Qvist tarafından gerçekleştirildi.
|
||||||
|
|
||||||
[Reticulum'un Python referans uygulaması](https://github.com/markqvist/reticulum) ve bu web sitesi [MIT Lisansı](license.html) altında lisanslanmıştır. Lütfen devam eden geliştirmeyi desteklemek için <a href="donate_tr.html">bağış</a> yapın.
|
[Reticulum'un Python referans uygulaması](https://github.com/markqvist/reticulum) ve bu web sitesi [Reticulum Lisansı](license.html) altında lisanslanmıştır. Lütfen devam eden geliştirmeyi desteklemek için <a href="donate_tr.html">bağış</a> yapın.
|
||||||
|
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,7 @@ Reticulum може існувати тільки завдяки великій
|
||||||
|
|
||||||
Проєктування протоколу та його референс-імплементація для Reticulum здійснювались з 2014 по 2022 рік Маркусом Квістом.
|
Проєктування протоколу та його референс-імплементація для Reticulum здійснювались з 2014 по 2022 рік Маркусом Квістом.
|
||||||
|
|
||||||
[Python референс-імплементація Reticulum](https://github.com/markqvist/reticulum) та цей вебсайт ліцензовані за умовами [MIT License](license.html). Будь ласка, <a href="donate.html">пожертвуйте</a>, щоб підтримати подальший розвиток.
|
[Python референс-імплементація Reticulum](https://github.com/markqvist/reticulum) та цей вебсайт ліцензовані за умовами [Reticulum License](license.html). Будь ласка, <a href="donate.html">пожертвуйте</a>, щоб підтримати подальший розвиток.
|
||||||
|
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,7 @@ Reticulum 用到了一系列模块与项目。在这里,对以下项目的作
|
||||||
|
|
||||||
Reticulum 的协议设计与参考实现是由 Mark Qvist 于 2014-2022 进行的。
|
Reticulum 的协议设计与参考实现是由 Mark Qvist 于 2014-2022 进行的。
|
||||||
|
|
||||||
Reticulum 的 [Python 参考实现](https://github.com/markqvist/reticulum) 以及这个网站均为 [MIT 授权](license.html)。若想支持 Reticulum 的开发,欢迎<a href="donate_zh-cn.html">捐赠</a>。
|
Reticulum 的 [Python 参考实现](https://github.com/markqvist/reticulum) 以及这个网站均为 [Reticulum 授权](license.html)。若想支持 Reticulum 的开发,欢迎<a href="donate_zh-cn.html">捐赠</a>。
|
||||||
|
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue