Skip to content

Commit 1103784

Browse files
committed
Updated documentation
1 parent d2feb8b commit 1103784

32 files changed

+13405
-245
lines changed

Changelog.md

+22
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,25 @@
1+
### 2024-05-05: RNS β 0.7.4
2+
3+
This maintenance release fixes a number of bugs, improves path requests and responses, and adds several useful features and capabilities. Thanks to @cobraPA, @jsculthess, @thiaguetz and @nothingbutlucas who contributed to this release!
4+
5+
**Changes**
6+
- Added support for flashing and autoinstalling Heltec V3 boards to `rnodeconf`
7+
- Added custom EEPROM bootstrapping capabilities to `rnodeconf`
8+
- Added ability to load identities from file to Echo and Link examples
9+
- Added ability to specify multicast address type in AutoInterface configuration
10+
- Added link getter to resource advertisement class
11+
- Improved path response logic and timing
12+
- Improved path request timing
13+
- Fixed a bug in Link Request proof delivery on unknown hop count paths
14+
- Fixed broken link packet routing in topologies where transport packets leak to non-intended instances in the link chain
15+
- Fixed typos in documentation
16+
17+
**Release Hashes**
18+
```
19+
20+
21+
```
22+
123
### 2024-03-09: RNS β 0.7.3
224

325
This release adds the ability to specify custom firmware URLs for flashing boards with `rnodeconf`. Thanks to @attermann who contributed to this release!

docs/Reticulum Manual.epub

677 Bytes
Binary file not shown.

docs/Reticulum Manual.pdf

-6.25 KB
Binary file not shown.

docs/manual/.buildinfo

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
# Sphinx build info version 1
22
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
3-
config: ca464cd1c1372d6c6fcf9792e89c3a3f
3+
config: 541171817b95d649201365804faf729c
44
tags: 645f666f9bcd5a90fca523b33c5a78b7

docs/manual/_sources/gettingstartedfast.rst.txt

+11-11
Original file line numberDiff line numberDiff line change
@@ -180,29 +180,29 @@ and :ref:`Interfaces<interfaces-main>` chapters of this manual.
180180
Connecting Reticulum Instances Over the Internet
181181
================================================
182182
Reticulum currently offers two interfaces suitable for connecting instances over the Internet: :ref:`TCP<interfaces-tcps>`
183-
and :ref:`I2P<interfaces-i2p>`. Each interface offers a different set of features, and Reticulum
184-
users should carefully choose the interface which best suites their needs.
183+
and :ref:`I2P<interfaces-i2p>`. Each interface offers a different set of features, and Reticulum
184+
users should carefully choose the interface which best suites their needs.
185185

186186
The ``TCPServerInterface`` allows users to host an instance accessible over TCP/IP. This
187187
method is generally faster, lower latency, and more energy efficient than using ``I2PInterface``,
188188
however it also leaks more data about the server host.
189189

190190
TCP connections reveal the IP address of both your instance and the server to anyone who can
191-
inspect the connection. Someone could use this information to determine your location or identity. Adversaries
191+
inspect the connection. Someone could use this information to determine your location or identity. Adversaries
192192
inspecting your packets may be able to record packet metadata like time of transmission and packet size.
193193
Even though Reticulum encrypts traffic, TCP does not, so an adversary may be able to use
194194
packet inspection to learn that a system is running Reticulum, and what other IP addresses connect to it.
195195
Hosting a publicly reachable instance over TCP also requires a publicly reachable IP address,
196196
which most Internet connections don't offer anymore.
197197

198-
The ``I2PInterface`` routes messages through the `Invisible Internet Protocol
198+
The ``I2PInterface`` routes messages through the `Invisible Internet Protocol
199199
(I2P) <https://geti2p.net/en/>`_. To use this interface, users must also run an I2P daemon in
200-
parallel to ``rnsd``. For always-on I2P nodes it is recommended to use `i2pd <https://i2pd.website/>`_.
200+
parallel to ``rnsd``. For always-on I2P nodes it is recommended to use `i2pd <https://i2pd.website/>`_.
201201

202-
By default, I2P will encrypt and mix all traffic sent over the Internet, and
203-
hide both the sender and receiver Reticulum instance IP addresses. Running an I2P node
202+
By default, I2P will encrypt and mix all traffic sent over the Internet, and
203+
hide both the sender and receiver Reticulum instance IP addresses. Running an I2P node
204204
will also relay other I2P user's encrypted packets, which will use extra
205-
bandwidth and compute power, but also makes timing attacks and other forms of
205+
bandwidth and compute power, but also makes timing attacks and other forms of
206206
deep-packet-inspection much more difficult.
207207

208208
I2P also allows users to host globally available Reticulum instances from non-public IP's and behind firewalls and NAT.
@@ -415,7 +415,7 @@ locally on your device using the following command:
415415
416416
It is also possible to include Reticulum in apps compiled and distributed as
417417
Android APKs. A detailed tutorial and example source code will be included
418-
here at a later point. Until then you can use the `Sideband source code <https://github.com/markqvist/sideband>`_ as an example and startig point.
418+
here at a later point. Until then you can use the `Sideband source code <https://github.com/markqvist/sideband>`_ as an example and starting point.
419419

420420

421421
ARM64
@@ -455,7 +455,7 @@ for including and using Reticulum in your own scripts and programs.
455455

456456
.. code::
457457
458-
# Install pipx
458+
# Install pipx
459459
sudo apt install pipx
460460
461461
# Make installed programs available on the command line
@@ -489,7 +489,7 @@ for including and using Reticulum in your own scripts and programs.
489489

490490
.. code::
491491
492-
# Install pipx
492+
# Install pipx
493493
sudo apt install pipx
494494
495495
# Make installed programs available on the command line

docs/manual/_sources/interfaces.rst.txt

+14-3
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,20 @@ system, which should be enabled by default in almost all OSes.
3333

3434
.. code::
3535
36-
# This example demonstrates a TCP server interface.
37-
# It will listen for incoming connections on the
38-
# specified IP address and port number.
36+
# This example demonstrates a bare-minimum setup
37+
# of an Auto Interface. It will allow communica-
38+
# tion with all other reachable devices on all
39+
# usable physical ethernet-based devices that
40+
# are available on the system.
41+
42+
[[Default Interface]]
43+
type = AutoInterface
44+
interface_enabled = True
45+
46+
# This example demonstrates an more specifically
47+
# configured Auto Interface, that only uses spe-
48+
# cific physical interfaces, and has a number of
49+
# other configuration options set.
3950
4051
[[Default Interface]]
4152
type = AutoInterface
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
/*
2+
* _sphinx_javascript_frameworks_compat.js
3+
* ~~~~~~~~~~
4+
*
5+
* Compatability shim for jQuery and underscores.js.
6+
*
7+
* WILL BE REMOVED IN Sphinx 6.0
8+
* xref RemovedInSphinx60Warning
9+
*
10+
*/
11+
12+
/**
13+
* select a different prefix for underscore
14+
*/
15+
$u = _.noConflict();
16+
17+
18+
/**
19+
* small helper function to urldecode strings
20+
*
21+
* See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent#Decoding_query_parameters_from_a_URL
22+
*/
23+
jQuery.urldecode = function(x) {
24+
if (!x) {
25+
return x
26+
}
27+
return decodeURIComponent(x.replace(/\+/g, ' '));
28+
};
29+
30+
/**
31+
* small helper function to urlencode strings
32+
*/
33+
jQuery.urlencode = encodeURIComponent;
34+
35+
/**
36+
* This function returns the parsed url parameters of the
37+
* current request. Multiple values per key are supported,
38+
* it will always return arrays of strings for the value parts.
39+
*/
40+
jQuery.getQueryParameters = function(s) {
41+
if (typeof s === 'undefined')
42+
s = document.location.search;
43+
var parts = s.substr(s.indexOf('?') + 1).split('&');
44+
var result = {};
45+
for (var i = 0; i < parts.length; i++) {
46+
var tmp = parts[i].split('=', 2);
47+
var key = jQuery.urldecode(tmp[0]);
48+
var value = jQuery.urldecode(tmp[1]);
49+
if (key in result)
50+
result[key].push(value);
51+
else
52+
result[key] = [value];
53+
}
54+
return result;
55+
};
56+
57+
/**
58+
* highlight a given string on a jquery object by wrapping it in
59+
* span elements with the given class name.
60+
*/
61+
jQuery.fn.highlightText = function(text, className) {
62+
function highlight(node, addItems) {
63+
if (node.nodeType === 3) {
64+
var val = node.nodeValue;
65+
var pos = val.toLowerCase().indexOf(text);
66+
if (pos >= 0 &&
67+
!jQuery(node.parentNode).hasClass(className) &&
68+
!jQuery(node.parentNode).hasClass("nohighlight")) {
69+
var span;
70+
var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg");
71+
if (isInSVG) {
72+
span = document.createElementNS("http://www.w3.org/2000/svg", "tspan");
73+
} else {
74+
span = document.createElement("span");
75+
span.className = className;
76+
}
77+
span.appendChild(document.createTextNode(val.substr(pos, text.length)));
78+
node.parentNode.insertBefore(span, node.parentNode.insertBefore(
79+
document.createTextNode(val.substr(pos + text.length)),
80+
node.nextSibling));
81+
node.nodeValue = val.substr(0, pos);
82+
if (isInSVG) {
83+
var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect");
84+
var bbox = node.parentElement.getBBox();
85+
rect.x.baseVal.value = bbox.x;
86+
rect.y.baseVal.value = bbox.y;
87+
rect.width.baseVal.value = bbox.width;
88+
rect.height.baseVal.value = bbox.height;
89+
rect.setAttribute('class', className);
90+
addItems.push({
91+
"parent": node.parentNode,
92+
"target": rect});
93+
}
94+
}
95+
}
96+
else if (!jQuery(node).is("button, select, textarea")) {
97+
jQuery.each(node.childNodes, function() {
98+
highlight(this, addItems);
99+
});
100+
}
101+
}
102+
var addItems = [];
103+
var result = this.each(function() {
104+
highlight(this, addItems);
105+
});
106+
for (var i = 0; i < addItems.length; ++i) {
107+
jQuery(addItems[i].parent).before(addItems[i].target);
108+
}
109+
return result;
110+
};
111+
112+
/*
113+
* backward compatibility for jQuery.browser
114+
* This will be supported until firefox bug is fixed.
115+
*/
116+
if (!jQuery.browser) {
117+
jQuery.uaMatch = function(ua) {
118+
ua = ua.toLowerCase();
119+
120+
var match = /(chrome)[ \/]([\w.]+)/.exec(ua) ||
121+
/(webkit)[ \/]([\w.]+)/.exec(ua) ||
122+
/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) ||
123+
/(msie) ([\w.]+)/.exec(ua) ||
124+
ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) ||
125+
[];
126+
127+
return {
128+
browser: match[ 1 ] || "",
129+
version: match[ 2 ] || "0"
130+
};
131+
};
132+
jQuery.browser = {};
133+
jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true;
134+
}

docs/manual/_static/basic.css

+1-22
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
*
55
* Sphinx stylesheet -- basic theme.
66
*
7-
* :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS.
7+
* :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
88
* :license: BSD, see LICENSE for details.
99
*
1010
*/
@@ -324,15 +324,13 @@ aside.sidebar {
324324
p.sidebar-title {
325325
font-weight: bold;
326326
}
327-
328327
nav.contents,
329328
aside.topic,
330329
div.admonition, div.topic, blockquote {
331330
clear: left;
332331
}
333332

334333
/* -- topics ---------------------------------------------------------------- */
335-
336334
nav.contents,
337335
aside.topic,
338336
div.topic {
@@ -608,7 +606,6 @@ ol.simple p,
608606
ul.simple p {
609607
margin-bottom: 0;
610608
}
611-
612609
aside.footnote > span,
613610
div.citation > span {
614611
float: left;
@@ -670,16 +667,6 @@ dd {
670667
margin-left: 30px;
671668
}
672669

673-
.sig dd {
674-
margin-top: 0px;
675-
margin-bottom: 0px;
676-
}
677-
678-
.sig dl {
679-
margin-top: 0px;
680-
margin-bottom: 0px;
681-
}
682-
683670
dl > dd:last-child,
684671
dl > dd:last-child > :last-child {
685672
margin-bottom: 0;
@@ -748,14 +735,6 @@ abbr, acronym {
748735
cursor: help;
749736
}
750737

751-
.translated {
752-
background-color: rgba(207, 255, 207, 0.2)
753-
}
754-
755-
.untranslated {
756-
background-color: rgba(255, 207, 207, 0.2)
757-
}
758-
759738
/* -- code displays --------------------------------------------------------- */
760739

761740
pre {

docs/manual/_static/doctools.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
*
55
* Base JavaScript utilities for all Sphinx HTML documentation.
66
*
7-
* :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS.
7+
* :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
88
* :license: BSD, see LICENSE for details.
99
*
1010
*/

docs/manual/_static/documentation_options.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
var DOCUMENTATION_OPTIONS = {
22
URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'),
3-
VERSION: '0.7.3 beta',
3+
VERSION: '0.7.4 beta',
44
LANGUAGE: 'en',
55
COLLAPSE_INDEX: false,
66
BUILDER: 'html',

0 commit comments

Comments
 (0)