Fognet development update #1
The full article was originally published by Evan Feenstra on Medium. Read the full article here.
Since winning the IOTA Flash Channel competition a couple months ago, we have had many people reach out to us asking about how to get involved, or just expressing their excitement for the project! This feedback has really validated our belief that an alternative, decentralized network is valuable for society. Yesterday we had a great time sharing our work at a Meetup here in Seattle. Here is an update of some things we have been working on:
There are a plethora of choices that one needs to make in the design and architecture of any new system. We are designing Fognet from the ground up following a set of principles that we believe will make Fognet a relevant and usable technology for people around the world.
- Lightweight. Creating a system that is low-bandwidth and low-energy is our primary goal. Our vision of Fognet is to empower communities that may not already have access to wireless infrastructure, such as rural villages or inner-city neighborhoods. To this end, our goal is to power Fognet routers from battery or solar, making the system ready for deployment in low-resource environments.
- Open-Source. Fognet is built upon a wide variety of open-source technologies, from Arduino to React to our Bluetooth stack. We will be keeping much of the Fognet stack open-source as well. If you are front-end developer looking to get started working with IOTA, check out our open-source component react-iota
- Accessible. Fognet should be accessible by anyone, without the requirement of owning any special hardware. IOTA micro-transactions can help to make Fognet an open network that only requires a small amount of IOTA tokens to get started. Also, our work on the Fognet application builder interface will help create a dynamic ecosystem of Fognet apps that anyone can take part in, without needing to know how to code.
New landing page: fognet.world
The new Fognet landing page tells the story of the technology and principles behind it. This website is the first step toward creating a community of developers, makers, designers, and mesh network enthusiasts to help get Fognet ready for production deployments. If you like to make things and are interested in getting involved with Fognet, feel free to reach out to us through the form on the website!
After much experimentation with Bluetooth Mesh, we have realized that the technology is actually not scaleable enough for Fognet. Under the hood, Bluetooth Mesh uses a “flooding” protocol where messages are passed to all connected nodes, and ignored if they are not intended for any particular node. Routing is implemented as a second layer on top of the core mesh. Although Bluetooth Mesh is 100% decentralized and very resilient, it simply takes up too much bandwidth to be practical in a data streaming scenario.
We are committed to creating a system that lightweight and low-energy, so that nodes can run off battery or solar. To that end, we have been exploring another mesh network protocol called OpenThread, which was originally created by Nest Labs, and is now completely open-source. OpenThread uses a lightweight implementation of IPv6, so routing is built in to the protocol. The Thread specification also includes a well-defined role for “Border Routers”, which can serve as gateways from a local Fognet onto the regular internet.
We are still using Bluetooth Low Energy as the means of interacting with the Fognet from a client device. We are happy to see that our favorite Bluetooth chip manufacturer, Nordic Semiconductor, has recently released an updated version of the chip that we used in the first prototype of the Fognet Router. The chip (nRF52840) can run BLE and OpenThread simultaneously, which is perfect for our use case. Our current incarnation of the Fognet Router prototype is using this chip, along with the Tessel 2 development board (because we love Node.js).
We plan to cut out a lot of this bandwidth usage by creating a web development system where the code lives locally on the Fognet router, and is rendered for your client device through a set of configuration instructions. These instructions will be generated by a Fognet app builder interface, where anyone can create a unique layout, theme, and style for their Fognet application. Fognet applications will have a wide variety of components available, including IOTA micro-payment wallets and storefronts, so that anyone can take part in the decentralized economy that Fognet will enable.
The biggest challenge that Fognet faces is adoption. There is no point of setting up a Fognet router if you are the only one in your neighborhood to do so. Our solution to this issue is to find a way to make Fognet applications interoperable with the regular internet. We have been building out some concepts using the Masked Authenticated Messaging IOTA module, which enables many of the same features that Fognet will make possible. Data published to a Masked Message stream can be encrypted, and shared only with the people that you choose to give access. This enables data privacy, secure permissions, and of course decentralized marketplaces. The first iteration of the Fognet platform will be compatible with either a Fognet mesh, where content is served from local routers, or with Masked Messages stored on the global tangle.
Although the core Fognet implementation is our first priority, we will also be working on applications that can function immediately on the tangle, and one day run on the Fognet. We are most excited about use cases that allow anyone to sell their creative works online, whether that be music, writing, digital art, or educational content. The dynamism and energy that already exists in creative communities around the world is not reflected in the current generation of apps and websites for creators, and we look forward to building new ways of connecting people with Fognet