The Location Based Network
The Internet of People is about people, and people live in the physical world. That means that they are at some place on planet earth. In contrast to this, companies might have a headquarter, but their location is more diffuse, and their reach is further.
When people need to find each other, one of the search criteria might be their usual or current location. Moreover, most of the people in real life currently interact with people nearby, and this is mostly true also for electronic communications or interactions.
In such a global system as the Internet of People, we found it necessary to organize some services by people’s location. Besides that, in real life we have different jurisdictions, and to ensure the system’s compliance with whatever regulation in place, having some of its services geo-located makes a lot of sense not only from this perspective. We don’t want entrepreneurs developing Person to Person Apps in some random country to break some local law for uploading their users’ profiles to servers outside their country if their local regulation doesn’t allow that.
As the foundation for Geo-located services we have the Location Based Network (LOC NET). This is a general purpose peer-to-peer network of nodes that organize themselves based on a specific geo-location configured by their operators. Some IoP Servers can later partner with LOC NET NODES and by doing so, their services become geo-localized.
For example, any Profile Server can enter into a partnership with a LOC NET NODE running on the same hardware, allowing client Apps to choose a server to host their profiles at a certain location. We expect Apps to host their users’ profiles on Profile Servers close to their average location. Doing so would contribute to these users being easily discovered by people who know where they live. It might also positively impact on their privacy and security, since communications between two users living nearby would never be routed far from their city, and would never leave their own country, which makes a lot of sense in terms of preventing spying and not relying on infrastructure totally out of the control of the country where they live. For instance, if an German in Berlin is willing to interact with his German friend also in Berlin, it is safer for them if their profiles are hosted in Berlin and not in London or Washington DC, and the process to acquire a direct phone-to-phone connection is also done with the help of a Profile Server in Berlin.
We didn’t find a geo-located p2p network to avoid starting from scratch, so we designed and implemented our own ideas. The result is a network that self-organizes itself and that implements the following concepts:
- Unrelated Nodes: Nodes join the network unrelated to other nodes. Later they can become colleagues or neighbors. Unrelated peers by default don’t trust each other. Any one of them can be a malicious node of any kind. That means that interactions with unrelated nodes are done with special care.
- Colleague Nodes: Nodes must know nodes around the globe to ensure global communication. As a network, all nodes equally benefit if they can avoid non-profitable requests from clients, such as routing requests. For this reason, nodes exchange node profile info with each other and become Colleagues.
- Neighboring Nodes: Nodes must know their neighborhood very well. Being neighbors is one type of relationship between nodes. Any node has scattered colleagues around the globe, but they know all of their neighbors.
Local Network Map
The network is location aware and every node knows only a part of the network. This Local Network Map is unique to each LOC NODE and partly overlaps with information kept by other nodes. Each node knows better the part of the network that is closer to it and as distance increases it knows less nodes. Nodes implement an algorithm that helps them pick which nodes they need to know about and which nodes they don’t.
The Local Network Map consists of two parts with different goals and properties. The Neighborhood Map aims to maintain a comprehensive list of the closest nodes. The World Map aims to provide a rough coverage of the rest of the world outside the neighborhood. To prevent too much data and limit node density, the World Map picks only a single node from each area. Covered areas are defined with circular “bubbles” drawn around single nodes that must not overlap. The World Map uses a changing bubble size to have a denser local and sparser remote node density. So the greater the area, the bigger bubbles are, i.e. less nodes are included. Area bubbles are defined autonomously and are specific to the Local Network Map of each node. There is no node count limit for the World Map, the increasing size of bubbles serves as a limit for node counts. For the Neighborhood Map the bubbles may overlap, so we need a maximal count of neighboring nodes.
Person to Person Apps can use the LOC NET to contact nodes in different regions of the world. They can query each node about the closest node they know given a specific location. By repeating this procedure with a few nodes they can end up contacting the closest node in the network to a certain location. Once there, they can ask this node for its partner Profile Server, or Proximity Server and move on to those servers to query them about people’s profiles or whatever service they have to offer.
Servers with collaborative features such as Profile Servers, use their partner LOC NET NODE to discover their neighborhood, an array of nearby Profile Servers collaborating with each other, sharing some part of the profile info to facilitate the discovery of such information thereby making the system more resilient.
We found these new ways of organizing some decentralized services as being very resilient to extreme measures that have already been taken by nasty governments, like country wide firewalls. By allowing some fundamental IoP Components to be geo-localized, the provided services can thrive even inside a country isolated from the rest of the world by a crazy government.
Thanks to Amadeo Charlé for the editing.