Building DIY Community Mesh Networks (2600 Article)

Now that the article has been printed in 2600 magazine, Volume 33, Issue 3 (2016-10-10), I’m able to republish it on the web. The article below is my submission to 2600 with some slight formatting changes for hyperlinks.

Building DIY Community Mesh Networks
By Mike Dank
Famicoman@gmail.com

Today, we are faced with issues regarding our access to the Internet, as well as our freedoms on it. As governmental bodies fight to gain more control and influence over the flow of our information, some choose to look for alternatives to the traditional Internet and build their own networks as they see fit. These community networks can pop up in dense urban areas, remote locations with limited Internet access, and everywhere in between.

Whether you are politically fueled by issues of net neutrality, privacy, and censorship, fed up with an oligarchy of Internet service providers, or just like tinkering with hardware, a wireless mesh network (or “meshnet”) can be an invaluable project to work on. Numerous groups and organizations have popped up all over the world, creating robust mesh networks and refining the technologies that make them possible. While the overall task of building a wireless mesh network for your community may seem daunting, it is easy to get started and scale up as needed.

What Are Mesh Networks?

Think about your existing home network. Most people have a centralized router with several devices hooked up to it. Each device communicates directly with the central router and relies on it to relay traffic to and from other devices. This is called a hub/spoke topology, and you’ll notice that it has a single point of failure. With a mesh topology, many different routers (referred to as nodes) relay traffic to one another on the path to the target machine. Nodes in this network can be set up ad-hoc; if one node goes down, traffic can easily be rerouted to another node. If new nodes come online, they can be seamlessly integrated into the network. In the wireless space, distant users can be connected together with the help of directional antennas and share network access. As more nodes join a network, service only improves as various gaps are filled in and connections are made more redundant. Ultimately, a network is created that is both decentralized and distributed. There is no single point of failure, making it difficult to shut down.

When creating mesh networks, we are mostly concerned with how devices are routing to and linking with one another. This means that most services you are used to running like HTTP or IRC daemons should be able to operate without a hitch. Additionally, you are presented with the choice of whether or not to create a darknet (completely separated from the Internet) or host exit nodes to allow your traffic out of the mesh.

Existing Community Mesh Networking Projects

One of the most well-known grassroots community mesh networks is Freifunk, based out of Germany, encompassing over 150 local communities with over 25,000 access points. Guifi.net based in Spain, boasts over 27,000 nodes spanning over 36,000 km. In North America we see projects like Hyperboria which connect smaller mesh networking communities together such as Seattle Meshnet, NYC Mesh, and Toronto Mesh. We also see standalone projects like PittMesh in Pittsburgh, WasabiNet in St. Louis, and People’s Open Network in Oakland, California.

While each of these mesh networks may run different software and have a different base of users, they all serve an important purpose within their communities. Additionally, many of these networks consistently give back to the greater mesh networking community and choose to share information about their hardware configurations, software stacks, and infrastructure. This only benefits those who want to start their own networks or improve existing ones.

Picking Your Hardware & OS

When I was first starting out with Philly Mesh, I was faced with the issue of acquiring hardware on a shoestring budget. Many will tell you that the best hardware is low-power computers with dedicated wireless cards. This however can incur a cost of several hundred dollars per node. Alternatively, many groups make use of SOHO routers purchased off-the-shelf, flashed with custom firmware. The most popular firmware used here is OpenWRT, an open source alternative that supports a large majority of consumer routers. If you have a relatively modern router in your house, there is a good chance it is already supported (if you are buying specifically for meshing, consider consulting OpenWRT’s wiki for compatibility. Based on Linux, OpenWRT really shines with its packaging system, allowing you to easily install and configure packages of networking software across several routers regardless of most hardware differences between nodes. With only a few commands, you can have mesh packages installed and ready for production.

Other groups are turning towards credit-card-sized computers like the BeagleBone Black and Raspberry Pi, using multiple USB WiFi dongles to perform over-the-air communication. Here, we have many more options for an operating system as many prefer to use a flavor of Linux or BSD, though most of these platforms also have OpenWRT support.

There are no specific wrong answers here when choosing your hardware. Some platforms may be better suited to different scenarios. For the sake of getting started, spec’ing out some inexpensive routers (aim for something with at least two radios, 8MB of flash) or repurposing some Raspberry Pis is perfectly adequate and will help you learn the fundamental concepts of mesh networking as well develop a working prototype that can be upgraded or expanded as needed (hooray for portable configurations). Make sure you consider options like indoor vs outdoor use, 2.4 GHz vs. 5 GHz band, etc.

Meshing Software

You have OpenWRT or another operating system installed, but how can you mesh your router with others wirelessly? Now, you have to pick out some software that will allow you to facilitate a mesh network. The first packages that you need to look at are for what is called the data link layer of the OSI model of computer networking (or OSI layer 2). Software here establishes the protocol that controls how your packets get transferred from node A to node B. Common software in this space is batman-adv (not to be confused with the layer 3 B.A.T.M.A.N. daemon), and open80211s, which are available for most operating systems. Each of these pieces of software have their own strengths and weaknesses; it might be best to install each package on a pair of routers and see which one works best for you. There is currently a lot of praise for batman-adv as it has been integrated into the mainline Linux tree and was developed by Freifunk to use within their own mesh network.

Revisiting the OSI model again, you will also need some software to work at the network layer (OSI layer 3). This will control your IP routing, allowing for each node to compute where to send traffic next on its forwarding path to the final destination on the network. There are many software packages here such as OLSR (Optimized Link State Routing), B.A.T.M.A.N (Better Approach To Mobile Adhoc Networking), Babel, BMX6, and CJDNS (Caleb James Delisle’s Networking Suite). Each of these addresses the task in its own way, making use of a proactive, reactive, or hybrid approach to determine routing. B.A.T.M.A.N. and OLSR are popular here, both developed by Freifunk. Though B.A.T.M.A.N. was designed as a replacement for OLSR, each is actively used and OLSR is highly utilized in the Commotion mesh networking firmware (a router firmware based off of OpenWRT).

For my needs, I settled on CJDNS which boasts IPv6 addressing, secure communications, and some flexibility in auto-peering with local nodes. Additionally, CJDNS is agnostic to how its host connects to peers. It will work whether you want to connect to another access point over batman-adv, or even tunnel over the existing Internet (similar to Tor or a VPN)! This is useful for mesh networks starting out that may have nodes too distant to connect wirelessly until more nodes are set up in-between. This gives you a chance to lay infrastructure sooner rather than later, and simply swap-out for wireless linking when possible. You also get the interesting ability to link multiple meshnets together that may not be geographically close.

Putting It Together

At this point, you should have at least one node (though you will probably want two for testing) running the software stack that you have settled on. With wireless communications, you can generally say that the higher you place the antenna, the better. Many community mesh groups try to establish nodes on top of buildings with roof access, making use of both directional antennas (to connect to distant nodes within the line of sight) as well as omnidirectional antennas to connect to nearby nodes and/or peers. By arranging several distant nodes to connect to one another via line of sight, you can establish a networking backbone for your meshnet that other nodes in the city can easily connect to and branch off of.

Gathering Interest

Mesh networks can only grow so much when you are working by yourself. At some point, you are going to need help finding homes for more nodes and expanding the network. You can easily start with friends and family – see if they are willing to host a node (they probably wouldn’t even notice it after a while). Otherwise, you will want to meet with like-minded people who can help configure hardware and software, or plan out the infrastructure. You can start small online by setting up a website with a mission statement and making a post or two on Reddit (/r/darknetplan in particular) or Twitter. Do you have hackerspaces in your area? Linux or amateur radio groups? A 2600 meeting you frequent? All of these are great resources to meet people face-to-face and grow your network one node at a time.

Conclusion

Starting a mesh network is easier than many think, and is an incredible way to learn about networking, Linux, micro platforms, embedded systems, and wireless communication. With only a few off-the-shelf devices, one can get their own working network set up and scale it to accommodate more users. Community-run mesh networks not only aid in helping those fed up with or persecuted by traditional network providers, but also those who want to construct, experiment, and tinker. With mesh networks, we can build our own future of communication and free the network for everyone.

 

I’m in 2600 Magazine

As of the Autumn 2016 issue, I now have an article appearing in 2600: The Hacker Quarterly! My article is titled “Building DIY Community Mesh Networks,” and covers topics in building and organizing local mesh networks.

33-3_cover_large

The issue can be purchased in Barnes & Noble stores, as well as physically or digitally through the 2600 site and Amazon.com. I will shortly be making the article available online as well.

 

The Evolution of Digital Nomadics

This article was originally written for and published at N-O-D-E on October 18th, 2016. It has been posted here for safe keeping.

THE EVOLUTION OF DIGITAL NOMADICS

In the Autumn of 1983, Steven K. Roberts pedaled off on a recumbent bicycle and pioneered a new revolution in the way people worked.

exhoofn

Stuck in the drudgery of suburban Ohio, Steve was bored. He had many possessions, a house, and work as a technology consultant and freelance writer. Steve desired adventure and felt like taking a risk, so he sold off all of his possessions, put his house on the market, cut ties with friends and family, and gave up his steady employment. He sacrificed the security he had built up over the years and invested in a custom bicycle, the “Winnebiko” which he would ride 10,000 miles across the U.S. for the next 18 months. “My world was no longer limited by the constraints of time and distance—or even responsibility. The thought was both delicious and unsettling, and I suddenly realized, alone in this unfamiliar city, that I was as close to ‘home’ as I would be for a long time,” Steve wrote in a book about his travels, Computing Across America, published in 1988.

The Winnebiko was not your ordinary bicycle. Apart from the custom frame and hand-picked parts, Steve outfitted his rig with solar panels, lights, radios, a security system, and most importantly a TRS-80 portable computer. Traveling the country from couch to hostel and everywhere in-between, Steve continued to work as a freelance writer, documenting his adventures. Jacking into borrowed phone lines for Internet access in the late night or writing from the comfort of an abandoned chair on the side of a snowy mountain, Steve was working in a way that was unconventional for the time.

Steve coined a term for himself, the “technomad,” combining the concepts of high-technology with traditional nomadics (the latter possibly being influenced in-part by nomadics as they were presented in Stewart Brand’s Whole Earth Catalog, a counter-culture publication promoting self-sufficiency and the do-it-yourself attitude in 1968). Later, Steve would construct more complex and technologically-enhanced bicycles for future long-term journeys.

The concept of “telecommuting” was not new in 1983, as the term had been created a decade earlier by Jack Niles, former NASA engineer, to describe remote work done via dumb terminal. By the 1990’s, after Steve’s original adventure, telecommuting had taken the world by storm and continued to grow. By the early 2010’s, almost half of the U.S. population reported to be working remotely at least part time. Remote work was starting to go mainstream.

But then there are people like Steve. What became of this movement to leave it all behind and work from the open road? By the late 1990’s we saw the use of the phrase “Digital Nomad” in the Makimoto and Manners book of the same name to explore the concept of digital nomadics and determine its sustainability. The infrastructure to support the lifestyle was improving as well. We saw the inclusion of WiFi technology in laptop computers and the rise of payment systems such as PayPal to support a generation of online-only workers on-the-move.

As time progressed, we only saw more of the tech-savvy convert to the rambling lifestyle, with bolder individuals traveling all over the world, settling down for days, weeks, or months at a time before picking up and starting all over. Today, more companies are providing this opportunity to their employees, with some outfits never actually meeting their workers face-to-face. Employees enjoy the flexibility while employers enjoy cherry-picking applicants from a larger pool and reduced overhead costs previously spent in office space. Various communities have popped up such as /r/digitalnomad (https://www.reddit.com/r/digitalnomad) and /r/vandwellers (https://www.reddit.com/r/vandwellers) to offer support for the grizzled vagabonds and tips to the bright-eyed newcomers. Here, you may find advice for what to carry, how to travel on a shoe-string budget, and lists of companies that are nomad-friendly.

In popular culture, we see the idea of the digital nomad becoming more prevalent. For example, Ernest Cline’s 2011 novel Ready Player One features the character Aech who lives in and works out of a recreational vehicle. As the future comes into view, we can only expect more people to work remotely and live simply, embracing the freedom of change and fighting to avoid complacency. The technology is only becoming more accommodating as equipment becomes smaller, faster, and reliably connected in even the most rugged of situations. We not only see a rise in letting employees work where they want, but also when they want. Now that a network connection can exist within a jacket pocket, we are on the verge of the 24/7 worker, always on call. When your office isn’t anywhere, it’s everywhere. Some day soon, we may see digital nomads living in self-driving vehicles that methodically navigate the city limits while the occupant eats, sleeps, and works. Similar to Don DeLillo’s Cosmopolis, wherein the protagonist spends most of his day conducting business out of his moving soundproof, bulletproof limousine—a rolling fortress filled with computers and television screens—we may see this concept coming to fruition without the human behind the wheel.

As for Steve, he is still living the technomadic life, but is more drawn to the offerings of the water as opposed to the open road. “I’m now immersed in nautical projects, as well as building some substrate-independant technomadic tools,” Steve writes to me after I purchased a handful of issues of The Journal of High-Tech Nomadness, Steve’s own long out-of-print paper periodical.

Whether you do most of your work in an office or a coffee shop, you cannot deny that things are changing for the modern employee as they become more entwined with technology. “I’m riding a multi-megabyte Winnebiko with dozens of communications options, and more wonders lie just ahead,” Steve writes after upgrading his bicycle for his second journey. “[I]t is no longer very difficult to be a deeply involved, productive citizen of the world while wandering endlessly. Because once you move to Dataspace, you can put your body just about anywhere you like.”

––
BY MIKE DANK

 

The Hermicity Interview – Drones, DAO, & Deliverable Soylent

This article was originally written for and published at N-O-D-E (since removed) on May 20th, 2016. It has been posted here for safe keeping.

THE H E R M I C I T Y INTERVIEW: DRONES, DAO, & DELIVERABLE SOYLENT

READING TIME: 10-12 MINUTES

ca3df68018d9a6fe5cd76b8df334fd11c39fa9b5bf35c8eb39da1f87adafc0d0

I recently spoke with John Dummett, the creator of H E R M I C I T Y, a project aiming to send packages of Soylent by drone to hermits living in remote areas who pay via smart contract through Ethereum.

John and I started exchanging messages on Reddit after I spotted a link he posted about his project in a decentralization-themed subreddit. Speaking with John, I could immediately pick up that he was a person who valued his privacy and his relationships. He was not, however, a shy person regarding his passions. Every question I posed was answered with an enthusiastic, complete explanation, welcome to assorted follow-ups and forgiving to my novice understanding of select technologies.

We waxed rhapsodic about the project and its bright potential. Often late at night for me in a dark room lit only by monitor glow, early afternoon for him the next day, I picked his brain and explored the radical concepts that seemed to ebb and flow organically without inhibition.

An 18-year-old Australian native, John already has professional work experience with block chain technology and a dream to change the world. He believes that the future we have been waiting for is now, and he doesn’t want anyone to miss it.

[N-] Could you explain what H E R M I C I T Y is for those who may not have heard of it?

[JD] H E R M I C I T Y is going to allow people to live alone. Up until very recent technological advancements, we were social creatures by necessity as living alone was costly, unsafe and uncomfortable. We’re going to make living alone accessible.

As for some concrete details, here is part of our general road-map and practical details section that will be revealed on the upcoming revamped website. We are going to develop a parent DAO to all the Hermicites. Members of the community will be able to submit proposals for a Hermicity to this DAO. They will use a standardised template that we will develop. The proposal will require information on where the Hermicity will be, how the land will be acquired (rent or buy, etc.), proof that the current custodian of that land is willing to have a Hermicity built on it, what type of micro-dwellings will be built on said land, how much they will cost, how many residencies to said Hermicity are up for grabs, the cost of the drones and other things to be delivered (Soylent, water, etc.)

From here, the total cost of the project is divided by the amount of residencies up for grabs and then there is a time-frame given for the project to be funded. Through multi-sig addresses we are going to build an auctioning system for people to bid on the residencies inside given Hermicities.

For instance, say I go and arrange for someone with a huge, beautiful and remote farm to let me have four hermits living on it for a cost of $20,000 a year. Then I find a company that can build a simple shack-like microdwelling for $20,000 each. (I haven’t done the modelling yet but [say] Soylent, water, other items for delivery cost $20,000 and then the drone itself is $10,000. Total cost to run the Hermicity for 1 year is $70,000. The cost of the residencies is $17,500.) I’d fill out the proposal form and submit it to the parent DAO.

The parent DAO then generates an array of ether addresses for this given proposal, of which the top 4 will be successful (as long as they each hold at least $17,500) and the rest of the addresses will be refunded. The ether funds then move from those addresses to begin paying for the Hermicity to be built and the winners get their residencies.

Unless the proposal for the relevant Hermicity has a plan of what to do with the extra funds (for instance you could say that if someone bids $25,000 then they can get a “better” microdwelling) then the extra funds will simply go to the parent DAO in order to fund the continued development of the entire project. Some of these excess funds could also be used for our team to sponsor people looking to create proposals.

We hope the community is passionate enough about this that they go out and try to create Hermicities all over the world. The new site revamp will include a forum section so we can start discussing what these first proposed Hermicities may look like.

It’s important to have this proposal process rather than me and my team making them all ourselves. By getting out of the way, the free market will ensue – we are not going to stop people from making any kind of proposal they like. Perhaps a Hermicity with more expensive residencies may allow for hot cooked meals to be drone-lifted to the hermits.

The reason I used Soylent as the example on the site is that it is nutritionally complete and cost effective, and [I] imagine that the first Hermicities will probably be as cost efficient and accessible as possible. Although there will probably eventually be more elaborate and fancy Hermicities like I described above, initially I think the market for Hermicities will mostly be asking for the most cost effective yet complete package as possible so Soylent’s nutritional balance and low cost seems perfect.

Furthermore, the same can be said for other parts of the Hermicity. Initial Hermicities may be hand-made shacks with limited features, whereas eventually you will see proper microdwellings with full blown heating and cooling, solar power, fast Internet connection, etc. It will be interesting to see at what comfort point the market starts at, though. The beauty is that what we are trying to build will allow other people to figure this out for us – [I] imagine we could have many Hermicities popping up all over the world before long.

[N-] How did you get the idea for H E R M I C I T Y?

[JD] For a long time I have been interested in making the hermit lifestyle more accessible and now that it looks like the technology is finally here to do it – for the first time in human history – it just made sense to execute this idea and try to get this done.

I’ve always been interested in the idea of living alone. This keen interest is really the result of a heap of things that have happened in my life. But really H E R M I C I T Y is at the intersection of a lot of really interesting technology and social movements. There is a lot of fascinating potential [for] this project when we think about it. What will [allow] people to easily spend time alone untapped? How low can we get the price of a residency, and how many people will be interested? If we no longer need each other to survive and people are satisfied living alone and comfortably with an Internet connection, what is the future of the nation state? (This last point is in my eyes the logical final state of Ethereum – technology autonomously running everything in a fashion that no human has to work or gets left behind.) Could the first settlement on Mars be a Hermicity?

Although I am sure we will be able to implement a lot of these ideas successfully – H E R M I C I T Y as a project is already satisfying the Ethereum community just as a thought piece that symbolizes what we are doing, what we value, and [what we] envision the future of the world could look like.

Outside of web development and design – I am an artist, writer and philosopher and I think this project reflects that.

[N-] Do you yourself have interest in living in solitude as a hermit? What advantages do you see with this lifestlye?

[JD] Human beings are social creatures – by necessity. For some of us, we are not social just by necessity, we are extroverts and enjoy each other’s company and being actively engaged with the people around us. Other people [are] only social by necessity, prefering to be alone and do not [enjoy] direct contact with other people.

The necessity part comes in because until very recently we have not had the technological capability to easily, comfortably and safely live alone. New technology makes the hermit lifestyle accessible.

The question Hermicity poses is, “how many people are interested in this now, and how many more people will be interested in this in the future?”

Almost every great thinker has spent much time alone. I know [that] the time I have spent alone has made me a wiser, more intelligent person. Perhaps by making [secclusion] more accessible we can unlock a lot of human potential that is standing idle at the moment, locked away in bodies that are too distracted by the other bodies around them and are therefore unable to look in and unlock their unique ideas and energy.

[N-] Where is H E R M I C I T Y in the development cycle? How far away would you say we are from seeing a deliverable?

[JD] Admittedly it’s still very early days, but I am working hard on the revamped site which will better explain what we are trying to do, how we will do it, and why it is important.

I have had a lot of people contacting me over the last week and will be looking to put together a proper team and road-map. Eventually I would like to work on this full time. Once the parent DAO has been developed along with the other technical framework and proposal template work completed, it will be up to the community we have built up to start delivering. Obviously we will be pretty instrumental in supporting them with this.

[N-] How many people are working on the project, what are their backgrounds?

[JD] At the moment we have three people working on the project. I am a front-end web developer and designer. We have another web developer and community manager who has extensive experience running events and managing communities. Finally, we have a cloud rapper and philosopher – we believe it is important to build a really optimistic and positive culture around our DAO because otherwise success will be much harder to attain. (Anything is possible, optimism and energy is what allows you to push harder and further.)

As I said before many more people have reached out. I will be contacting these people to try to build a small and efficient dev team. Thankfully I have been contacted by people with skills across a wide range of areas, most importantly in decentralised programming. We should be able to get that parent DAO up and running soon.

[N-] How did you get your start with blockchain technologies?

[JD] Last year I worked for one year with CoinJar, which is Australia’s largest bitcoin exchange. Working on the team there, we were constantly thinking about what to do next and a huge part of that is thinking about what’s possible using the blockchain.

The bitcoin blockchain and its potential is too limited, of course it’s always going to be amazing given that it was the first and it kicked started this whole movement – but Ethereum is superior in terms of technology and [the] core developer team so it’s where the best blockchain projects are going to happen, not bitcoin.

[N-] Tell me more about the technology, what are the advantages of adopting the DAO (decentralized autonomous organisations) and smart contracts? How will you interact with the drones?

[JD] Utilising Ethereum as the backbone of this project is so important, we couldn’t do this without Ethereum. DAOs offer interdependance – a perfect middle ground where individuals voluntarily interact with each other on terms that suit them, but still [tapping that] magic of when we work together. The beauty of DAOs is that they allow people to work together without compromising on their independence. Therefore, DAOs are the future – I believe a world run on DAOs is one that offers scalable order by allowing people to indirectly work together and to automate sharing of resources so that no one is left behind.

The parent DAO that I spoke of earlier with its world first actioning code will be a groundbreaker. The drone deliveries will be triggered by ether transactions as seen here -> https://www.youtube.com/watch?v=V_3rcP2Duv0

When people submit proposals to the parent DAO it will be up to perspective residents to look through the proposal and ensure that everything is up to scratch. If the proposal is successful the proposer will then build the Hermicity. We intend that we will provide DAPP (decentralized app) code to run the drone deliveries of Soylent (and other needs as specified in the proposal) in an autonomous fashion. Live by the DAO.

[N-] I’m wondering how this model would work with self-sufficiency. Would each hermit be beholden to whomever set up the Hermicity for a location, or could the actual inhabitants pool their resources on the drones/deliveries themselves? For example, could there be a situation where after you receive a delivery, you then charge the drone up for the next person, and then be rewarded for doing so automatically?

[JD] Each Hermicity will work differently depending on the proposal that was at the root of it being built. Some will be bare bones, others will be more sophisticated. It will be up to the proposers and the wants and needs of the market of hermits that develop.

I could tell you what I think will happen, but I would prefer to encourage the community to stay as open minded as possible. I’m looking forward to the different ideas that develop and what becomes de facto standards. I’m imagining there will be a competitive marketplace of Hermicity proposals.

[N-] Alot of people bring up how young you are? Do you find your age to be advantageous to working on this project?

[JD] Being young is crucial to the success of this project and that’s why I am a big fan of things like the Thiel Fellowship because they realize how important it is for young people with big ideas and a lot of energy (but lacking the right circumstance) to be able to have a crack.

It’s advantageous to be young because you generally have a more open mind and scope of possibility than older people in that you’ve had less time to develop prejudices and had less time to compromise on your own beliefs, etc. It’s important to start working really hard on these things now while I am young and not wait. When these projects and activities work out (which they do) and I progress, it allows me to keep being myself and to not stop compromising on my own ideas and beliefs.

I hope that either the community or movement around this project will grow large enough that I can be financially supported to work on this full time or that if that doesn’t happen, I will be able to get into a program like the Thiel Fellowship.

[N-] What are some of the biggest obstacles or barriers to entry you are facing right now? Are there any legalities you are worrying about with regards to operating drones?

[JD] The biggest barrier to entry is personal. I work full time so [I] don’t have as much time as I’d like to work on this, but hopefully these circumstances will change soon. In the meantime I am just working as hard as I can.

As far as legalities, by opening up the process so that anyone can propose a drone anywhere in the world, I envision that many teams of people will be working to get Hermicities set up all over the earth. Some jurisdictions will be easier to find arrangements with than others, but as I said before, large remote farms or other large privately owned lands would be a great starting spot I imagine. It will be interesting to see what proposals people come up with.

[N-] Will you be operating your own fleet of drones, or adopting a model like Uber/Lyft where you use or share time controlling drones owned by others?

[JD] Once again it’s simply up to the proposers. I imagine that for the sake of more secure deliveries it would be better for the drones to be owned by the DAO, if they have an autonomous solar/battery charging station, human interaction would be very rare and eventually completely unnecessary. [It] will be great to watch the proposers innovate in this area in particular.

[N-] Have you considered users besides hermits such as digital nomads? Any thought of a potential use for humanitarian aid?

[JD] There are many different potential use cases for this idea and the associated technology that will be developed. It will absolutely be up to the proposers to come up with the practicalities of executing these ideas. We will offer the technology and other framework based support for people to get started and then we will get out of their way.

[N-] How has feedback been so far since you have announced H E R M I C I T Y? Has anything surprised you?

[JD] The responses have been overwhelmingly positive and some of them really funny. I’ve had well over 100 responses now over email, and many people have inboxed via the HERMICITY Reddit account.

Vitalik’s (Co-Founder of Ethereum) tweet was really great, he got it.

His second in command also emailed me saying the concept was art, so he got it too which was great.

I haven’t received negative feedback, though there have been half a dozen or so emails from people who don’t get it.

The amount of people who want to help out is really high as well.

[N-] Do you currently have any specific roles on your team that need to be filled? How can people contribute?

[JD] We have been contacted by so many people (via http://offline.computer/hermicity), we are still trying to go though all the emails so we can start responding. Once we have a solid roadmap we can start advertising positions. There aren’t any major skill shortages at this [point], but I am looking forward to expanding the team when we get to that stage.

––
BY MIKE DANK (@FAMICOMAN)

 

I Wrote An App

I’ve been putting off this post for a while. Not for any reason in particular, I just like to have things arranged in a certain way before I push them out to people.

This is analogous to the mobile app project this post refers to as a whole. In 2013, with the idea of a friend, I created a mobile application that allows a user to send a random insulting text to someone on their contacts list. It was for fun of course, and we called it BitchyTexts. It was (and still is) Android-only, and was developed over the course of a few weeks on the little time I had between classes. I distributed it to my friends, who distributed it to their friends, and the results were mostly positive. It was crude, and thrown together, but it worked and did its job well.

The next logical step of course was a Play Store release. However, I needed to clean my code up, get things under version control. and brave the submission process. I worked a little here and there, but ultimately getting the app out the door fell to the bottom of my priority list. In late 2015, two years after I decided I wanted to do a Play Store release, I picked development back up again and started knocking out little pieces here and there to reach my desired outcome.

This became one of my 2016 goals, and I was chomping at the bit to release something. There was no use sitting on it, store releases are an iterative process and I could always improve here and there after the application was live.

So, I submitted it. It was approved, and it’s out there for anyone to download and use. There are changes I want to make, and there are other things I want to work on for it (An improved website, back-end services, etc.) but those can come at any time. There is a lot of planning to do, but nothing too crazy.

BitchyTexts in action!

BitchyTexts in action!

Check it out here, https://play.google.com/store/apps/details?id=com.bt.bitchytexts

Let me know what you think!

 

I2P 101 – Inside the Invisible Internet

This article was originally written for and published at N-O-D-E on May 1st, 2016. It has been posted here for safe keeping.

I2P 101 – INSIDE THE INVISIBLE INTERNET

The Invisible Internet Project (more commonly known as I2P) is an older, traditional darknet built from the ground up with privacy and security in mind. As with all darknets, accessing an I2P site or service is not as simple as firing a request off from your web browser as you would with any site on the traditional Internet (the clearnet). I2P is only accessible if you are running software built to access it. If you try to access an I2P service without doing your homework, you won’t be able to get anywhere. Instead of creating all new physical networking infrastructure, I2P builds upon the existing Internet to take care of physical connections between machines, creating what is known as an overlay network. This is similar to the concept of a virtual private network (VPN) wherein computers can communicate with one another comfortably, as though they were on a local area network, even though they may be thousands of miles apart.

2nzxPzu

INTRODUCTION

I2P was first released in early 2003 (only a few months after the initial release of Tor), and was designed as a communication layer for existing Internet services such as HTTP, IRC, email, etc. Unlike the clearnet, I2P focuses on anonymity and peer-to-peer communications, relying on a distributed architecture model. Unlike Tor which is based around navigating the clearnet through the Tor network, I2P’s goal from the start was to create a destination network and was developed as such. Here, we see that the focus is on community and anonymity within it as opposed to anonymity when using the clearnet.

ROUTERS, INPROXIES & OUTPROXIES

When you connect to I2P, you are automatically set up to be a router. If you are a router, you exist as a node on the network and participate in directing or relaying the flow of data. As long as you are on the network, you are always playing a part in keeping the traffic flowing. Other users may choose to configure their nodes as inproxies. Think of an inproxy as a way to get to an I2P service from the clearnet. For example, if you wanted to visit an eepsite (An anonymous site hosted on I2P, designated by a .i2p TLD) but we’re not on I2P, you could visit an inproxy through the clearnet to provide you access. Other users may choose to operate outproxies. An outproxy is essentially an exit node. If you are on I2P and want to visit a clearnet site or service, your traffic is routed through an outproxy to get out of the network.

ADVANTAGES

There are numerous advantages to using I2P over another darknet such as Tor depending upon the needs of the user. With I2P, we see a strong focus on the anonymity of connections as all I2P tunnels are unidirectional. This means that separate lines of communication are opened for sending and receiving data. Further, tunnels are short-lived, decreasing the amount of information an attacker or eavesdropper could have access to. We also see differences in routing as I2P uses packet switching as opposed to circuit switching. In packet switching routing, messages are load balanced among multiple peers to get to the destination instead of a single route typical of circuit switching. In this scenario, I2P sees all peers participating in routing. I2P also implements distributed dissemination of network information. Peer information is dynamically and automatically shared across nodes instead of living on a centralized server. Additionally, we also see low overhead for running a router because every node is a router instead of a low percentage of those who choose to set one up.

GARLIC ROUTING

I2P implements garlic routing as opposed to the more well known onion routing. Both garlic routing and onion routing rely on the technique of layered encryption. On the network, traffic flows through a series of peers on the way to its final destination. Messages are encrypted multiple times by the originator using the peers’ public keys. When the message is sent out on the path and decrypted by the proper corresponding peer in the sequence, only enough information to pass the message to the next node is exposed until the message reaches its destination where the original message and routing instructions are revealed. The initial encrypted message is layered and resembles an onion that has its layers peeled back on transit.

Garlic routing extends this concept by grouping messages together. Multiple messages referred to as “bulbs” are bound together, each with its own routing instructions. This bundle is then layered just like with onion routing and sent off to peers on the way to the destination. There is no set size for how many messages are included in one bundle, providing another level of complexity in message delivery.

INSIDE THE NETWORK

Hundreds of sites and services exist for use within the I2P network, completely operated by the community. For example, Irc2P is the premier IRC network for chat. We see search engines like eepSites & Epsilon, and torrent trackers like PaTracker. Social networks like Id3nt (for microblogging) and Visibility (for publishing) are also abundant. If you can think of a service that can run on the network, it may already be operational.

FUTURE

I2P remains in active development with many releases per year and continues to be popular within its community. While I2P is not as popular as other darknets such as Tor, it remains to be a staple of alternative networks and is often praised for its innovative concepts.Though I2P does not focus on anonymous use of the clearnet, it is seeing active use for both peer-to-peer communication and file-sharing services.

CONCLUSION

While many may view I2P as just another darknet, it has many interesting features that aren’t readily available or implemented on other networks. Due to the community and regular updates, there is no reason to think that I2P will be going anywhere anytime soon and will only continue to grow with more awareness and support.

Over time, more and more people have embraced alternative networks and we are bound to see more usage on the horizon. However one of the points I2P maintainers express is that the network’s small size and limited adoption may be helpful at this point in time. I2P is not as prominent in the public’s field of view, possibly protecting it from negative publicity and potential attackers.

Whether or not I2P will keep hold of its core community or expand and change with time is unknown, but for now it proves to be a unique darknet implementation with a lot of activity.

SOURCES

https://geti2p.net/en/comparison/tor
https://www.ivpn.net/privacy-guides/an-introduction-to-tor-vs-i2p
https://geti2p.net/en/about/intro
https://geti2p.net/en/docs/how/garlic-routing

––
BY MIKE DANK (@FAMICOMAN)

 

Hyperboria 101 – Moving Through The Mesh

This article was originally written for and published at N-O-D-E on February 14th, 2016. It has been posted here for safe keeping.

HYPERBORIA 101 – MOVING THROUGH THE MESH

Hyperboria is a network built as an alternative to the traditional Internet. In simple terms, Hyperboria can be thought of as a darknet, meaning it is running on top of or hidden from the existing Internet (the clearnet). If you have ever used TOR or I2P, it is a similar concept. Unlike the Internet, with thousands of servers you may interact with on a day-to-day basis, access to Hyperboria is restricted in the sense that you need specific software, as well as someone already on the network, to access it. After configuring the client, you connect into the network, providing you with access to each node therein.

WF8CEM9

INTRODUCTION

Hyperboria isn’t just any alternative network, it’s decentralized. There is no central point of authority, no financial barrier of entry, and no government regulations. Instead, there is a meshnet; peer-to-peer connection with user controlled nodes and connected links. Commonly, mesh networks are seen in wireless communication. Access points are configured to link directly with other access points, creating multiple connections to support the longevity of the network infrastructure and the traffic traveling over it. More connections between nodes within the network is better than less here. With this topology, all nodes are treated equally. This allows networks to be set up inexpensively without the infrastructure needed to run a typical ISP, which usually has user traffic traveling up several gateways or routers owned by other companies.

But what is the goal of the Hyperboria network? With roots in Reddit’s /r/darknetplan, we see that the existing Internet has issues with censorship, government control, anonymity, security, and accessibility. /r/darknetplan has a lofty goal of creating a decentralized alternative to the Internet as we know it through a scalable stack of commodity hardware and open source software. This shifts the infrastructure away from physical devices owned by internet service providers, and instead puts hardware in the hands of the individual. This in itself is a large undertaking, especially considering the physical distance between those interested in joining the network, and the complexities of linking them together.

While the ultimate idea is a worldwide wireless mesh connecting everyone, it won’t happen overnight. In the meantime, physical infrastructure can be put in place by linking peers together over the existing Internet through an overlay network. In time with more participation, wireless coverage between peers will improve to the point where more traffic can flow over direct peer-to-peer wireless connections.

ADVANTAGES

The Hyperboria network relies upon a piece of software called cjdns to connect nodes and route traffic. Cjdns’ project page boasts that it implements “an encrypted IPv6 network using public-key cryptography for address allocation and a distributed hash table for routing.” Essentially, the application will create a tunnel interface on a host computer that acts as any other network interface (like an ethernet or wifi adapter). This is powerful in the way that is allows any existing services you might want to face a network (HTTP server, BitTorrent tracker, etc.) to run as long as that service is already compatible with IPv6. Additionally, cjdns is what is known as a layer 3 protocol, and is agnostic towards how the host connects to peers. It doesn’t matter much if the peer we need to connect to is over the internet or a physical access point across the street.

All traffic over Hyperboria is encrypted end-to-end, stopping eavesdroppers operating rogue nodes. Every node on the network receives a unique IPv6 address, which is derived from that node’s public key after the public/private keypair is generated. This eliminates the need for additional encryption configuration and creates an environment with enough IP addresses for substantial network expansion. As the network grows in size, the quality of routing also improves. With more active nodes, the number of potential routes increases to both mitigate failure and optimize the quickest path from sender to receiver.

Additionally, there are no authorities such as the Internet Assigned Numbers Authority (IANA) who on the Internet control features like address allocation and top level domains. Censorship can easily be diminished. Suppose someone is operating a node hosting content that neighboring nodes find offensive, so they refuse to provide access. As long as that node operator can find at least one person somewhere on the network to peer with, he can continue making his content accessible to the whole network.

PEERING

One of the main differences between Hyperboria and networks like TOR is how connection to the network is made. Out of the box, running the cjdns client alone will not provide access to anything.

To be able to connect to the network, everyone must find someone to peer with; someone already on Hyperboria. This peer provides the new user with clearnet credentials for his node (an ip address, port number, key, and password) and the new user enters them into his configuration file. If all goes to plan, restarting the client will result in successful connection to the peer, providing the user access to the network.

However, having just one connection to Hyperboria doesn’t create a strong link. Consider what would happen if this node was experiencing an outage or was taken offline completely. The user and anyone connecting to him as an uplink into the network would lose access. Because of this, users are encouraged to find multiple peers near them to connect to.

In theory, everyone on the network should be running their node perpetually. If a user only launched cjdns occasionally, other nodes on the network will not be able to take advantage of routing through the user’s node as needed.

With the peering system, there is no central repository of node information. Nobody has to know anyone’s true identity, or see who is behind a particular node. All of the connections are made through user-to-user trust when establishing a new link. If for any reason a node operator were to become abusive to other nodes on the network, there is nothing stopping neighboring nodes from invalidating the credentials of the abuser, essentially kicking them off of the network. If any potential new node operator seemed malicious, other operators have the right to turn him away.

MESHLOCALS

The most important aspect of growing the Hyperboria network is to build meshlocals in geographically close communities. Consider how people would join Hyperboria without knowing about their local peers. Maybe someone in New York City would connect to someone in Germany, or someone in San Franscisco to someone in Philadelphia. This creates suboptimal linking as the two nodes in each example are geographically distant from each other.

The concept of a meshlocal hopes to combat this problem. Users physically close together are encouraged to form working groups and link their nodes together. Additionally, these users work together to seek new node operators with local outreach to grow the network. Further, meshlocals themselves can coordinate with one another to link together, strengthening regional areas.

Meshlocals can also offer more in-person communication, making it easier to configure wireless infrastructure between local nodes, or organize actions via a meetup. Many meshlocals have gone on to gain active followings in their regions, for example NYC Mesh and Seattle Meshnet.

INSIDE THE NETWORK

After connecting to Hyperboria, a user may be at a loss as to what he is able to do. All of these nodes are connected and working together, but what services are offered by the Hyperboria community, for the Hyperboria community? Unlike the traditional Internet, most services on Hyperboria are run non-commercially as a hobby.

For example, Hyperboria hosts Uppit: a Reddit clone, Social Node: a Twitter-like site,and HypeIRC: an IRC network. Some of these services may additionally be available on the clearnet, making access easy for those without a connection to Hyperboria. Others are Hyperboria-only, made specifically and only for the network.

As the network grows, more services are added while some fade away in favor of new ones or disrepair. This is all community coordinated after all; there is nothing to keep a node operator from revoking access to his node on a whim for any reason.

FUTURE

As previously mentioned, the ultimate goal of Hyperboria is to offer a replacement for the traditional Internet, built by the users. As it stands now, Hyperboria has established a core following and will see more widespread adoption as meshlocals continue to grow and support users.

Additionally, we see new strides in the development of cjdns with each passing year. As time has gone on, setup and configuration have becomes simpler for the end-user while compatibility has also improved. The more robust the software becomes, the easier it will be to run and keep running.

We also see the maturation of other related technologies. Wireless routers are becoming more inexpensive with more memory and processing power, suitable for running cjdns directly. We also see the rise of inexpensive, small form factor microcomputers like the Raspberry Pi and Beaglebone Black, allowing anyone to buy a functional, dedicated computer for the price of a small household appliance like an iron or coffee maker. Layer 2 technologies like B.A.T.M.A.N. Advanced are also growing, making easily-configurable wireless mesh networks simple to set up and work cooperatively with the layer 3 cjdns.

CONCLUSION

Hyperboria is an interesting exercise in mesh networking with an important end goal and exciting construction appealing to network professionals, computer hobbyists, digital activists, and developers alike.

It’ll be interesting to see how Hyperboria grows over the next few years, and if it is indeed able to offer a robust Internet-alternative for all. Until then, we ourselves can get our hands dirty setting up hardware, developing software, and helping others do the same. With any luck, we will be able to watch it grow. One node at a time.

SOURCES

https://github.com/cjdelisle/cjdns
https://docs.meshwith.me
https://www.reddit.com/r/darknetplan/comments/1vq87d/project_meshnet_for_everyone_a_complete/
https://www.reddit.com/r/dorknet/comments/xry23/this_is_my_first_time_hearing_about_darknet_i/

––
BY MIKE DANK (@FAMICOMAN)

 

irssi-hilighttxt.pl – An irssi Plugin That SMS Messages You On Hilight

A few months ago after configuring irssi with all the IRC channels I wanted, I ran into the problem of being late to a conversation. Every few days I would check my channels only to see people reaching out to me when I wasn’t around. Sometimes I was able to ping someone to talk, other times the person left and never came back.

I had been using the faithful hilightwin.pl plugin to put all my hilights in a separate window I could monitor. I figured that with my limited knowledge of perl I could rig up something to send me an SMS text message instead of writing the hilight line to a different window in irssi where i may not get to it in time.

Using TextBelt’s free API, I was able to call a curl command from inside perl to send the message triggering my hilight to my mobile phone. It isn’t perfect, as there is some garbled text at the front of the message, but I get the message quickly and I can see not only who sends it but also the channel they are in.

Sensible text messages delivered!

Sensible text messages delivered!

I’ve put the code up on GitHub for anyone to use or improve upon. TextBelt’s API is a little limited in how many messages you can receive in a short period of time (as it should be to prevent abuse) and doesn’t support many carriers outside of the USA, so there is definitely room for improvement if another suitable API was found.

Check it out and let me know what you think!

 

(Re)Hacking a Boxee Box

I recently purchased an Amazon Fire TV Stick and love that it allows the ability to sideload applications like Kodi (I still hate that name, long live XBMC!) for media streaming. I mainly use Samba/SMB shares on my network for my media, with most of my content living on an old WDTV Live Hub. The WDTV Hub works great and is still pretty stable after all of these years (except for a few built-in apps like YouTube, I wish they kept going with updates), and the Fire TV will gladly chug away, playing any video over the network. However, I had the need to have my media stream to a third television and I didn’t want to uproot an existing device and carry it from room to room.

So I needed a third device. I already have a second generation Roku kicking around, but it doesn’t appear to be able to run anything other than the stock software at this time. I also considered a Raspberry Pi and wifi dongle, but this puts the price up to around $50 (which is more than the Fire TV Stick. I do want something cheap). I looked for a less expensive option with older media streamers and found a lot of information about the Boxee Box appliance put out by D-Link in 2008, discontinued in 2011. I first encountered this box in around 2012 when I was tasked to do some reverse engineering on it, but that’s another story. In the time since, a Google TV hacking team figured out they could do simple shell command injection when setting the Box’s host name, which eventually evolved into a group developing Boxee+Hacks, a replacement operating system. Since Boxee+Hacks, other developers have been working on a port of Kodi which you can install onto the Boxee to give you more options and better compatibility over the operating system’s built in features.

After some eBaying, I was able to get a Boxee for around $15, shipping included (Make sure you get model DSM-380!). The item description said that the box already had Boxee+Hacks installed and upgraded to the latest version, so I figured I was on my way to a quick installation of Kodi and could get up and running in minutes.

When I first booted the Boxee and checked out the Boxee+Hacks settings, I noticed that the device only had version 1.4 installed while the latest available was 1.6. The built-in updater did not work anymore, so the box never reported that there was an available Boxee+Hacks update.Navigating the Boxee+Hacks forums was a little cumbersome, but I eventually found the steps I needed to get updated and launch Kodi. I’ve outlined them below to help any other lost travelers out there.

First, though, go through your Boxee settings and clear any thumbnail caches, local file databases, etc. We need all the free space we can get and there will be installation errors if you don’t have enough free space. The installation script we will run later automatically clears the device’s temp directory, but doesn’t remove these cached files.

On the Boxee, go to Settings –> Network –> Servers and enable Windows file sharing.

If you already have Boxee+Hacks, connect the box and your computer to your home network and check the IP address for the box on either the Boxee’s settings page or by checking for a new device on your router’s console.

To make things really easy, telnet to your Boxee on port 2323 using your box’s IP address (Mine is 192.168.1.100).

 telnet 192.168.1.100 2323

Once there, we need to download and run the installer script.

curl -L http://tinyurl.com/boxeehacks | sh

If you DO NOT have Boxee+Hacks installed already, never fear. On the same Settings –> Network –> Servers page on your Boxee, locate the Hostname filed and enter the following into it.

boxeebox;sh -c 'curl -L tinyurl.com/boxeehacks | sh'

Then, navigate away from the Settings page.

After executing the command through telnet, or through the Boxee settings page, the logo should glow red on the front of the box and you should receive on-screen instructions to perform an installation.

Boxee+Hacks installation screen, from http://boxeed.in/forums/viewtopic.php?f=5&t=1216

Boxee+Hacks installation screen, from boxeed.in forums.

The installation guide works pretty well. Here, you will be prompted to install Kodi in addition to Boxee+Hacks. At this point I chose NOT to install Kodi. From what I read, once you install it though the script, it can be difficult to remove, and I didn’t want to deal with the possibilities of a difficult upgrade.

Instead, I decided to install Kodi on a flash drive. I’ve had a cheap 512MB drive that has been kicking around for close to ten years, and it is perfect for fitting Kodi. To setup the flash drive, I formatted it as FAT32 and labeled the drive as MEDIA. I’m not sure if either of these matter, but this configuration worked for me. I downloaded the latest Kodi release built for Boxee from the boxeebox-xbmc repository (Version KODI_14.2-Git-2015-10-20-880982d-hybrid at the time of this writing) and unzipped it onto my flash drive. Make sure that the all of the Kodi files are in the root directory of the drive, and not within the KODI_14.2-Git-2015-10-20-880982d-hybrid directory you get from extracting the archive.

It might also help to label the drive

It might also help to label the drive

That’s all there is to it, just plug the flash drive into the back of the Boxee and it is good to go. If you leave the flash drive in, whenever you boot the Boxee it will go right into Kodi. Leave it out and it will boot to standard Boxee+Hacks. If you boot into Boxee+Hacks and then want to load up Kodi, just plug in the flash drive and it loads automatically.

This turns a seemingly unassuming and thought-obsolete device into a pretty powerful media center, and is a quick inexpensive solution to streaming your content to yet another television.

 

rtmbot-archivebotjr – A Slack Bot for Archiving

I’ve been working with the idea of trying to archive more things when I’m on the go. Sometimes I find myself with odd pockets of time like 10 minutes on a train platform or a few minutes leftover at lunch that I tend to spend browsing online. Inevitably, I find something I want to download later and tuck the link away, usually forgetting all about it.

Recently, I’ve been using Slack for some team collaboration projects (Slack is sort of like IRC in a nice pretty package, integrating with helpful online services) and was wondering how I could leverage it for some on-the-go archiving needs.

Slack has released their own bot, python-rtmbot on GitHub that you can run on your own server and pull into your Slack site to do bot things. The bot includes a few sample plugins (written in Python), but I went about creating my own to get some remote archiving features and scratch my itch.

The fruit of my labor also lives on GitHub as rtmbot-archivebotjr. This is not to be confused with Archive Team’s ArchiveBot (I just stink at unique names). archivebotjr will sit in your Slack channels waiting for you to give it a command. The most useful are likely !youtube-dl (for downloading youtube videos in the highest quality), !wget (for downloading things through wget. Great when I find a disk image and don’t want to download it on my phone), and !torsocks-wget (Like !wget but over TOR). I have a few more in there for diagnostics (!ping and !uptime), but you can see a whole list on the GitHub page.

Screenshot_2016-02-25-09-55-50

Right now, the bot is basic and lacks a wide array of features. The possibilities for other tools that can link into this are endless, and I hope to link more in periodically. Either way, you can easily download all sorts of files relatively easily and the bot seems reasonably stable for an initial release.

If you can fit this bot into your archiving workflow, try it out and let me know how it goes. Can it better fit your needs? Is something broken? Do you want to add a feature?

I want to hear about it!