1 00:00:00,120 --> 00:00:03,080 this is Sideband and this is NomadNet I 2 00:00:03,080 --> 00:00:05,000 can send a message from Sideband to 3 00:00:05,000 --> 00:00:08,200 NomadNet like this and I can send a 4 00:00:08,200 --> 00:00:11,639 message from NomadNet to Sideband like 5 00:00:11,639 --> 00:00:14,440 this you can even view Pages like this 6 00:00:14,440 --> 00:00:15,520 personal 7 00:00:15,520 --> 00:00:17,600 one or this 8 00:00:17,600 --> 00:00:20,240 forum offline communication networks are 9 00:00:20,240 --> 00:00:22,279 often hard to establish and previously 10 00:00:22,279 --> 00:00:24,080 if you wanted to set up anything larger 11 00:00:24,080 --> 00:00:26,080 than a smallscale community mesh Network 12 00:00:26,080 --> 00:00:28,039 you used to be basically out of luck let 13 00:00:28,039 --> 00:00:29,640 alone if you wanted to do so on any kind 14 00:00:29,640 --> 00:00:30,519 of budget 15 00:00:30,519 --> 00:00:32,200 luckily there's a fantastic project that 16 00:00:32,200 --> 00:00:34,360 does exactly that it's called Reticulum 17 00:00:34,360 --> 00:00:36,079 and it's the most elegant solution for 18 00:00:36,079 --> 00:00:38,440 True global scale p-to-p Mesh networking 19 00:00:38,440 --> 00:00:40,440 I've seen Reticulum has potential to 20 00:00:40,440 --> 00:00:42,280 become a truly offline replacement for 21 00:00:42,280 --> 00:00:43,879 the Internet working over almost every 22 00:00:43,879 --> 00:00:45,719 networking medium including LoRa and 23 00:00:45,719 --> 00:00:47,760 packet radio it's still in beted 24 00:00:47,760 --> 00:00:49,199 development but already Works 25 00:00:49,199 --> 00:00:51,199 astonishingly well it's a full Network 26 00:00:51,199 --> 00:00:52,920 Stack Down to the physical layer 27 00:00:52,920 --> 00:00:54,600 everything is end to-end encrypted per 28 00:00:54,600 --> 00:00:56,559 packet incredibly efficient and 29 00:00:56,559 --> 00:00:58,519 ingeniously simple it enables 30 00:00:58,519 --> 00:01:01,199 self-organizing unman networks scaling 31 00:01:01,199 --> 00:01:03,559 from a small community to a global scale 32 00:01:03,559 --> 00:01:05,920 at relatively low cost Reticulum is a 33 00:01:05,920 --> 00:01:07,799 network stack that can be used to build 34 00:01:07,799 --> 00:01:09,600 any number of networks that can freely 35 00:01:09,600 --> 00:01:11,439 interconnect and cannot be killed 36 00:01:11,439 --> 00:01:13,680 surveilled or censored Reticulum does 37 00:01:13,680 --> 00:01:15,400 not require you to store other people's 38 00:01:15,400 --> 00:01:17,360 data in some kind of distributed file 39 00:01:17,360 --> 00:01:20,119 system or data store it is exclusively a 40 00:01:20,119 --> 00:01:22,320 network stack there is no Reliance on 41 00:01:22,320 --> 00:01:24,520 any kind of cryptocurrency or blockchain 42 00:01:24,520 --> 00:01:26,880 and is incredibly lightweight supporting 43 00:01:26,880 --> 00:01:28,880 very high latency and extremely low 44 00:01:28,880 --> 00:01:31,240 bandwidth mediums as well as much faster 45 00:01:31,240 --> 00:01:33,200 connections before I show you how to get 46 00:01:33,200 --> 00:01:35,200 set up we must first answer an important 47 00:01:35,200 --> 00:01:37,759 question exactly how does Reticulum work 48 00:01:37,759 --> 00:01:39,880 and what makes it so special let's start 49 00:01:39,880 --> 00:01:42,439 with establishing some basic terminology 50 00:01:42,439 --> 00:01:44,280 destinations replace the concept of 51 00:01:44,280 --> 00:01:46,520 endpoints that IP and similar protocols 52 00:01:46,520 --> 00:01:48,520 use all you need to know right now is 53 00:01:48,520 --> 00:01:50,399 that Reticulum destinations allow 54 00:01:50,399 --> 00:01:52,119 programs to receive data and are 55 00:01:52,119 --> 00:01:53,960 essentially arbitrary when compared to 56 00:01:53,960 --> 00:01:56,280 IP addresses a single physical device 57 00:01:56,280 --> 00:01:58,759 can host multiple different destinations 58 00:01:58,759 --> 00:02:00,680 there are a few types of destination 59 00:02:00,680 --> 00:02:02,799 single destinations allow for basic 60 00:02:02,799 --> 00:02:04,840 packet transmission using asymmetric 61 00:02:04,840 --> 00:02:06,960 public key encryption link destinations 62 00:02:06,960 --> 00:02:08,800 are abstract channels to single 63 00:02:08,800 --> 00:02:10,720 destinations formed by establishing 64 00:02:10,720 --> 00:02:12,879 faster symmetric encryption and a set 65 00:02:12,879 --> 00:02:14,720 path for more efficient data transfer 66 00:02:14,720 --> 00:02:16,800 plane destinations are for broadcast 67 00:02:16,800 --> 00:02:18,640 traffic that needs to be public and not 68 00:02:18,640 --> 00:02:20,480 encrypted plane data is never 69 00:02:20,480 --> 00:02:22,280 transmitted over multiple hops in the 70 00:02:22,280 --> 00:02:23,879 network because routing requires 71 00:02:23,879 --> 00:02:25,879 encryption to verify paths group 72 00:02:25,879 --> 00:02:27,760 destinations are symmetrically encrypted 73 00:02:27,760 --> 00:02:29,560 packets to multiple destinations which 74 00:02:29,560 --> 00:02:31,440 are not yet transported over multiple 75 00:02:31,440 --> 00:02:33,280 hops though this is planned future 76 00:02:33,280 --> 00:02:35,440 functionality destinations do not know 77 00:02:35,440 --> 00:02:36,920 anything about the network beyond their 78 00:02:36,920 --> 00:02:38,680 immediate neighbors they can move around 79 00:02:38,680 --> 00:02:40,519 a network at will and can even move to 80 00:02:40,519 --> 00:02:42,120 completely separate networks and still 81 00:02:42,120 --> 00:02:44,319 become reachable to become reachable a 82 00:02:44,319 --> 00:02:46,000 destination simply needs to send an 83 00:02:46,000 --> 00:02:48,319 announce to any network it is a part of 84 00:02:48,319 --> 00:02:50,159 announces are special signed packets 85 00:02:50,159 --> 00:02:52,040 that contain a destination's address 86 00:02:52,040 --> 00:02:53,879 public key and some other information 87 00:02:53,879 --> 00:02:55,239 needed to establish endtoend 88 00:02:55,239 --> 00:02:57,599 connectivity with said destination they 89 00:02:57,599 --> 00:02:59,200 are propagated throughout a network by 90 00:02:59,200 --> 00:03:01,200 transport nodes and allow Reticulum to 91 00:03:01,200 --> 00:03:03,159 form multihop connections between 92 00:03:03,159 --> 00:03:05,280 destinations a transport node is a 93 00:03:05,280 --> 00:03:07,000 destination that is set throughout data 94 00:03:07,000 --> 00:03:09,120 via a single configuration option not 95 00:03:09,120 --> 00:03:10,959 all destinations Route traffic because 96 00:03:10,959 --> 00:03:12,720 this requires exponentially increasing 97 00:03:12,720 --> 00:03:15,120 bandwidth and decreased reliability in 98 00:03:15,120 --> 00:03:16,959 larger networks just to support 99 00:03:16,959 --> 00:03:18,599 transport nodes that will never route 100 00:03:18,599 --> 00:03:20,879 anything Reticulum can technically work 101 00:03:20,879 --> 00:03:22,440 without transport nodes but only 102 00:03:22,440 --> 00:03:24,120 directly connected destinations will be 103 00:03:24,120 --> 00:03:26,480 able to communicate without them a pier 104 00:03:26,480 --> 00:03:28,439 is just a standard destination that does 105 00:03:28,439 --> 00:03:30,640 not route any data only sends and 106 00:03:30,640 --> 00:03:32,439 receives transport nodes can Route 107 00:03:32,439 --> 00:03:34,360 traffic but are otherwise identical to 108 00:03:34,360 --> 00:03:36,519 normal peers an interface is a 109 00:03:36,519 --> 00:03:38,439 connection over any medium between two 110 00:03:38,439 --> 00:03:40,680 or more destinations and finally 111 00:03:40,680 --> 00:03:42,439 identities represent any kind of 112 00:03:42,439 --> 00:03:45,080 verifiable identity of a person machine 113 00:03:45,080 --> 00:03:47,959 control interface or sensor identities 114 00:03:47,959 --> 00:03:50,159 are used to create multiple destinations 115 00:03:50,159 --> 00:03:52,159 cryptographically linked to that 116 00:03:52,159 --> 00:03:54,920 identity transport nodes forward data to 117 00:03:54,920 --> 00:03:56,720 a destination through route determined 118 00:03:56,720 --> 00:03:58,560 by announces which essentially tell 119 00:03:58,560 --> 00:04:00,480 every transport node the most efficient 120 00:04:00,480 --> 00:04:02,840 next hop for data sent to a specific 121 00:04:02,840 --> 00:04:04,920 destination destinations do not store 122 00:04:04,920 --> 00:04:06,879 any kind of map of the network as that 123 00:04:06,879 --> 00:04:08,560 would be incredibly inefficient when an 124 00:04:08,560 --> 00:04:10,480 announce for a destination is sent by a 125 00:04:10,480 --> 00:04:12,239 peer it will be automatically recorded 126 00:04:12,239 --> 00:04:14,360 and forwarded by any transport node 127 00:04:14,360 --> 00:04:16,280 subject to some specific rules defined 128 00:04:16,280 --> 00:04:18,040 in the Reticulum manual that I will 129 00:04:18,040 --> 00:04:20,320 simplify if the exact announce has not 130 00:04:20,320 --> 00:04:22,280 been previously received the transport 131 00:04:22,280 --> 00:04:24,040 node the announce was received from and 132 00:04:24,040 --> 00:04:25,919 how many hops it has already taken is 133 00:04:25,919 --> 00:04:27,880 recorded then the announce is queued to 134 00:04:27,880 --> 00:04:30,080 be retransmitted on all interface fa es 135 00:04:30,080 --> 00:04:31,560 when certain requirements are met 136 00:04:31,560 --> 00:04:33,560 interfaces prioritize setting announces 137 00:04:33,560 --> 00:04:35,360 for destinations that are closest in 138 00:04:35,360 --> 00:04:37,160 terms of hops thus prioritizing 139 00:04:37,160 --> 00:04:39,400 reachability and connectivity of local 140 00:04:39,400 --> 00:04:41,520 destination the keys and path to a 141 00:04:41,520 --> 00:04:43,199 destination can be requested from any 142 00:04:43,199 --> 00:04:44,600 connected transport node if a 143 00:04:44,600 --> 00:04:46,360 destination does not already have an 144 00:04:46,360 --> 00:04:47,960 announce from the destination it is 145 00:04:47,960 --> 00:04:50,039 trying to reach there are more specifics 146 00:04:50,039 --> 00:04:51,400 about the routing connection and 147 00:04:51,400 --> 00:04:53,320 encryption processes in the Reticulum 148 00:04:53,320 --> 00:04:55,039 manual but this should help you form a 149 00:04:55,039 --> 00:04:56,919 reasonable understanding of the concepts 150 00:04:56,919 --> 00:04:58,680 behind Reticulums incredibly efficient 151 00:04:58,680 --> 00:05:00,600 routing strategy that allows transport 152 00:05:00,600 --> 00:05:02,639 nodes to directly pass data to a 153 00:05:02,639 --> 00:05:04,800 destination without needing to know the 154 00:05:04,800 --> 00:05:07,479 Network's topology that being said you 155 00:05:07,479 --> 00:05:08,600 might still want to know what 156 00:05:08,600 --> 00:05:10,840 connections Reticulum can work over the 157 00:05:10,840 --> 00:05:12,520 answer is basically anything though 158 00:05:12,520 --> 00:05:14,240 there are some limits the reference 159 00:05:14,240 --> 00:05:16,160 implementation of Reticulum currently 160 00:05:16,160 --> 00:05:19,000 supports connections over ethernet Wi-Fi 161 00:05:19,000 --> 00:05:21,000 kiss mode packet radio or serial 162 00:05:21,000 --> 00:05:25,319 connections as well as TCP UDP and i2p 163 00:05:25,319 --> 00:05:27,759 Lura is also supported via rodde a 164 00:05:27,759 --> 00:05:29,360 digital radio transceiver program 165 00:05:29,360 --> 00:05:30,400 designed design for things like 166 00:05:30,400 --> 00:05:32,240 Reticulum supporting many common low 167 00:05:32,240 --> 00:05:33,960 reports of course that doesn't mean 168 00:05:33,960 --> 00:05:36,120 Reticulum only supports these interfaces 169 00:05:36,120 --> 00:05:38,240 currently any connections faster than 5 170 00:05:38,240 --> 00:05:40,280 bits per second that can send packets 171 00:05:40,280 --> 00:05:42,639 500 bytes or larger are supported so 172 00:05:42,639 --> 00:05:44,120 that means basically anything you can 173 00:05:44,120 --> 00:05:45,759 imagine as long as the work has put in 174 00:05:45,759 --> 00:05:47,520 to support it there is even a very 175 00:05:47,520 --> 00:05:49,800 easily utilized generic pipe interface 176 00:05:49,800 --> 00:05:51,840 that can use any external program as an 177 00:05:51,840 --> 00:05:53,680 interface so you can add new devices 178 00:05:53,680 --> 00:05:56,120 without even touching Reticulum code as 179 00:05:56,120 --> 00:05:57,919 long as two or more devices are somehow 180 00:05:57,919 --> 00:05:59,600 connected together either directly or 181 00:05:59,600 --> 00:06:01,120 door through devices with a transport 182 00:06:01,120 --> 00:06:03,560 node running they can form a network 183 00:06:03,560 --> 00:06:04,919 remember that because of announces 184 00:06:04,919 --> 00:06:06,680 Reticulum is self-organizing and can 185 00:06:06,680 --> 00:06:08,479 form a network over any and all of these 186 00:06:08,479 --> 00:06:10,800 interfaces simultaneously once the 187 00:06:10,800 --> 00:06:12,599 interfaces are set up and the necessary 188 00:06:12,599 --> 00:06:14,520 destinations are set to be transports 189 00:06:14,520 --> 00:06:16,440 you're basically done with any network 190 00:06:16,440 --> 00:06:18,520 configuration so that's great but what's 191 00:06:18,520 --> 00:06:19,960 the point of a network stack that 192 00:06:19,960 --> 00:06:21,880 nothing makes use of yet this is why the 193 00:06:21,880 --> 00:06:24,639 Reticulum creators made lxf a Reticulum 194 00:06:24,639 --> 00:06:26,280 Native Messaging protocol that allows 195 00:06:26,280 --> 00:06:28,080 for standard long and short form 196 00:06:28,080 --> 00:06:29,639 messaging functionality commun Comm 197 00:06:29,639 --> 00:06:31,800 unication between network devices paper 198 00:06:31,800 --> 00:06:34,160 messages and offline reception of 199 00:06:34,160 --> 00:06:36,160 messages offline messaging is 200 00:06:36,160 --> 00:06:38,720 facilitated by lxf propagation nodes 201 00:06:38,720 --> 00:06:40,560 which store and for messages to peers 202 00:06:40,560 --> 00:06:42,080 that are not directly reachable when a 203 00:06:42,080 --> 00:06:44,560 message is sent LX SMF propagation nodes 204 00:06:44,560 --> 00:06:46,160 can also provide infastructure for 205 00:06:46,160 --> 00:06:48,479 distributed Bulletin news or discussion 206 00:06:48,479 --> 00:06:51,360 boards propagation nodes will by default 207 00:06:51,360 --> 00:06:53,080 peer with each other and synchronize 208 00:06:53,080 --> 00:06:55,039 messages over time automatically 209 00:06:55,039 --> 00:06:56,680 creating an encrypted distributed 210 00:06:56,680 --> 00:06:58,879 message store users can retrieve their 211 00:06:58,879 --> 00:07:00,879 messages from any available propagation 212 00:07:00,879 --> 00:07:03,400 node propagation nodes are not required 213 00:07:03,400 --> 00:07:05,800 for lxf to work they simply serve to add 214 00:07:05,800 --> 00:07:07,599 optional functionality that many users 215 00:07:07,599 --> 00:07:09,879 will find helpful it is very important 216 00:07:09,879 --> 00:07:11,759 to remember that LX smf's propagation 217 00:07:11,759 --> 00:07:13,720 nodes are not the same as the transport 218 00:07:13,720 --> 00:07:15,199 nodes that provide Reticulums core 219 00:07:15,199 --> 00:07:17,039 routing 220 00:07:17,039 --> 00:07:19,280 functionality another project you may be 221 00:07:19,280 --> 00:07:21,720 familiar with is mesh tastic it is often 222 00:07:21,720 --> 00:07:23,199 compared to Reticulum even though 223 00:07:23,199 --> 00:07:24,879 they're quite different internally 224 00:07:24,879 --> 00:07:26,919 unlike Reticulum mesh tastic works 225 00:07:26,919 --> 00:07:29,080 almost exclusively over Lura and relies 226 00:07:29,080 --> 00:07:31,080 on blood routing blood routing gets 227 00:07:31,080 --> 00:07:32,840 exponentially less efficient for each 228 00:07:32,840 --> 00:07:34,479 node that is added so their current 229 00:07:34,479 --> 00:07:36,440 limit is around 32 nodes and likely 230 00:07:36,440 --> 00:07:38,960 won't increase by much anytime soon mesh 231 00:07:38,960 --> 00:07:40,840 tastic stat can run entirely on a 232 00:07:40,840 --> 00:07:42,560 microcontroller while R node currently 233 00:07:42,560 --> 00:07:43,879 requires a separate device like a 234 00:07:43,879 --> 00:07:46,080 Raspberry Pi zero to handle routing 235 00:07:46,080 --> 00:07:47,680 however this might not be the case soon 236 00:07:47,680 --> 00:07:49,840 as a port of Reticulum to C++ is 237 00:07:49,840 --> 00:07:51,840 currently in development mesh tastics 238 00:07:51,840 --> 00:07:53,800 encryption is optional and radio share 239 00:07:53,800 --> 00:07:55,639 encryption Keys Network wide while 240 00:07:55,639 --> 00:07:57,639 Reticulum requires encryption and has 241 00:07:57,639 --> 00:07:59,520 forward secrecy meaning that if it 242 00:07:59,520 --> 00:08:01,240 connections key is compromised no 243 00:08:01,240 --> 00:08:03,360 previous or future connections even to 244 00:08:03,360 --> 00:08:04,879 that same destination will be 245 00:08:04,879 --> 00:08:06,879 compromised this means that the only 246 00:08:06,879 --> 00:08:08,879 real way to completely break Reticulums 247 00:08:08,879 --> 00:08:10,720 encryption is to compromise the sender 248 00:08:10,720 --> 00:08:13,319 or recipient directly M tastic is a 249 00:08:13,319 --> 00:08:15,319 great project despite its flaws and I 250 00:08:15,319 --> 00:08:16,800 respect what they're doing even though I 251 00:08:16,800 --> 00:08:18,280 still prefer 252 00:08:18,280 --> 00:08:20,240 Reticulum now that I've explained how 253 00:08:20,240 --> 00:08:22,680 Reticulum Works let's try it out there 254 00:08:22,680 --> 00:08:24,599 are three major Elm of clients currently 255 00:08:24,599 --> 00:08:27,039 available NomadNet Sideband and 256 00:08:27,039 --> 00:08:29,639 Reticulum mes chat NomadNet is a 257 00:08:29,639 --> 00:08:31,440 desktop terminal based application with 258 00:08:31,440 --> 00:08:33,200 some features such as website esque 259 00:08:33,200 --> 00:08:36,120 Pages while Sideband is GUI out for both 260 00:08:36,120 --> 00:08:37,919 desktop and Android which is somewhat 261 00:08:37,919 --> 00:08:39,760 easier to use and can send images and 262 00:08:39,760 --> 00:08:40,800 files in 263 00:08:40,800 --> 00:08:43,479 chats Reticulum mesh chat is still being 264 00:08:43,479 --> 00:08:45,080 developed but its goal is to be even 265 00:08:45,080 --> 00:08:47,240 easier to use in Sideband while keeping 266 00:08:47,240 --> 00:08:49,440 most of both Sideband and NomadNet's 267 00:08:49,440 --> 00:08:52,000 features it also adds even more features 268 00:08:52,000 --> 00:08:53,920 like voice calling and voice messages 269 00:08:53,920 --> 00:08:56,600 all still working over Lura to install 270 00:08:56,600 --> 00:08:57,920 any of these clients follow the 271 00:08:57,920 --> 00:09:00,800 instructions on their GitHub pages 272 00:09:00,800 --> 00:09:01,959 once you've picked a client and 273 00:09:01,959 --> 00:09:03,279 installed it you'll need to configure 274 00:09:03,279 --> 00:09:04,959 some interfaces so you can connect to a 275 00:09:04,959 --> 00:09:07,399 larger Reticulum Network inside band 276 00:09:07,399 --> 00:09:08,640 this is done through the connectivity 277 00:09:08,640 --> 00:09:11,160 and Hardware pages with NomadNet it is 278 00:09:11,160 --> 00:09:12,480 done through the config files in the 279 00:09:12,480 --> 00:09:14,640 hidden NomadNetwork and Reticulum 280 00:09:14,640 --> 00:09:16,519 folders in your home directory and with 281 00:09:16,519 --> 00:09:18,120 Reticulum mes chat it is done through 282 00:09:18,120 --> 00:09:20,720 the interfaces page the easiest way to 283 00:09:20,720 --> 00:09:22,160 get connected to other people and try 284 00:09:22,160 --> 00:09:24,160 our Reticulum is to join the testet you 285 00:09:24,160 --> 00:09:25,760 can find more info about that at the 286 00:09:25,760 --> 00:09:28,240 Reticulum Network website remember that 287 00:09:28,240 --> 00:09:30,279 when changing any of these Ops you must 288 00:09:30,279 --> 00:09:31,720 completely restart your client for 289 00:09:31,720 --> 00:09:33,160 changes to 290 00:09:33,160 --> 00:09:35,839 apply both nadet and Sideband have 291 00:09:35,839 --> 00:09:37,519 integrated guides explaining how to 292 00:09:37,519 --> 00:09:39,800 access and use their specific features 293 00:09:39,800 --> 00:09:41,480 and I highly recommend reading them to 294 00:09:41,480 --> 00:09:43,880 better understand how to use each one 295 00:09:43,880 --> 00:09:45,760 you may even discover some less obvious 296 00:09:45,760 --> 00:09:47,480 features like Sideband situation 297 00:09:47,480 --> 00:09:49,839 tracking functionality that if enabled 298 00:09:49,839 --> 00:09:51,800 allows groups to be easily organized and 299 00:09:51,800 --> 00:09:54,200 located at a glance and the repository 300 00:09:54,200 --> 00:09:55,800 page which allows for the Sideband app 301 00:09:55,800 --> 00:09:58,440 to be shared offline for NomadNet 302 00:09:58,440 --> 00:09:59,880 specifically make sure to pay attention 303 00:09:59,880 --> 00:10:01,519 to the keyboard shortcuts bar at the 304 00:10:01,519 --> 00:10:03,480 bottom of the screen each panel has 305 00:10:03,480 --> 00:10:05,000 different shortcuts that allow for a ton 306 00:10:05,000 --> 00:10:06,839 of functionality you might otherwise 307 00:10:06,839 --> 00:10:08,920 Miss so that's pretty much it for 308 00:10:08,920 --> 00:10:11,079 Reticulums Basics to learn more I highly 309 00:10:11,079 --> 00:10:12,200 recommend taking a look through the 310 00:10:12,200 --> 00:10:14,360 Reticulum manual and Michael Fager's 311 00:10:14,360 --> 00:10:16,360 Reticulum primer checking out the 312 00:10:16,360 --> 00:10:18,640 resources on unsign doio and chatting 313 00:10:18,640 --> 00:10:20,079 with the Reticulum community in the 314 00:10:20,079 --> 00:10:21,680 discussions tab on GitHub and in The