[00:00.000 --> 00:20.060] A session is on wireless mesh networks, a topic which is about as hackery a way as you can do mesh networks as there is, with three speakers, Kevin Carter, Peter Valdez, and Kurt Snikus, who I probably... did I... I killed... Snikus. [00:20.240 --> 00:21.380] Okay, sorry, I totally killed that. [00:21.520 --> 00:24.220] That was my whole job, was to get your name pronounced right. [00:24.360 --> 00:28.460] And I will let them introduce themselves, because I've done enough damage already. [00:28.700 --> 00:29.020] Thank you. [00:29.520 --> 00:30.120] Thank you. [00:30.840 --> 00:33.660] Thank you very much, and thanks to HOPE for having us. [00:33.820 --> 00:34.740] We're really excited to do the talk. [00:34.980 --> 00:35.900] My name is Kevin Carter. [00:36.160 --> 00:40.600] I'm a technologist, writer, and artist living in Brooklyn, representing here. [00:41.400 --> 00:52.580] So, yeah, I'm going to be kind of doing a quick overview of, you know, of mesh networks, and then we're going to get down to the nitty-gritty with the people who actually know what they're talking about here. [00:53.180 --> 00:54.900] I'm going to let these guys introduce themselves, too. [00:56.620 --> 00:57.060] Sure. [00:58.240 --> 00:58.680] Hello? [00:58.900 --> 00:59.060] Hello? [01:01.100 --> 01:02.240] Oh, I got to turn it on. [01:03.120 --> 01:03.560] Hello. [01:03.940 --> 01:04.180] Okay. [01:04.460 --> 01:05.020] There we go. [01:05.620 --> 01:06.280] I'm Peter. [01:07.480 --> 01:11.800] Along with Kurt, I run... or we run the NYC Meshnet meetings. [01:12.000 --> 01:14.820] So if you go to nycmesh.net, you can see us there. [01:15.060 --> 01:28.760] We're basically just a group of people who are trying to get a wireless mesh net set up here in New York City, and we think it's a good opportunity because it's as dense as any city will be, and if we can get one set up here, maybe it'll set a good example, [01:28.920 --> 01:30.280] and we're just hopeful. [01:31.780 --> 01:32.180] So... [01:32.180 --> 01:45.540] I'm Kurt Snieckus, and pretty much the same as Peter, just trying to set up a mesh network and see if we can create something that, you know, is community-based and allows people to connect to each other. [01:47.000 --> 01:47.480] Great. [01:47.660 --> 01:48.940] So we're going to go ahead and get started here. [01:49.200 --> 01:54.820] I guess one of the questions that people have, you know, why fix it if it ain't broke, right? [01:54.960 --> 02:02.760] I mean, we've got the Internet, which is one of the most phenomenal innovations of, you know, the 20th century. [02:03.620 --> 02:05.800] I mean, and that's an understatement somehow. [02:06.940 --> 02:12.280] So, you know, I mean, we've got this incredible network that runs our world now. [02:13.480 --> 02:15.500] Why should we build a new one? [02:15.500 --> 02:15.920] Right? [02:16.320 --> 02:23.960] You know, so I wanted to kind of go through some of the issues with, you know, the architecture that the Internet operates on right now. [02:25.200 --> 02:31.860] As you guys know, you know, the Internet, you know, ARPANET was first built by hackers, right? [02:31.900 --> 02:37.260] It was hackers, it was academics, it was engineers, you know, working for the government who designed the Internet. [02:37.460 --> 02:44.620] And because of that, because they're just trying to get an operating network, they're not anticipating the incredible growth of this. [02:44.620 --> 02:46.520] So, it's not their fault. [02:46.700 --> 02:47.720] They're trying to get things up and running. [02:47.860 --> 02:53.640] They've done their job in making sure that there is a way for these groups to communicate. [02:53.900 --> 02:59.080] And you can see here, this is the Tech Model Railroad Club at MIT, 1969. [02:59.480 --> 03:01.820] So, these were the guys that were building it. [03:02.120 --> 03:05.600] And this is a map of ARPANET in December of 1969. [03:05.600 --> 03:09.260] You can see this is what the Internet used to look like, the architecture, right? [03:09.820 --> 03:13.940] So, you can see, you know, Utah, UCLA, UCSB. [03:14.240 --> 03:16.180] I mean, we got, yeah, that's all right. [03:16.240 --> 03:18.880] We got four nodes on the network at this point. [03:19.180 --> 03:22.340] So, you know, and this was, you know, this was 45 years ago. [03:23.840 --> 03:29.540] So, I mean, we've done, you know, I mean, we've done the unimaginable in building the Internet. [03:30.300 --> 03:36.040] But, you know, there are some architectural issues that we're addressing today. [03:36.920 --> 03:38.300] I'm going to go over those briefly. [03:38.820 --> 03:44.620] So, you know, with the growth of the Internet, I mean, things have shifted dramatically, right? [03:44.880 --> 03:53.500] We've seen political and corporate control of this network that was originally designed to allow academics to, you know, engage in the free flow of information. [03:54.760 --> 03:59.120] And more than that, we've also seen corporate control of the network, right? [03:59.120 --> 04:05.960] So, here's a quick map of ISPs right now, state by state. [04:06.040 --> 04:07.980] These are the top ISPs in each state. [04:08.380 --> 04:19.600] You can see Comcast, you know, if the Time Warner buyout is approved, Comcast will be the top ISP in 26 states, right? [04:19.820 --> 04:25.020] So, I mean, do we want Comcast controlling the entire Internet is the question. [04:26.280 --> 04:29.980] And you can see here, I mean, it's all about lobbying. [04:30.220 --> 04:45.200] It's all about these enormous, you know, multinational corporations using their power, you know, economic power and political power to determine how the network is regulated right now. [04:45.280 --> 04:46.540] So, that's a serious issue. [04:48.520 --> 04:53.220] You can see here, you know, kind of doing just state of the Internet, right? [04:53.580 --> 04:57.340] There are some serious threats to the Internet as we know today. [04:57.940 --> 05:04.140] You guys have heard over the last few days, net neutrality has come under fire in a serious way. [05:04.140 --> 05:10.220] We have an oligopoly of ISPs who control the network in a terrifying way. [05:10.400 --> 05:14.480] And we also have the surveillance state, and that's both political and corporate. [05:15.920 --> 05:26.620] As hackers, I say as consumers and technologists, but more importantly as hackers, we have to make sure that the original vision of the Internet's architects stays pure. [05:26.620 --> 05:36.800] You know, we want to ensure that the network is democratized, that it's decentralized, because otherwise this might happen, right? [05:37.160 --> 05:44.640] This is a theoretical, you know, plan for the Internet if net neutrality fails. [05:44.640 --> 05:51.160] So, we've got, you know, $5 for a Pathfinder plan where you can, you know, subscribe to search engines. [05:51.340 --> 05:56.860] And $10 for a Hollywood plan with YouTube Plus and Hulu and ESPN. [05:57.420 --> 06:00.060] So, you know, this is one of the things we're trying to avoid. [06:01.520 --> 06:05.640] Like I mentioned, net neutrality is facing an immediate danger. [06:06.360 --> 06:21.980] It is incredibly problematic that, you know, these 130,000 filings, and in fact this was taken a couple weeks ago, I think it's, you know, considerably more, have had to take place. [06:22.440 --> 06:28.040] And it's because the FCC is, you know, maybe the FCC is part of the political system, right? [06:28.140 --> 06:32.100] I mean, these lobbyists do control the administration's policies. [06:32.100 --> 06:38.160] And, you know, this could mean that ISPs don't have to abide by net neutrality. [06:38.560 --> 06:41.660] They claim that, you know, that it's not going to be an issue. [06:41.840 --> 06:47.080] And yet, this fast lane is going to make slow lanes for everybody else. [06:47.580 --> 07:02.660] So, you know, oh yeah, ironically also, as long as we're talking about this, when the FCC asked for comment on this issue, the number of requests, you know, to comment on it, broke the FCC's server at the time. [07:03.000 --> 07:05.660] So, you know, maybe they should have paid for a fast lane. [07:05.800 --> 07:06.220] Who knows? [07:06.360 --> 07:06.720] I don't know. [07:07.920 --> 07:10.900] So, another issue is the ISP oligopoly, right? [07:11.280 --> 07:16.420] We've got control of the Internet in the hands of very few companies. [07:16.560 --> 07:25.500] And these are companies that have used government resources, you know, our tax dollars, and promised that they would build the next wave of infrastructure in this country. [07:25.500 --> 07:26.680] That has not happened. [07:27.340 --> 07:29.900] Fiber optic cable was supposed to be run countrywide. [07:30.120 --> 07:34.340] And all of a sudden, they were just like, you know, maybe we're going to use those resources for something else. [07:34.460 --> 07:36.940] You know, raising executive pay, for instance. [07:38.540 --> 07:43.720] So, I mean, when you look at this breakdown, this graph illustrates it perfectly, right? [07:43.940 --> 07:49.240] So, in yellow here, you see the speed of the connection in megabits per second, right? [07:49.240 --> 07:51.820] In blue, you see the price that these customers pay. [07:52.320 --> 07:53.340] You know, take a look at South Korea. [07:53.880 --> 07:55.520] 100 megabits per second download. [07:55.820 --> 08:01.560] And less than $20 a month for Internet connectivity, on average. [08:01.780 --> 08:06.220] If you look at the U.S., all the way down here, you know, we're talking 50 megabits. [08:06.440 --> 08:09.540] And, you know, average price of, you know, $90 a month. [08:10.080 --> 08:16.720] So, I mean, you can see this really illustrates that we are not getting what we're paying for in terms of Internet. [08:17.300 --> 08:19.980] And, you know, it's an issue. [08:20.160 --> 08:25.480] You can see we're number 29 here, just above Estonia in terms of average, you know, average bandwidth. [08:27.040 --> 08:28.220] That's nothing against Estonia. [08:28.340 --> 08:41.480] I'm just saying that, you know, a country with the infrastructure that the U.S. has, you know, and, you know, the number of, you know, the number of incredibly talented engineers who have built this network in this country, we should be able to average more than 25 megabits. [08:43.340 --> 08:46.280] The third issue that we're dealing with here is the surveillance state. [08:46.280 --> 08:48.540] And like I mentioned, this is political and corporate. [08:49.240 --> 09:05.540] You know, I mean, we've got, you know, we've got issues with the NSA, the CIA, these governmental agencies who are, you know, conducting, I mean, what are essentially attacks on the infrastructure, technologically, of this country, you know, for political gain. [09:05.900 --> 09:14.780] And we've also got corporations like Google, Facebook, and Amazon who are actually making it their business to ensure that your private data is no longer private. [09:14.780 --> 09:15.500] Right? [09:15.700 --> 09:20.560] So when you're not paying for something, you are the product, right? [09:20.660 --> 09:22.280] You are the product that they're selling to advertisers. [09:22.740 --> 09:30.950] And, you know, with the centralization of the Internet as it exists today, we are getting... [09:31.660 --> 09:34.320] I personally am getting concerned about the state of things. [09:34.940 --> 09:41.080] Here you can actually see the NSA TAO or TAO unit intercepting Cisco equipment. [09:41.860 --> 09:49.060] So actually, you know, when a router is being mailed out to a company, they will actually unpack it, you know, in some cases. [09:49.260 --> 09:56.160] They will put in their own surveillance hardware and then ship it as if, you know, as if it was coming straight from the factory. [09:56.160 --> 09:59.620] So this is one of the photos that was released on the Snowden leaks. [10:00.500 --> 10:11.360] So, you know, going over these concerns again, the end of net neutrality, you know, we've got an ISP oligopoly, and then we also have a corporate and political surveillance state. [10:11.880 --> 10:23.760] So, you know, the original design of these engineers who were, you know, who were very utopian in their thinking, their architecture is brilliant, but it does not address the problems with the current Internet. [10:23.760 --> 10:37.840] So, you know, what I want to talk about next, very briefly, is just the concept of a mesh net, and how we believe that mesh nets can address some of these concerns with the current state of the Internet. [10:38.980 --> 10:42.460] So, as you guys know, wireless technology has become ubiquitous. [10:42.560 --> 10:44.080] You see wireless routers everywhere. [10:44.640 --> 10:52.220] And, you know, routers that, you know, would have cost thousands of dollars years before, you can get for, you know, 30, 35 bucks today. [10:53.960 --> 11:03.640] So, one mesh network that we're going to talk a little bit about today, and it is by no means the only mesh network, but it is the one we're going to be addressing today. [11:03.760 --> 11:08.020] It's called Hyperborea, and it's, you know, it's a current popular network. [11:09.540 --> 11:12.940] So, let's do the definition, which is very critical to understanding this. [11:13.240 --> 11:25.280] A mesh network, or a mesh net, as we're abbreviating it here in the presentation, is a network topology in which each device is connected to other devices on the network, and it directly relays information throughout the network to its peers. [11:25.780 --> 11:34.320] So, essentially, you know, a mesh network is, you know, this network where devices are connected, they're sharing information, they're routing traffic. [11:35.780 --> 11:40.480] And the reason for this design is because it's not top-down, right? [11:40.580 --> 11:43.280] This decentralizes the nature of the network. [11:44.140 --> 11:53.220] You can see here that it's named after sort of a mythical land called Hyperborea, which has been said to be geographically in different places throughout history. [11:53.380 --> 11:54.700] Just, you know, a quick anecdote. [11:54.700 --> 11:59.660] This is a map of a theoretical Hyperborean ocean back from 1572. [11:59.980 --> 12:04.620] The reason I want to show you this map is because this is what Hyperborea looks like today. [12:05.740 --> 12:09.420] So, this was a screenshot that I took on July 5th. [12:09.640 --> 12:14.060] You can go to fc00.org to see more. [12:14.200 --> 12:16.060] And you can actually see a live picture of it. [12:16.400 --> 12:22.260] But I just wanted to briefly show you guys that these are all the different nodes in the network and how they're connected right now. [12:23.680 --> 12:25.940] So, let me go over Hyperborea briefly. [12:26.220 --> 12:33.440] And then I'm going to let these guys kind of go over some of the technical sides of things and talk a little bit about mesh networks. [12:35.020 --> 12:37.520] So, Hyperborea, I figured why reinvent the wheel? [12:37.640 --> 12:39.860] They've already done a great job of defining it for us. [12:40.040 --> 12:44.720] It's a global decentralized network of nodes that run CJDNS software. [12:44.920 --> 12:48.000] And CJDNS is a network protocol that we're going to go over in more detail later. [12:48.200 --> 12:55.400] But the goal of Hyperborea is to provide an alternative to the Internet with the principles of security, scalability, and decentralization at the core. [12:56.100 --> 12:59.480] Anyone can participate in the network by locating a peer that's already connected to it. [12:59.820 --> 12:59.900] Right? [13:00.140 --> 13:04.420] So, we've got security provided for by this new protocol. [13:04.760 --> 13:08.700] We've got scalability because, you know, as you can see, this is already a large network. [13:08.700 --> 13:15.580] And decentralization, most importantly, so we can get the network out of the hands of, you know, the rich and powerful. [13:18.600 --> 13:28.680] So, like I mentioned, the protocol that Hyperborea, for instance, runs on is an open-source protocol called CJDNS, created by Caleb James Delisle. [13:28.680 --> 13:32.460] The software uses public key cryptography to encrypt data. [13:32.680 --> 13:35.720] So, that way we can ensure security and privacy, right? [13:36.680 --> 13:44.560] You know, one of the issues with traditional, you know, with traditional network architecture is that there wasn't security built into these protocols. [13:44.560 --> 13:47.880] We had to build in IPsec later on. [13:48.020 --> 13:53.500] We had to build in DNSsec later on as just a way to kind of, you know, it was a kludge. [13:53.580 --> 13:58.320] It was a way to use the old architecture and get past some of these issues. [13:58.480 --> 14:01.060] And these were brilliant innovations by brilliant engineers. [14:01.200 --> 14:06.900] But at the same time, you know, we have to start addressing the issues, you know, HTTPS, right? [14:07.000 --> 14:10.280] I mean, we've seen some critical failings there lately as well. [14:10.280 --> 14:15.220] So, you know, right now, we're looking at new ways of doing things. [14:15.580 --> 14:21.380] And CJDNS is a great protocol because it provides all of these, you know, all these aspects, right? [14:21.640 --> 14:23.880] Decentralization, security, and privacy. [14:24.760 --> 14:29.340] Like I mentioned, though, CJDNS is by no means the only way to connect, right? [14:29.540 --> 14:36.960] So, just for review, a mesh net is the topology, CJDNS is a protocol, and hyperborea is a network, a network. [14:37.100 --> 14:38.540] Not the network, but a network. [14:39.880 --> 14:42.360] So, CJDNS isn't the only way to connect to a mesh net. [14:42.960 --> 14:46.520] We're using it because there are security and privacy benefits to it. [14:46.780 --> 14:50.980] I mean, and that's what we're using, you know, in the NYC mesh net project. [14:51.100 --> 14:53.540] That's what Seattle mesh net project is using. [14:53.760 --> 14:56.780] But we want to make it clear that we're protocol agnostic. [14:56.980 --> 14:58.360] We're just talking about mesh nets in general. [14:59.260 --> 15:02.760] Another one is Batman, which is the better approach to mobile ad hoc networking. [15:03.440 --> 15:04.420] You can see here. [15:07.100 --> 15:09.740] So, briefly, I want to go over decentralization again. [15:10.260 --> 15:17.920] The reason that decentralization is so important is because it gets us away from the traditional tree topology of an ISP model, right? [15:18.120 --> 15:25.120] So, these mesh nets with CJDNS allow information to propagate throughout the network using the different nodes that are on the network. [15:26.200 --> 15:29.320] And it's managed by the users and for the users. [15:29.580 --> 15:32.440] So, I mean, this is really a hacker network right now. [15:32.720 --> 15:37.420] You don't call up Time Warner or Comcast and have to, you know, go... [15:37.420 --> 15:41.600] You guys heard the Comcast call that's been going around, I'm sure, with, you know, trying to cancel service. [15:41.600 --> 15:43.940] You don't have to call up your ISP anymore. [15:44.960 --> 15:47.900] You do have to know how to use Linux, but... [15:48.800 --> 16:03.760] Basically, you know, the reason that we're suggesting to move toward decentralization is because of the ISP oligopoly issues and because of the socio-political issues that, you know, the current state of the Internet has caused. [16:03.760 --> 16:07.060] I mean, you take a look at Syria, Egypt, right? [16:07.620 --> 16:12.620] I mean, these countries shut down the Internet when it didn't serve the political purposes of the leaders. [16:13.000 --> 16:19.600] And this could very easily happen to the Internet as well, you know, under martial law or if there was some kind of political crisis. [16:19.780 --> 16:30.460] There is actually already law on the books, you know, the Communications Act of 1934, that the government could theoretically say, okay, well, let's shut down the Internet, right? [16:30.620 --> 16:33.960] Let's shut down the main DNS servers. [16:34.840 --> 16:39.940] And what decentralization does is it puts the power back in the hands of the users. [16:43.190 --> 16:45.590] Finally, let's talk a little bit about security and privacy. [16:46.050 --> 16:57.030] So, like I said, you know, security in CJDNS and on Hyperborea is designed to be, quote, ubiquitous and unintrusive, like AIR, right? [16:57.030 --> 17:01.730] Part of the problem with the security protocols that we use today is that they're difficult to use, right? [17:01.910 --> 17:08.230] I mean, you know, when you talk about PGP or something like that, right, it's an incredibly powerful encryption tool. [17:08.370 --> 17:20.570] At the same time, because it's difficult for users to, you know, to use, it's difficult to understand exactly what's happening, it makes it so that people don't use it as frequently and everything's going out on the clear net, right? [17:20.650 --> 17:22.410] Everything's going out in clear text instead of encrypted. [17:22.410 --> 17:30.830] What CJDNS does is uses, you know, the idea of security being ubiquitous, being unintrusive. [17:30.910 --> 17:34.330] It's a layer of abstraction, right, that the user never has to deal with. [17:34.710 --> 17:38.250] So it stores its routing table in a distributed hash table. [17:38.470 --> 17:46.550] Like I said, you know, it uses public key authentication and stack smashing protection to make sure that buffer overflows are prevented against. [17:46.690 --> 17:51.070] So people have really gone into security in a serious way in designing this protocol. [17:51.690 --> 17:55.210] And that is another benefit that CJDNS has. [17:55.770 --> 17:59.570] So I'm going to kick it over to Peter and Kurt here. [17:59.790 --> 18:04.430] And they're going to kind of go over some additional aspects of meshnets. [18:05.050 --> 18:05.490] Yeah. [18:06.930 --> 18:12.230] So I guess I'll just talk a little bit about the more technical details on CJDNS. [18:12.230 --> 18:24.430] So it's basically, at this point, this guy designed a protocol and he wrote a software package to run the protocol so that you can connect nodes together with it. [18:24.430 --> 18:32.190] So it's... he took basically a private subnet from IPv6, FC00-8. [18:32.430 --> 18:33.870] It's like a lot of addresses there. [18:34.150 --> 18:37.710] And then to get the security... there's a security layer. [18:38.490 --> 18:40.470] The connections are all encrypted. [18:40.810 --> 18:45.930] And the way that is accomplished is with, you know, public-private key encryption. [18:46.790 --> 18:49.690] And that's actually tied to your IPv6 address. [18:49.930 --> 18:53.150] So when you connect to someone, you get their IPv6 address. [18:53.370 --> 18:58.610] And it's... that's... you know that's their address because it's the beginning of their public key. [19:03.920 --> 19:06.060] And that's, you know, how you connect to them. [19:07.020 --> 19:08.360] You establish that connection. [19:09.930 --> 19:13.380] So CJDNS gives several benefits. [19:13.380 --> 19:16.240] The security layer on the actual network layer. [19:16.660 --> 19:23.940] And the trust that you get from the public and private key and the IPv6 address they have. [19:24.620 --> 19:26.120] And what else? [19:29.030 --> 19:29.900] Well, okay. [19:30.100 --> 19:31.500] So two of the major parts. [19:31.600 --> 19:35.560] So one part that he... Kurt just talked about was address allocation. [19:35.560 --> 19:42.100] So just to be a little clear about how the private and public keys are tied to your IPv6 address. [19:42.440 --> 19:49.200] When you're generating your configuration for CJDNS, you are generating your public and private key pairs. [19:49.300 --> 19:57.560] And you do it until you're able to basically through some transformation have your IPv6 address be a representation of your public key. [19:57.720 --> 20:02.840] So it's not like there's some database somewhere that just maps IPv6 addresses to arbitrary keys. [20:02.840 --> 20:07.740] Your IPv6 address is, in fact, truly a representation of it. [20:07.900 --> 20:14.640] So once you receive any sort of message claiming to be from some IPv6 address, you can very easily verify it. [20:14.740 --> 20:17.220] Which is a major flaw of the current Internet. [20:17.980 --> 20:20.540] Or the old Internet, as we like to say sometimes. [20:21.860 --> 20:27.720] And so that helps basically any form, any data that's passing through it. [20:27.840 --> 20:33.000] It's signed by the person who's sending it and then using the public key of the person they're sending it to. [20:33.460 --> 20:36.660] Every piece of data that flows through the network is encrypted. [20:36.840 --> 20:37.760] It's not added on top. [20:37.920 --> 20:40.720] It's not some protocol built on top of any other protocol. [20:40.720 --> 20:45.520] It's just part of the CJDNS protocol. [20:45.860 --> 20:48.920] So at a very low level, security is just built in. [20:49.100 --> 20:52.580] So that's kind of that whole air security ubiquitous quote. [20:53.360 --> 20:55.160] So it's built in from that low level. [20:55.660 --> 21:00.060] And additionally, it handles routing. [21:00.060 --> 21:04.940] So this is kind of the major problem that people tend to bring up when it comes to mesh nets. [21:05.200 --> 21:09.280] Is that routing becomes very hard because now it's just one big flat address space. [21:09.440 --> 21:13.420] There's no sort of hierarchical way to know like, okay, these addresses are all in the U.S. [21:13.420 --> 21:14.640] These addresses are all wherever. [21:16.140 --> 21:24.560] So it has some sort of routing algorithm built into it that does prevent several things like routing loops and things like that. [21:24.560 --> 21:31.320] And it uses a distributed hash table to sort of store and keep updated routes throughout the network. [21:31.640 --> 21:33.640] And so it is one of the major problems. [21:33.760 --> 21:36.240] And that is one of the things that's often brought up. [21:36.320 --> 21:37.960] But it handles it pretty nicely. [21:38.120 --> 21:41.560] And I guess we want to be clear that CJDNS isn't necessarily... [21:41.560 --> 21:44.540] We're not necessarily dedicated to it. [21:44.780 --> 21:46.180] It's the protocol that we use. [21:46.260 --> 21:47.160] There are several out there. [21:47.620 --> 21:50.180] But that's the one that we're working with for the time being. [21:50.180 --> 21:54.340] So if one day we decide, okay, CJDNS isn't going the way that we want it to. [21:54.620 --> 21:57.800] Or for whatever reason, it just doesn't work out. [21:58.660 --> 21:59.720] We're ready to move on. [21:59.840 --> 22:01.640] This is more about getting a mesh net set up. [22:01.760 --> 22:05.360] It's not about sort of selling you a specific software suite or something. [22:05.500 --> 22:07.300] We just want to build a mesh net that works. [22:08.020 --> 22:11.120] And right now we're using CJDNS because it handles routing very nicely. [22:11.360 --> 22:13.520] And it has security built in at a very low level. [22:13.840 --> 22:14.920] So that's very nice. [22:16.440 --> 22:20.000] Additionally, a lot of these other protocols work over the IP layer. [22:20.000 --> 22:22.920] Whereas CJDNS works with Ethernet frames. [22:23.140 --> 22:35.860] And so if we're just connected via some Ethernet cable or something, or we're just associated and not even any DHCP handling on a Wi-Fi network, you're able to connect to each other just via pure Ethernet frames. [22:35.980 --> 22:37.180] And CJDNS handles that. [22:37.300 --> 22:40.480] So we don't have to build any sort of kludgy thing on top of IP. [22:42.600 --> 22:44.640] And I guess for CJDNS, that's about it. [22:44.720 --> 22:45.860] So that's what we're using currently. [22:48.800 --> 22:50.060] What else do we want to talk about? [22:50.400 --> 22:55.980] So I guess I wanted to also do kind of a brief tutorial, right? [22:56.580 --> 22:57.960] So, I mean, you guys are hackers. [22:58.300 --> 22:59.740] You're DIY makers. [23:00.180 --> 23:04.980] Whatever you call yourself, whatever label you use, you want to know how to do it, right? [23:05.040 --> 23:06.260] You want to know how to get connected. [23:06.620 --> 23:09.720] So we wanted to kind of do a quick tutorial. [23:09.720 --> 23:11.740] I was in the same place, right? [23:12.040 --> 23:16.760] Before I met these guys, you know, I was kind of like, listen, I've heard about mesh nets. [23:16.900 --> 23:20.500] I want to connect to one, but I don't know what hardware to use. [23:20.620 --> 23:24.820] I would like look online and people were like, well, you could do this, but we don't recommend that. [23:25.140 --> 23:28.280] So, you know, these guys built an excellent framework. [23:29.060 --> 23:36.040] When they were, you know, when they were working on peering on NYC Meshnet, they basically kind of created a guide. [23:36.280 --> 23:39.480] You know, this is kind of a how-to on how to peer. [23:40.120 --> 23:54.500] And so, although there's not an official kind of router that you need to join the network, you know, Project Meshnet in particular recommends something like the Ubiquity Nanostation or another OpenWRT-compatible router. [23:54.640 --> 23:56.000] Obviously, this depends on the situation. [23:56.060 --> 24:03.980] You're not always going to use a long-distance router, but it is something that, you know, it's going to broadcast further, more people around you can connect. [24:04.240 --> 24:06.420] So it's kind of a nice, you know, nice way to do it. [24:06.560 --> 24:16.200] Right, and this is kind of sort of chicken and egg-ish type problem that if we want to get a meshnet set up, it's all based on having people near you that are on the meshnet, and that's what makes it easy to join. [24:16.320 --> 24:21.360] So when you're establishing one, you don't have all those users that make a meshnet what it is. [24:21.760 --> 24:32.500] So that's why in the beginning, hopefully eventually in the future, we can move to sort of not as sort of high-powered routers, you know, and having to use directional routers that you point at people and figure out where they are. [24:32.880 --> 24:35.300] Hopefully you can just use, you know, any little standard home router. [24:35.460 --> 24:40.560] We'll go over what these are, but these are just, you know, little $40 routers that you can get, $35 on Amazon. [24:40.940 --> 24:53.840] And hopefully what we'll be able to do is that people can just use these, but for the time being when we're setting up a meshnet, we need some sort of, I guess, you can call it like a backbone, where we're able to connect the sort of pockets of meshnets that are going to start appearing as you establish a network, [24:53.880 --> 25:00.160] because we're not just going to all be grouped near each other, and otherwise we just use some switch and just all connect to each other. [25:00.340 --> 25:06.460] But we need somehow, some way to get the whole city connected in the beginning. [25:06.660 --> 25:12.340] And so that's why, for the time being, we're using these nano stations, which can broadcast for several miles away. [25:12.820 --> 25:27.060] Last year, until Kurt moved, we had a link set up, not terribly far, but I'd say like a kilometer and a half away from my window to his building's rooftop, and he was able to access the experimental network. [25:27.460 --> 25:29.760] Or rather, I was able to access Hyperborea through him. [25:30.420 --> 25:33.300] So it works, and so that's why we're moving forward with it. [25:33.420 --> 25:37.300] Again, just like CJDNS, we're not necessarily sticking to NEPs. [25:37.440 --> 25:38.520] This is what works. [25:39.000 --> 25:39.800] How fast? [25:40.080 --> 25:40.980] How fast. [25:41.280 --> 25:44.540] So, of course, this is one big question. [25:44.980 --> 25:47.000] How do these networks work? [25:47.120 --> 25:53.260] Our connection at that time was, there was a building in the way, so it's kind of amazing that we were able to get connected in the first place. [25:54.220 --> 25:55.860] And so it was a pretty flaky connection. [25:56.060 --> 25:58.140] So as far as that connection goes, I can't really tell you. [25:58.300 --> 26:10.180] But we do see, when we set up the little, like local mesh, like mini mesh nets at our meetings, which are, you know, several people on it will get, I don't know, a few megabytes per second. [26:10.740 --> 26:14.760] You know, just the bottleneck not being necessarily CJDNS. [26:14.960 --> 26:16.660] It's more what the hardware that you use. [26:16.840 --> 26:19.160] So if we want to establish something stronger later on, we can. [26:19.160 --> 26:23.400] So I just want to keep reiterating the point that this is about mesh nets. [26:23.560 --> 26:26.560] We're not sticking to any piece of the hardware. [26:26.800 --> 26:30.020] We're just saying, if you want to jump on, this is what we're working with right now. [26:30.120 --> 26:31.180] You can use these things. [26:31.260 --> 26:33.280] But we may change it for better things in the future. [26:33.400 --> 26:33.700] We're not. [26:33.860 --> 26:39.560] Because a lot of these movements tend to get stuck when they stick to certain things and really try to make it get working. [26:39.600 --> 26:42.400] But if they don't work out, we're going to move forward with something else. [26:42.720 --> 26:44.240] But for the time being, these are working great. [26:44.240 --> 26:47.000] So don't let me say, like, oh, I'm not sticking to them. [26:48.040 --> 26:50.360] We have been using these and they work just fine. [26:50.380 --> 26:51.620] So don't be afraid to buy it. [26:51.720 --> 26:52.940] Don't, you know, hesitate. [26:53.220 --> 26:53.740] They work. [26:54.020 --> 26:55.960] But just a heads up. [26:56.580 --> 26:58.800] And, yeah, I mean, I think that's a great point, Peter. [26:58.900 --> 27:01.940] That we are vendor agnostic in setting this stuff up. [27:02.040 --> 27:03.720] We're not trying to sell you on a ubiquity router. [27:03.940 --> 27:05.560] If something else works better, use it. [27:05.560 --> 27:08.240] If something else works better than CJDNS, use it. [27:08.480 --> 27:13.860] But, you know, just in talking about meshnets, this is what we're using because it does work right now. [27:14.180 --> 27:20.160] So the great part about this is that nanostation that's a really long-distance router, it's only like 80 bucks online, right? [27:20.180 --> 27:21.400] You can buy it easily. [27:22.120 --> 27:34.100] You can also, I mean, the whole kit that, you know, is kind of set up right now and that these guys have put together just as a way to get things going, it's only about $150. [27:34.640 --> 27:39.380] But if you've got the parts already, like if you have a Raspberry Pi already, you're talking about $100 for the setup. [27:39.600 --> 27:41.160] You don't have to buy that router either. [27:41.440 --> 27:44.100] You can use a router that you've got lying around the house. [27:44.240 --> 27:51.180] You could even use, you know, like one of these, you know, cheap little $30 router, battery-powered, you know, you can set that up too. [27:52.440 --> 27:54.200] So, but this is the basic setup, right? [27:54.320 --> 28:00.840] So, you know, nanostation M5, which will allow you to broadcast, you know, a mile, right? [28:01.500 --> 28:02.560] Or around that. [28:03.280 --> 28:08.000] You can also, you know, run it on a Raspberry Pi right now, you know, $40 online. [28:09.140 --> 28:20.440] And if you need, like, the SD card and the power supply and all that stuff for your Pi, most people already have them, but if you do, if you're just buying one for the first time, I mean, all in, you're talking about $30 for that stuff. [28:20.440 --> 28:31.020] So, there's actually a link, and it's just nycmesh.net slash blog slash starting dash with dash the dash basics. [28:31.900 --> 28:35.180] But if you just go to nycmesh.net, you can get a link from there. [28:36.060 --> 28:46.920] And also, if you're looking for a copy of the presentation too, later on, because this whole thing is online, you can go to tinyurl.com slash wireless mesh nets. [28:47.320 --> 28:50.060] So, tinyurl.com slash wireless mesh nets. [28:50.180 --> 28:51.880] And we'll have the presentation up there, so you can take a look. [28:52.560 --> 28:54.420] But this is the Raspberry Pi Model B. [28:55.880 --> 28:57.980] And you guys want to talk about MeshBerry a little bit? [28:58.680 --> 28:59.600] Yeah, I'll talk. [28:59.840 --> 29:00.460] Yeah, sure. [29:00.660 --> 29:10.940] So, MeshBerry is an image that we've made available online that has CJDNS basically one command away from being set up. [29:11.860 --> 29:12.820] It's very close. [29:12.980 --> 29:14.240] It uses the Raspbian image. [29:14.340 --> 29:16.060] It's not like some really custom thing. [29:16.200 --> 29:19.840] It just has Raspbian and then a couple of other things built on top. [29:20.240 --> 29:24.920] We pushed the kernel version up a bit just because we needed access. [29:25.080 --> 29:26.180] So, all of this is IPv6. [29:26.300 --> 29:27.800] So, we needed IPv6 tables. [29:28.000 --> 29:32.860] And, you know, there are certain things that might make it hard to get a Raspberry Pi set up if you're just trying to jump in. [29:32.920 --> 29:35.100] So, we made this image available online. [29:35.260 --> 29:47.640] You just run, you know, SSHN, you run two scripts, and you're able to, one, have CJDNS running, and on top of that, CJDNS currently only works on most Linux machines. [29:48.380 --> 29:54.740] Mac, almost completely functional, missing a few things, and a Windows version is just on the way. [29:55.000 --> 30:17.380] And so, for the time being, what we're doing is you're able to use any of the devices that we have, but in the, like, MeshBerry Pi image, we have set up, like, a NAT script that once you run it, as long as it's on your network, any device connected can connect to Hyperborea and access any of the services or websites that are up there. [30:17.820 --> 30:32.800] So, if you go to the NYC Meshnet website and you're interested in getting CJDNS installed on your Raspberry Pi, it's available for download, you just download it, flash your SD card that you're using, SSHN, run two scripts that are right in your home directory, [30:32.840 --> 30:34.360] and you're ready to go. [30:34.500 --> 30:39.680] You just have to add a peer who is connected to Hyperborea, and you have access to the entire experimental network. [30:39.820 --> 30:43.400] So, we have that up online for any of you guys who want to work with a Raspberry Pi. [30:43.640 --> 30:44.920] And it works quite well. [30:45.320 --> 30:47.400] Basically, these guys have done the work for you already. [30:47.820 --> 30:50.960] Like, you don't have to figure out how to compile the, you know, like, whatever. [30:50.960 --> 30:52.740] Like, you don't have to mess around that much. [30:52.860 --> 30:57.520] You basically just download the image, nycmesh.net slash MeshBerry, and then you're up and running. [30:57.720 --> 31:01.220] I mean, you run these scripts, it's really easy to do. [31:01.400 --> 31:07.320] So, that's the MeshBerry philosophy. [31:07.580 --> 31:09.300] So, do you guys want to talk OpenWRT at all? [31:09.500 --> 31:20.220] Yeah, so there's another project called MeshBox, which is a group of people, I think it's the Seattle Meshnet people, trying to get CJDNS working under OpenWRT. [31:20.220 --> 31:25.400] And they've built, actually, if you've ever used OpenWRT, they have the nice, loosey interface. [31:25.400 --> 31:30.320] And they've got graphical configuration stuff for CJDNS there. [31:30.520 --> 31:33.360] I think we have it over here somewhere. [31:37.150 --> 31:38.050] Yeah, this one. [31:38.190 --> 31:40.970] So, this is, like, this MeshBox thing. [31:41.170 --> 31:44.350] So, here we actually have a few, this is sort of a demo, too. [31:44.630 --> 31:51.430] We have a few routers running OpenWRT, and they are connected to each other. [31:53.130 --> 31:57.030] You can see that this is the IPv6 address, which is... [31:57.030 --> 32:00.530] And so, if you go over here, too, you can see... [32:00.530 --> 32:01.290] Let's see. [32:02.990 --> 32:06.270] Things like the public key and the private key. [32:06.410 --> 32:07.530] Don't look at this, this is a secret. [32:09.090 --> 32:11.110] You can't see the whole thing, so it's okay. [32:11.790 --> 32:11.990] Yeah. [32:12.830 --> 32:13.750] It's obscured. [32:13.910 --> 32:14.610] It's okay. [32:15.010 --> 32:16.030] It's been redacted. [32:18.310 --> 32:20.090] I'll just, I'll just reflash it later. [32:22.850 --> 32:25.990] And so, there's, I don't know, did we talk about... [32:25.990 --> 32:28.030] There's two different interfaces with CJDNS. [32:28.770 --> 32:30.950] There's this UDP interface and Ethernet interface. [32:31.170 --> 32:46.950] So, the Ethernet interface is pretty great because it just sort of sends out beacons, and anything else on the Ethernet network that receives them and is running CJDNS will respond, and they'll get connected to each other, and you don't have to configure anything. [32:47.190 --> 32:57.490] So, that's kind of what we're trying to do in a city mesh network, mesh local, so that it's just completely, like, there's no configuration required. [32:57.630 --> 32:58.690] Everyone can set the thing up. [32:58.690 --> 33:01.010] And then there's a UDP interface thing. [33:01.130 --> 33:12.190] And this is over UDP packets, but you can run it over the old Internet on IPv4, which is how HyperVorea is currently set up. [33:12.270 --> 33:15.910] So, it's people connecting to each other by giving them... [33:15.910 --> 33:19.570] by giving each other their IPv4 addresses and configuring it. [33:19.770 --> 33:23.030] But hopefully, in the future, it will be all configurationless. [33:23.250 --> 33:23.550] Yeah. [33:23.910 --> 33:34.470] So, I guess this would be a good point to sort of lay out, really, the basic steps, because, you know, we're alluding to certain pieces of the software, but really, you know, maybe it's terrible pain to set up, which it's not. [33:35.790 --> 33:38.450] So, let's just go over the steps, I guess, right now. [33:40.330 --> 33:54.670] So, let's say you want to get, in the typical case, like, let's say moving away a bit from the nanostation case, the more typical case will hopefully be with just like a typical plain old router that you can just whatever flash open Word on. [33:55.310 --> 34:02.190] So, we have the image, and we're going to make it available online soon, once you work a thing or two out. [34:02.470 --> 34:06.310] But all you have to do is, you get the image, you flash your router. [34:06.590 --> 34:06.830] Okay. [34:07.070 --> 34:12.890] And then once you do that, you go and you just connect, you make an ad hoc network. [34:13.510 --> 34:24.350] And then, so, the reason we're using ad hoc networks, and the reason we're using open Word, is because ad hoc networks allow people to connect to each other without anyone sort of being the master and being a sort of central point. [34:24.530 --> 34:32.530] So, you set up an ad hoc network, and then you tell CJDNS to listen to that interface, and that's it. [34:33.710 --> 34:44.550] And what will happen then is that through these Ethernet frames, CJDNS will just automatically find the people who are also on that ad hoc network, and automatically peer with them. [34:44.550 --> 34:59.730] So, it's just getting the ad hoc network set up, and once CJDNS is running, up and running and built, which it's already pre-built into these images, you just have to tell it, listen to the wireless interface, which is just one line, and that's it. [34:59.830 --> 35:00.590] It starts auto-peering. [35:00.970 --> 35:13.550] So, it's, I mean, pretty close, as close to zero configuration as you can get for now, that we've seen with any wireless network, is you just get the wireless network set up, and as long as you're associated with other people, you tell CJDNS, listen to that wireless interface, [35:13.550 --> 35:15.250] and it handles everything else for you. [35:15.610 --> 35:18.230] And so, from that point on, you just need to know people's addresses. [35:18.510 --> 35:31.530] And so, these are the kind of things that we eventually want to move forward and make, because things like DNS and all these other services that are integral to the Internet right now, and allow us to find other websites and other people, don't really translate so nicely to mesh nets. [35:31.710 --> 35:37.550] So, if anybody wants to be famous, you can work on a DNS solution for mesh nets. [35:37.990 --> 35:41.930] There are some out there that, you know, are viable contenders. [35:41.930 --> 35:45.730] There's things like Namecoin, which handles sort of like a, you know, decentralized... [35:46.450 --> 35:47.130] Yeah, sure. [35:47.210 --> 35:50.750] A round of applause for all these Bitcoin cool things happening. [35:50.970 --> 36:02.050] But it uses the blockchain, as do so many other things, but it uses the blockchain to essentially act like a distributed DNS, and you can just look up things on the blockchain and know where to go. [36:03.410 --> 36:04.190] Interesting solution. [36:04.190 --> 36:14.610] We're not sure how necessarily we feel about it, whether we're going to move forward with it, but it's one of the bigger problems that have to be solved for these kind of networks, because now there's no... we're moving away from central authority. [36:15.090 --> 36:19.970] And moving away from that means that somehow we need to mediate who's who and where anybody is. [36:20.170 --> 36:25.330] So if you want to know what name maps to what, right now there's no clear winner. [36:25.590 --> 36:27.430] So if you want to work on that, thanks. [36:31.690 --> 36:35.790] And this may be the first time I've been on a panel where the demo is actually working. [36:36.830 --> 36:38.610] So you guys are just asking too much. [36:38.750 --> 36:41.130] Like having security and the demo working at the same time? [36:41.290 --> 36:41.730] Nah, it's okay. [36:44.670 --> 36:48.670] Do you guys want to talk maybe briefly about kind of how else people can get involved? [36:49.650 --> 36:52.290] Yeah, I guess also with this interface we can show... [36:52.290 --> 36:52.470] Yeah. [36:53.310 --> 36:57.770] Like show them like just where you tell it to listen to the wireless interface. [36:58.650 --> 36:58.990] Which one? [36:59.170 --> 37:00.950] So they believe that it's not hard. [37:01.330 --> 37:02.170] The pure thing? [37:02.910 --> 37:03.630] Settings, yeah. [37:03.930 --> 37:04.610] And then at the bottom. [37:05.090 --> 37:07.170] Show them my IP, my private key again. [37:07.270 --> 37:08.270] Don't look, don't look, don't look. [37:11.750 --> 37:12.550] Okay, so... [37:12.550 --> 37:14.290] I mean you can... [37:14.910 --> 37:16.330] Okay, well it's at the bottom there. [37:17.090 --> 37:17.890] Ethernet interfaces. [37:18.190 --> 37:30.110] So all it is, those two interfaces there, it's just saying, hey, listen to BR-LAN, which is the open words sort of like Ethernet, like physical port interface. [37:30.590 --> 37:34.310] And then we're also telling it to listen to wlan0, which is the wireless interface. [37:34.610 --> 37:45.610] And if you tell it to accept and send beacons, it's going to handle everything for you as long as you know if you're wired up to somebody, you don't even have to have any sort of Internet or IP configuration set up. [37:45.610 --> 38:00.750] But if you're connected over some Ethernet cable to two CJDNS-enabled devices, because they work over Ethernet frames, you don't need even static IPs or any IPs to be assigned to any device as long as they're able to get Ethernet frames to each other. [38:01.150 --> 38:07.930] Yeah, this is the view of the Wireshark showing you the Ethernet frames pretty much going by on this network here. [38:07.930 --> 38:13.110] The Ether type is FC00, and it's just filtering on that. [38:13.850 --> 38:17.870] But yeah, you can see they're all just talking to each other. [38:19.030 --> 38:26.510] Yeah, so I guess we'll talk now about what we're actually doing besides just the software. [38:26.910 --> 38:32.350] We have weekly meetings where we meet virtually all Sundays. [38:34.050 --> 38:36.230] We may change it, but anyways, it's Sundays for now. [38:36.890 --> 38:39.550] And we meet in the Lower East Side at a cafe. [38:39.950 --> 38:42.270] It's kind of like revolutionary-seeming basement. [38:43.270 --> 38:45.550] Kind of hipster-y, but it's not that bad, I promise. [38:47.350 --> 38:52.550] And we meet there, and we help people who are new get set up, catch them up with what mesh nets are. [38:53.030 --> 38:54.110] People buy their hardware. [38:54.670 --> 38:57.190] If they're having trouble flashing it, we'll flash it for them. [38:58.410 --> 39:04.930] And so what we're doing now is what we just need people to do is get these devices and basically start peering with each other. [39:05.290 --> 39:07.870] The software is just about ready to go. [39:08.010 --> 39:17.130] We have these open work custom installations that you know you throw them on, add that line, you know you saw that line where you just add those two interfaces, and they start auto-peering. [39:17.410 --> 39:19.570] And so the software is there. [39:20.050 --> 39:26.250] The issue is now is getting people who are interested and who are kind of technically capable. [39:26.250 --> 39:31.170] You don't have to be necessarily, you know, I don't know, a ninja or whatever. [39:31.370 --> 39:32.510] People call themselves these days. [39:34.010 --> 39:35.110] You don't have to be that good. [39:35.250 --> 39:38.310] You can, especially if you come to the meetings, we're there to help you out. [39:38.410 --> 39:40.030] We're there to get the flashing happening. [39:40.190 --> 39:44.350] And now there are, you know, nice little gooey interfaces where you can configure everything. [39:44.590 --> 39:45.870] So the software is all there. [39:46.130 --> 39:48.010] So what this means is that we need to find people. [39:48.130 --> 39:49.570] And so this is the harder part. [39:49.670 --> 39:57.790] Like I said before, it's kind of chicken and egg problem where the whole mesh net idea and concept revolves around lots of people being near each other and connecting to each other. [39:57.930 --> 40:01.090] So now we need to get those people who are going to do that. [40:01.410 --> 40:04.110] So we have a few things. [40:04.210 --> 40:06.490] So we have those meetings for people to come out and find people near them. [40:06.510 --> 40:15.690] We also have a map up online that's using some software that was built by people in the project mesh net community that help us sort of map where people are. [40:16.330 --> 40:18.610] And you can put whatever other information you want there. [40:18.770 --> 40:20.550] So you see that we do have like little groups. [40:20.690 --> 40:26.030] You see those like little cluster green nodes where we have little pockets of people in different places. [40:26.210 --> 40:27.530] Like in Astoria, there's a few people. [40:27.530 --> 40:32.370] So if any of you are in Astoria, if any of you are around Park Slope, Lower East Side is where I am. [40:32.450 --> 40:34.730] So if anybody wants to be my peer, that'd be cool. [40:36.350 --> 40:37.490] But there's a few pockets. [40:37.490 --> 40:41.490] And so what we imagine is that people are going to start getting peered there. [40:41.630 --> 40:48.350] And then we're going to use these long distance ones to sort of then connect these longer distanced pockets. [40:48.550 --> 40:50.210] So we just need to find people. [40:52.010 --> 40:53.010] And we're trying. [40:53.370 --> 41:01.610] So if you want to come join our meetings, or you know people who are interested, or you want to jump on the mesh net for fun, you're welcome to come to our meetings, nycmesh.net. [41:01.750 --> 41:02.310] We're on Fnet. [41:02.530 --> 41:03.970] A lot of people don't seem to like Fnet. [41:04.110 --> 41:05.970] I don't know why. [41:05.970 --> 41:10.370] But we're on IRC, on Fnet, if you dare come. [41:10.750 --> 41:12.590] And we're always there. [41:12.710 --> 41:13.050] We're idling. [41:13.210 --> 41:16.890] You know, you ask any questions, you have any trouble, we're more than willing to help out. [41:20.710 --> 41:27.530] So just wanted to put this up just so you guys can see the actual URLs and stuff. [41:28.450 --> 41:35.710] So yeah, like Peter and Kurt were both saying, I mean, Hyperborea is a global network, but you can join an individual mesh net. [41:35.710 --> 41:37.350] It doesn't have to connect to Hyperborea even. [41:37.430 --> 41:38.770] You can just have a local mesh net. [41:40.030 --> 41:43.130] But yeah, these things are called, you know, mesh locals. [41:43.630 --> 41:47.490] And you can join up with them, you know, in pretty much whatever city you're in. [41:48.210 --> 41:53.410] So I mean, you know, some of the big projects right now are, you know, Seattle, here in New York, like we mentioned. [41:55.130 --> 41:57.090] Washington, but they're happening everywhere. [41:57.490 --> 41:57.790] You know what I mean? [41:58.110 --> 42:02.850] So you can go on projectmeshnet.org, you can find a list of mesh locals near you. [42:03.790 --> 42:08.690] If you're here in the city, like these guys are saying, check out nycmesh.net. [42:09.510 --> 42:12.410] It has all the meeting information up and how to connect there. [42:14.170 --> 42:20.490] Also, you know, if you don't have a mesh local, let's say you're in, you know, you're in a city that doesn't have one, start your own. [42:20.610 --> 42:21.550] That's what these guys did. [42:22.530 --> 42:28.730] You know, so you can, there's actually a pretty good tutorial on projectmeshnet.org on how to start one. [42:29.110 --> 42:32.330] So, you know, that's a big part. [42:32.410 --> 42:35.990] If you want to get involved, you know, either start one or join one. [42:36.150 --> 42:37.870] Also, you know, developing services. [42:38.530 --> 42:45.930] Like Peter was saying, you know, DNS, you know, it hasn't been, you know, hasn't been fully solved for mesh nets yet. [42:46.150 --> 42:48.470] So, you know, try building your own system. [42:48.750 --> 42:51.330] Try playing around, especially if you're a developer. [42:51.550 --> 42:52.150] You know what I mean? [42:52.330 --> 42:54.850] Make it so that people have cool stuff to do on the network. [42:55.990 --> 42:59.410] And then here are some links to, you know, some of the places that we were talking about. [43:00.290 --> 43:02.470] You know, there are subreddits about this. [43:02.610 --> 43:10.230] Actually, the kind of, the Hyperborea kind of started on, but we're kind of, you know, moving away from that particular subreddit. [43:10.450 --> 43:15.810] So, there are also, you know, like I mentioned, you know, meshnet users who are on IRC, on Fnet. [43:16.150 --> 43:20.370] You can check out NYC Meshnet, Project Meshnet, CJDNS. [43:21.950 --> 43:25.390] You know, all of these are kind of ways to get involved if you want to learn more. [43:26.730 --> 43:27.050] Yeah. [43:27.310 --> 43:28.510] So, I guess we'll go to questions. [43:29.890 --> 43:30.750] Thanks for listening. [43:38.900 --> 43:40.140] Thank you, guys. [43:41.100 --> 43:41.660] Lights, please. [43:44.560 --> 43:57.860] The FCC, they allow higher transmit power for specifically point-to-point wireless systems. [43:57.860 --> 44:12.260] It's like four watts EIRP versus just the regular one watt that we are allowed to use with Wi-Fi. [44:13.800 --> 44:17.500] So, that means that you specifically need one partner. [44:17.780 --> 44:27.580] Is there any kind of, like, database of, like, people looking to peer with one other person for those higher, like, single links? [44:28.840 --> 44:34.360] Are you using those or are people doing that now with the Mesh or with your Mesh? [44:35.880 --> 44:48.480] What's mostly happening now is people are using Wi-Fi mostly because they want to leave it open for other people who then find that there's a node near them and want to jump on, they can jump on that network as opposed to using just the straight one-to-one links. [44:48.480 --> 44:48.920] Right. [44:48.920 --> 44:50.580] But no one's opposed to it. [44:50.740 --> 44:56.060] So, if you, you know, live somewhere and you want to connect to one other person, you're more than welcome to. [44:56.960 --> 44:58.100] There's all kinds of setups. [44:58.360 --> 45:00.740] And I think that was the point that we were trying to illustrate that. [45:00.940 --> 45:10.840] This is what we're suggesting, but honestly, if you want to use smoke signals and have CJDNS somehow, I don't know, use OpenCV to, like, grab the smoke signals, then you can do that. [45:12.980 --> 45:13.820] That's up to you. [45:13.980 --> 45:15.020] If you want to build that, you can. [45:15.500 --> 45:17.080] How you make the link doesn't matter. [45:17.080 --> 45:20.260] If you use Ethernet cable, you use Wi-Fi, you use direct links, it doesn't matter. [45:20.520 --> 45:21.800] So, you're more than welcome to. [45:21.940 --> 45:23.760] And you can jump on IRC if you want to find somebody. [45:23.960 --> 45:24.260] Okay. [45:24.340 --> 45:26.140] So, it's not like you have a database online. [45:26.260 --> 45:28.500] It's like, hey, I want to peer with somebody. [45:28.600 --> 45:32.580] This map is pretty much, like, these are people that are interested in peering. [45:32.820 --> 45:35.640] So, if you found someone close enough to you, you could talk to them. [45:36.000 --> 45:36.140] Cool. [45:36.140 --> 45:36.520] Thank you. [45:37.020 --> 45:37.340] Yeah. [45:37.520 --> 45:37.880] Thanks. [45:38.360 --> 45:38.880] Thanks, man. [45:41.400 --> 45:45.520] How close is this to actually being fully functional as a replacement for a local network? [45:46.160 --> 45:52.940] Specifically, if I connect to this mesh local, how do I get out to the old Internet? [45:54.860 --> 46:06.580] So, actually, built into CJDNS is something that allows you to basically put someone's public key in and you're able to provide your Internet over CJDNS to them if you're connected to the Internet. [46:06.580 --> 46:13.720] So, let's say I have some private server somewhere and you give me your public key, I can provide you my Internet over CJDNS. [46:14.360 --> 46:14.920] And that's built in. [46:15.040 --> 46:21.680] So, that's one of the steps that we can move forward is that if you want to sort of gain traction for this new network, we can provide this sort of transition service. [46:22.280 --> 46:26.420] Maybe provide access to the old Internet while still bringing people to the new network. [46:26.420 --> 46:27.500] And that's built right in as well. [46:27.660 --> 46:30.180] So, if you wanted to do something like that, you could. [46:30.460 --> 46:32.200] And you can use it for a local network as well. [46:32.280 --> 46:32.980] It works just fine. [46:35.180 --> 46:35.520] So... [46:35.520 --> 46:36.680] Actually, there's a huge line. [46:36.840 --> 46:37.160] I'll just pass it. [46:37.160 --> 46:37.400] All right. [46:37.500 --> 46:37.680] Cool. [46:37.880 --> 46:38.060] Thanks. [46:39.720 --> 46:40.860] Hopefully, a very quick one. [46:41.060 --> 46:51.940] But the eventual goal of the mesh net will obviously be to completely avoid any use of existing ISP infrastructure and any corporate controlled structure. [46:51.940 --> 46:58.200] And that will obviously work, particularly in a city like New York and also other urban areas, say, along the East Coast. [46:58.600 --> 47:04.300] But obviously, there's going to be problems with, say, intercontinental links through to the UK, Europe. [47:04.740 --> 47:05.260] Right. [47:05.420 --> 47:10.020] It's going to be quite difficult to run a wireless link without using some form of corporate infrastructure. [47:10.340 --> 47:10.740] So... [47:10.840 --> 47:12.620] What sort of... [47:12.620 --> 47:16.960] What sort of way around that problem might you be able to... [47:16.960 --> 47:28.140] I mean, one thing that we're thinking is that, you know, ideally and hypothetically, as the mesh net moves forward, the Internet will become more of a backbone. [47:28.540 --> 47:29.020] And so hopefully... [47:29.580 --> 47:31.500] I mean, someone's going to need to bridge that gap. [47:31.500 --> 47:32.900] And it's going to be some organization. [47:33.320 --> 47:44.720] So the idea is that we'll have some trusted organization somehow bridge that gap and be just like the backbone that connects mesh locals as opposed to having everybody on that network. [47:44.720 --> 47:46.760] It's more just to connect city to city. [47:47.200 --> 47:48.020] And so hopefully... [47:48.020 --> 47:53.760] I think there's no way to avoid having some sort of organizational structure handle that. [47:53.980 --> 47:55.540] But, you know, hopefully we get a good one. [47:55.560 --> 47:56.000] That's good. [47:56.520 --> 47:57.640] But the other... [47:57.640 --> 47:58.640] Just another quickly... [47:58.640 --> 48:02.040] Just another thing I want to quickly put in is because the first person... [48:02.040 --> 48:04.720] The first person to raise a question did raise FCC regulations. [48:05.840 --> 48:05.920] Yep. [48:06.080 --> 48:07.460] Which limit transmission power. [48:07.600 --> 48:14.500] Now, is there a possibility that in the future, if they find that mesh nets are too much of a... [48:14.500 --> 48:20.520] And they are losing too much control, might they actually change the standards to reduce legal transmission power? [48:20.760 --> 48:24.700] Meaning that mesh nets either have to become more dense to remain functional. [48:25.340 --> 48:28.960] Or basically meaning you... [48:28.960 --> 48:30.340] Today, if you can transmit... [48:30.340 --> 48:35.500] If you can use four watts of transmission power, you can go, say, a few miles. [48:35.500 --> 48:41.580] But if in future they reduce that permission down to, say, half a watt, or one watt, or half a watt... [48:41.580 --> 48:45.900] That will reduce the distance significantly, thus breaking some of the mesh net system. [48:48.400 --> 48:50.460] I mean, it's hard to say what they'll do in the future. [48:50.800 --> 48:54.440] There's no sort of hint that they're going to be necessarily strict. [48:54.440 --> 48:59.080] These rules seem to be kind of stable-ish for now. [48:59.220 --> 49:03.640] And I haven't heard any rumors of lowering power restrictions. [49:03.940 --> 49:06.600] But we're not too worried on that front. [49:06.760 --> 49:08.960] And if it happens, we'll work something out. [49:09.100 --> 49:09.940] That's the cool part. [49:10.040 --> 49:11.600] You know, we're not dedicated to any one piece. [49:12.000 --> 49:12.780] We'll solve it. [49:13.220 --> 49:13.500] Brilliant. [49:13.680 --> 49:14.200] Thank you very much. [49:14.360 --> 49:14.660] Thank you. [49:15.660 --> 49:16.260] No worries. [49:17.180 --> 49:17.960] Questions abound. [49:18.060 --> 49:19.020] This was a wonderful talk. [49:19.920 --> 49:20.060] Thanks. [49:20.060 --> 49:21.600] I'll stick with a technical question. [49:21.600 --> 49:22.720] Those are the easy ones, right? [49:25.460 --> 49:27.640] So, you're talking about CJBNS. [49:27.860 --> 49:34.240] This is a piece of software that has three flaws that are serious problems for the security-minded. [49:34.460 --> 49:36.120] It's written in a very unsafe language. [49:36.380 --> 49:39.020] It is based on a white paper that has not been peer-reviewed. [49:39.140 --> 49:42.460] And it uses cryptographic primitives and constructs that have not been peer-reviewed. [49:43.860 --> 49:48.460] Rather than frame this as a, this sucks and you shouldn't use it, I'm going to be positive. [49:48.460 --> 49:54.520] What kinds of improvements are in the pipeline such that the software can be considered safe for those of us that care about security? [49:57.200 --> 49:57.860] Well, okay. [49:58.000 --> 50:03.100] So, CJDNS, it's the piece that we're using, but we're not necessarily terribly involved in its development. [50:04.600 --> 50:10.240] It's a guy named CJD, very smart guy and a very cool guy from what I hear. [50:10.240 --> 50:13.660] I mean, he's written most of the library himself. [50:14.020 --> 50:22.060] And so, as far as reviewing and getting other people involved, there just haven't been many other people jumping in and getting involved with it. [50:22.940 --> 50:23.340] So... [50:23.340 --> 50:24.100] There's about 30 [50:27.970 --> 50:28.350] notes. [50:28.690 --> 50:29.550] Well, okay. [50:29.630 --> 50:30.170] I mean, okay. [50:30.310 --> 50:32.230] Involved in its development, but I mean, I think... [50:33.490 --> 50:33.970] Yeah. [50:34.250 --> 50:38.270] Well, we can talk after if you have an issue with anything I'm saying. [50:39.870 --> 50:41.510] But originally it was... [50:41.510 --> 50:41.990] Hmm. [50:42.790 --> 50:49.450] To go back to you, and so what's in the pipeline, I can't say we necessarily know, because we're not actively involved in its development. [50:50.670 --> 50:51.090] So... [50:51.090 --> 50:51.550] Okay. [50:52.150 --> 50:54.570] But I would say, too, like, it's a protocol. [50:54.890 --> 51:00.070] If there's flaws in the protocol, I'm sure Caleb would want to fix those. [51:00.170 --> 51:07.310] And then if there's flaws with the software, you can, you know, write your own software that uses the same protocol. [51:07.510 --> 51:07.650] Right. [51:07.650 --> 51:09.710] I mean, that's definitely part of getting involved in this, too. [51:09.930 --> 51:15.150] If you are a developer and you see issues with CJDNS, like, let those developers know. [51:15.290 --> 51:16.430] Try to help patch them. [51:16.570 --> 51:18.990] I mean, that's kind of the open-source spirit, right? [51:19.090 --> 51:29.970] If you, you know, if you see something that's broken, you know, it's, you know, it's every user's, you know, goal to try to, you know, be a developer if they can and try to fix those issues. [51:30.150 --> 51:32.630] But, well, I mean, we're also not protocol... [51:32.630 --> 51:35.070] I mean, we're not trying to say, use this protocol. [51:35.070 --> 51:37.790] It's, you know, it's one protocol we can use. [51:37.910 --> 51:42.050] If somebody writes a better protocol or if there's a better one already out there, even better. [51:42.330 --> 51:42.410] Right. [51:42.930 --> 51:43.210] Okay. [51:43.230 --> 51:45.850] So, yeah, I guess we're about done here. [51:45.870 --> 51:48.550] So, if you have any questions or want to talk after, you're welcome to come up. [51:48.670 --> 51:49.270] I'll be in the back. [51:49.370 --> 51:50.010] We'll be in the back. [51:50.590 --> 51:50.950] Thanks. [51:50.950 --> 51:51.730] All the way out the back, actually. [51:51.810 --> 51:51.890] Okay. [51:52.210 --> 51:53.790] All the way out in the back. [51:53.790 --> 51:54.970] That way we don't crap the room. [51:55.170 --> 51:55.930] Thank you guys so much. [51:56.110 --> 51:56.130] Just look for me. [51:56.150 --> 51:56.350] Thanks. [51:56.350 --> 51:56.990] Thanks for coming.